Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Document

...

Logs

...


Change

...

log:

...

Date:

...

Author:

...

Version:

...

Changes:

...

Ext.

...

Int.

...

Is

...

in

...

Core

26 May 2011

DWN

0.1

Doc. created

 

 

 

15 March 2012

CM

0.2

New parameter Tree

 

 

 

28 August 2012

CM

0.3

Added new parameter values

 

 

 

01 March 2013

JSK

0.4

Added extra column descriptions for CDR_FILE_DEF and CDR_RECORD_DEF.

 

 

 

07 October 2013

JSK

1.12

Added section 3.1.11 concerning Hookpoint Invokation in the Pre or Post process of file processing.

 

 

 

14 May 2014

KTH

1.12.1

Added new parameter: DB_SYS_PACKAGE_NAME

 

 

 

...

1 - Purpose of Document

This document presents the design of the file processor framework. This framework can be used to load and export any type of ASCII-based file. The design has been based on loading and exporting of CDR (Call Detail Records) ASCII files. As such must references have been made to CDR files. However, the same concept has been used for loading/exporting other non-CDR ASCII based files

2.0 - Design Overview

A CDR File is a file containing CALL DETAIL RECORDS in a pre-defined format and order. This document aims at modelling a CDR File in a generic way. This could also be extended to any normal ASCII-based file. As such this document could also be used to model any ASCII-based file.

2.1 Design

A CDR file is made up of one or more logical CDR Records separated by a pre-defined separator (delimiter). The default separator is the systems line separator which in most cases is a carriage return line feed.

A CDR file has three types of records.

  1. Header Record
  2. Body Record
  3. Trailer Record.

A CDR record is made up of one or more CDR Fields, separated by a pre-defined separator.
A CDR record may be identified by one or more CDR_RECORD_IDENTIFIERs. The default record (NO CDR_RECORD_IDENTIFIER) is a detail record.
A CDR Field contains values in a pre-defined format, which will henceforth be referred to as a CDRFieldFormatDef (CDR_FIELD_FORMAT_DEF).

...

2.2

...

CDR

...

File

...

Model

...

A

...

CDR

...

File

...

is

...

made

...

up

...

of

...

one

...

or

...

more

...

physical

...

lines

...

(lines

...

in

...

a

...

normal

...

file).

...

A

...

CDR

...

File

...

is

...

also

...

made

...

up

...

of

...

one

...

or

...

more

...

logical

...

lines.

...

A

...

physical

...

may

...

contain

...

one

...

or

...

more

...

logical

...

lines.

...

A

...

logical

...

line

...

represents

...

a

...

CDR

...

Record.

...

Hence,

...

it

...

is

...

possible

...

for

...

a

...

logical

...

line

...

to

...

span

...

one

...

or

...

more

...

physical

...

lines.

...

A

...

delimiter

...

or

...

separator

...

determines

...

the

...

separation

...

of

...

a

...

physical

...

line

...

into

...

logical

...

lines.

...

In

...

a

...

typical

...

scenario,

...

one

...

physical

...

line

...

will

...

equal

...

one

...

logical

...

line.

...

To

...

model

...

the

...

description

...

presented

...

in

...

section

...

2.1,

...

the

...

following

...

tables

...

are

...

defined:

...

  1. CDR_FILE_DEF

...

  1. (class

...

  1. CdrFileDef)

...

  1. CDR_RECORD_DEF

...

  1. (

...

  1. class

...

  1. CdrRecordDef)

...

  1. CDR_FIELD_DEF

...

  1. (class

...

  1. CdrFieldDef)

...

  1. CDR_FIELD_FORMAT_DEF

...

  1. (class

...

  1. CdrFieldFormaDef)

...

  1. CDR_RECORD_FIELD_DEF

...

  1. (class

...

  1. CdrRecordFieldDef)

...

  1. CDR_RECORD_IDENTIFIER

...

  1. (

...

  1. class

...

  1. CdrRecordIndentfier)

...

  1. CDR_PARSER

...

  1. (

...

  1. class

...

  1. CdrParser)

...

  1. ITEM_SEPARATOR

...

  1. (

...

  1. class

...

  1. ItemSeparator)

...

All

...

the

...

above

...

mentioned

...

classes

...

are

...

persistent.

...

In

...

addition

...

to

...

the

...

persistent

...

classes,

...

the

...

following

...

non-persistent

...

helper

...

classes

...

are

...

present:

...

  1. CdrFile
  2. CdrRecord
  3. CdrField

Figure 2.1

...

(below)

...

represents

...

the

...

above

...

tables

...

and

...

their

...

respective

...

classes:

...

Image Added
Figure 2.1

...

Data

...

Model

...

for

...

CDR

...

file

...

A

...

file

...

definition

...

(CDR_FILE_DEF)

...

defines

...

the

...

source

...

table

...

where

...

the

...

source

...

information

...

of

...

files

...

to

...

be

...

loaded

...

are

...

stored.

...

The

...

file

...

definition

...

defines

...

a

...

BILLING_SOURCE_CLASS,

...

a

...

filename

...

format,

...

a

...

pre

...

-

...

and

...

post-processor

...

method.

...

These

...

methods

...

-

...

if

...

present

...

-

...

must

...

be

...

located

...

in

...

the

...

defined

...

BILLING_SOURCE_CLASS.

...

If

...

the

...

filename

...

format

...

is

...

present,

...

then

...

only

...

filenames

...

that

...

match

...

this

...

format

...

will

...

be

...

loaded,

...

otherwise

...

all

...

files

...

defined

...

in

...

the

...

incoming

...

folder

...

will

...

be

...

loaded.

...

The

...

location

...

of

...

the

...

incoming,

...

processed

...

and

...

error

...

folders

...

are

...

defined

...

in

...

a

...

file

...

transmitter

...

(FILE_TRANSMITTER)

...

linked

...

to

...

a

...

file

...

processor

...

(CDR_FILE_PROCESSOR).

...

A

...

file

...

definition

...

also

...

defines

...

a

...

parser

...

(CDR_PARSER)

...

for

...

parsing

...

the

...

file

...

into

...

one

...

or

...

more

...

records.

...

Linked

...

to

...

a

...

file

...

definition

...

are

...

one

...

or

...

more

...

record

...

definitions

...

(CDR_RECORD_DEF

...

:

...

CDR_RECORD_DEF.CDR_FILE_DEF.ID

...

=

...

CDR_FILE_DEF.ID).

...

There

...

are

...

three

...

types

...

of

...

record

...

definitions;

...

HEADER,

...

DETAIL

...

and

...

TRAILER

...

(CDR_RECORD_DEF.CODE

...

in

...

('HEADER','DETAIL','TRAILER')).

...

For

...

loading

...

MMD-CDRS,

...

all

...

the

...

three

...

record

...

definition

...

types

...

are

...

used.

...

Each

...

record

...

definition

...

consists

...

of

...

one

...

or

...

more

...

field

...

definitions

...

(CDR_FIELD_DEF)

...

that

...

define

...

the

...

fields

...

that

...

make

...

up

...

a

...

record

...

and

...

the

...

source

...

table

...

of

...

the

...

values

...

these

...

fields

...

will

...

assume

...

in

...

the

...

export

...

file.

...

A

...

record

...

definition

...

contains

...

a

...

field

...

separator

...

(ITEM_SEPARATOR

...

:

...

CDR_RECORD_DEF.FIELD_SEPARATOR_ID

...

=

...

ITEM_SEPARATOR.ID)

...

that

...

defines

...

a

...

delimiter

...

for

...

separating

...

fields

...

within

...

a

...

record.

...


A

...

record

...

definition

...

also

...

defines

...

a

...

parser

...

(CDR_PARSER)

...

for

...

parsing

...

the

...

record

...

into

...

one

...

or

...

more

...

fields

...

using

...

the

...

defined

...

field

...

separator.

...

In

...

order

...

to

...

identify

...

a

...

record

...

type

...

(HEADER,DETAIL,TRAILER),

...

a

...

record

...

identifier

...

(CDR_RECORD_IDENTIFIER)

...

is

...

defined.

...

A

...

record

...

identifier

...

defines

...

a

...

record

...

definition

...

(CDR_RECORD_DEF_ID),

...

a

...

field

...

position

...

(CDR_FIELD_POSITION)

...

and

...

a

...

default

...

field

...

value

...

(DEFAULT_FIELD_VALUE).

...

For

...

example,

...

an

...

MMD-GSM

...

header

...

record

...

is

...

identified

...

by

...

the

...

string

...

'HD'

...

in

...

position

...

1

...

of

...

the

...

record.

...

When

...

a

...

record

...

is

...

loaded

...

and

...

if

...

the

...

record

...

has

...

the

...

value

...

'HD'

...

at

...

position

...

1,

...

then

...

the

...

record

...

is

...

considered

...

a

...

header

...

record.

...

A

...

detail

...

MMD-CDR

...

record

...

has

...

no

...

record

...

type

...

identifier.

...

When

...

an

...

MMD-CDR

...

is

...

loaded,

...

a

...

record

...

is

...

first

...

checked

...

for

...

an

...

identifier.

...

If

...

an

...

identifier

...

can

...

be

...

located,

...

then

...

the

...

record

...

definition

...

identified

...

by

...

the

...

record

...

identifier

...

is

...

used,

...

otherwise

...

the

...

record

...

definition

...

(CDR_RECORD_DEF)

...

without

...

an

...

identifier

...

is

...

used.

...

This

...

means

...

that

...

if

...

a

...

file

...

definition

...

(CDR_FILE_DEF)

...

has

...

N

...

types

...

of

...

record

...

types,

...

then

...

there

...

must

...

be

...

at

...

least

...

N-1

...

record

...

type

...

definitions,

...

otherwise

...

loading

...

will

...

fail.

...

A

...

field

...

definition

...

has

...

a

...

field

...

format

...

definition

...

(CDR_FIELD_FORMAT_DEF:

...

CDR_FIELD_DEF.CDR_FIELD_FORMAT_DEF_ID

...

=

...

CDR_FIELD_FORMAT_DEF.ID)

...

that

...

defines

...

the

...

format

...

to

...

be

...

assumed

...

by

...

the

...

field

...

in

...

the

...

export

...

file.

...

A

...

field

...

definition

...

also

...

defines

...

any

...

padding

...

or

...

fillers

...

that

...

must

...

be

...

added

...

to

...

the

...

field

...

before

...

it

...

is

...

written

...

to

...

a

...

file.

...

2.3

...

File

...

Processing

...

Model

...

A

...

CDR

...

File

...

(CDR_FILE_DEF)

...

is

...

processed

...

by

...

a

...

CDR

...

File

...

Processor

...

(CDR_FILE_PROCESSOR),

...

i.e.

...

the

...

file

...

is

...

loaded

...

and

...

parsed

...

or

...

generated

...

and

...

made

...

ready

...

for

...

export.

...

This

...

processing

...

is

...

modeled

...

by

...

the

...

following

...

classes.

...

  1. CdrFileProcessor

...

  1. (

...

  1. Table

...

  1. CDR_FILE_PROCESSOR)

...

  1. CdrFileLoader

...

  1. (

...

  1. Table

...

  1. CDR_FILE_PROCESSOR)

...

  1. CdrFileGenerator

...

  1. (

...

  1. Table

...

  1. CDR_FILE_PROCESSOR)

...

  1. FileTransmitter

The CdrFileLoader and CdrFileGenerator are sub-classes

...

of

...

the

...

CdrFileProcessor.

...

The

...

FileTransmitter

...

will

...

implement

...

a

...

Transmitter

...

interface.

...

The

...

above

...

design

...

is

...

shown

...

in

...

figure

...

2.3.1

...

below

Image Added
Figure 2.3.1

...

File Processor UML.

3.0

...

Model

...

Description

3.1

...

Loading

...

Files

...

To

...

configure

...

the

...

loading

...

of

...

a

...

file,

...

the

...

following

...

must

...

be

...

defined

...

or

...

configured

3.1.1

...

CDR

...

File

...

Definition

...

(CDR_FILE_DEF)

...

A

...

CdrFileDef

...

defines

...

a

...

CDR

...

file

...

and

...

is

...

defined

...

by

...

a

...

unique

...

ID

...

and

...

KEY.

...

A

...

CDR

...

File

...

Definition

...

must

...

define

...

a

...

CdrParser

...

(CDR_PARSER_ID

...

pointing

...

to

...

a

...

record

...

in

...

the

...

CDR_PARSER

...

table)

...

to

...

be

...

used

...

for

...

parsing

...

the

...

records

...

in

...

the

...

CDR

...

File

...

and

...

a

...

record

...

separator

...

(RECORD_SEPARATOR_ID

...

pointing

...

to

...

a

...

record

...

in

...

the

...

ITEM_SEPARATOR

...

table).

...

In

...

a

...

normal

...

scenario,

...

it

...

is

...

assumed

...

that

...

the

...

record

...

separator

...

will

...

be

...

a

...

carriage

...

return

...

line

...

feed.

...

In

...

addition

...

to

...

the

...

above

...

mentioned

...

attributes

...

some

...

more

...

attributes

...

are

...

also

...

present

...

as

...

shown

...

in

...

figure

...

1.1.

...

A

...

CdrFiledef

...

consists

...

of

...

one

...

or

...

more

...

CdrRecordDefs.

...

The

...

column

...

present

...

in

...

the

...

CDR_FILE_DEF

...

table

...

have

...

been

...

presented

...

in

...

figure

...

2.1.

...

Some

...

important

...

columns

...

worth

...

describing

...

include:

...

COLUMN

...

NAME

...

DESCRIPTION

NAME

Name of the Cdr File Definition

DESCRIPTION

Description of Cdr File Definition

KEY

Unique key of a file defintion

CODE

Code, in-case sub classing is needed in the future

MAX_RECORDS

Maximum number of records in a file (Default value -1 (no maximum number of records))

CDR_PARSER_ID

Parser used for parsing a file into records (CDR_PARSER_ID

...

=

...

CDR_PARSER.ID)

...

BILLING_SOURCE_TABLE_NAME

...

Table

...

name

...

for

...

storing

...

file

...

information

...

source

...

RECORD_SEPARATOR_ID

...

Type

...

of

...

separator

...

used

...

for

...

separating

...

one

...

record

...

from

...

another

...

(RECORD_SEPARATOR_ID

...

=

...

ITEM_SEPARATOR.ID).

...

The

...

default

...

is

...

a

...

carriage

...

return

...

line

...

feed

...

FILENAME_FORMAT

...

Format

...

of

...

filename

...

to

...

be

...

loaded

...

(Perl

...

regular

...

expression

...

format).

...

If

...

set

...

only

...

filenames

...

that

...

match

...

the

...

format

...

will

...

be

...

processed

...

otherwise

...

all

...

files

...

are

...

processed

...

EXPORT_TYPE

...

The

...

type

...

of

...

file

...

records

...

to

...

be

...

exported.

...

Used

...

when

...

generating

...

export

...

files.

...

The

...

source

...

table

...

(for

...

export)

...

must

...

have

...

a

...

column

...

with

...

name

...

'EXPORT_TYPE'

...

whose

...

value

...

must

...

match

...

this

...

value

...

PRE_EXPORT_PROCEDURE

...

Used

...

when

...

exporting

...

files.

...

Called

...

before

...

any

...

final

...

generation

...

processing

...

commences.

...

Used

...

to

...

add

...

extra

...

export

...

values

...

that

...

can

...

only

...

be

...

added

...

at

...

time

...

of

...

export

...

XML_DOCUMENT_DEF_ID

...

Used

...

when

...

exporting

...

XML

...

files.

...

(XML_DOCUMENT_DEF_ID

...

=

...

XML_DOCUMENT_DEF.ID)

...

BILLING_SOURCE_CLASS

...

Class

...

used

...

to

...

model

...

the

...

table

...

defined

...

in

...

the

...

column

...

'BILLING_SOURCE_TABLE_NAME'

...

FILE_NAME_SUFFIX

...

Suffix

...

(extension)

...

to

...

be

...

added

...

to

...

the

...

export

...

filename

...

FILE_NAME_GENERATOR_METHOD

...

Method

...

on

...

the

...

BILLING_SOURCE_CLASS

...

used

...

to

...

generate

...

a

...

filename

...

during

...

export.

...

This

...

method

...

must

...

take

...

the

...

ID

...

of

...

the

...

record

...

in

...

the

...

'BILLING_SOURCE_TABLE_NAME'

...

table,

...

and

...

the

...

CDR_FILE_DEF

...

ID

...

as

...

parameters.

...

For

...

example

...

for

...

exporting

...

a

...

CDR

...

file,

...

the

...

ID

...

will

...

be

...

the

...

ID

...

of

...

the

...

appropriate

...

SP_FILE_HEADER

...

record

...

linked

...

to

...

the

...

rated

...

BILLING_RECORDs

...

(BILLING_RECORD.SP_FILE_ID

...

=

...

SP_FILE_HEADER.ID)

...

being

...

exported.

...

PRE_PROCESSOR_METHOD

...

Method

...

in

...

the

...

BILLING_SOURCE_CLASS

...

called

...

before

...

processing

...

a

...

file.

...

The

...

method

...

must

...

take

...

CdrFileDef

...

object

...

as

...

parameter

...

.

...

Could

...

be

...

used

...

to

...

validate

...

if

...

a

...

file

...

has

...

already

...

been

...

loaded

...

or

...

to

...

delete

...

all

...

record

...

in

...

a

...

table

...

before

...

loading.

...

POST_PROCESSOR_METHOD

...

Method

...

in

...

the

...

BILLING_SOURCE_CLASS

...

called

...

after

...

processing

...

a

...

file.

...

The

...

method

...

must

...

take

...

CdrFileDef

...

object

...

as

...

parameter

...

.

...

Could

...

be

...

used

...

for

...

validating

...

contents

...

of

...

the

...

detail

...

against

...

information

...

on

...

the

...

trailer

...

RECORD_FOR_HEADER

...

Possible

...

values

...

are

...

Y

...

and

...

N.

...

This

...

column

...

is

...

solely

...

taken

...

into

...

an

...

account

...

if

...

the

...

PERSIST

...

column

...

has

...

the

...

value

...

Y.

...

In

...

case

...

the

...

first

...

line

...

in

...

the

...

loaded

...

file

...

must

...

be

...

stored

...

in

...

the

...

BATCH_FILE_LINE

...

table,

...

the

...

RECORD_FOR_HEADER

...

column

...

must

...

be

...

set

...

to

...

Y.

...

STATUS_COLUMN_NAME

...

String

...

value.

...

Defines

...

the

...

column

...

name

...

for

...

status

...

of

...

billing

...

source

...

table.

...

If

...

left

...

empty

...

a

...

default

...

name

...

of

...

STATUS

...

is

...

used.

...

NUMBER_OF_RECS_COLUMN_NAME

...

String

...

with

...

default

...

value

...

'NUMBER_OF_RECS'.

...

Defines

...

the

...

column

...

name,

...

where

...

the

...

number

...

of

...

the

...

content

...

lines

...

in

...

a

...

loaded

...

file

...

must

...

be

...

stored.

...

DATE_LOADED_COLUMN_NAME

...

String

...

with

...

default

...

value

...

'DATE_LOADED'.

...

Defines

...

the

...

column

...

name,

...

where

...

the

...

time

...

of

...

the

...

loading

...

must

...

be

...

stored.

...

The

...

column

...

is

...

mandatory

...

in

...

the

...

billing

...

source

...

table.

...

SAVE_RECORD_ORDER

...

Char

...

with

...

possible

...

values

...

'Y'/'N'

...

and

...

default

...

value

...

'N'.

...

Defines

...

whether

...

line

...

number

...

of

...

a

...

loaded

...

record

...

must

...

be

...

stored

...

in

...

the

...

db.

...

RECORD_ORDER_COLUMN_NAME

...

String

...

with

...

default

...

value

...

'LINE_IN_FILE'.

...

Defines

...

the

...

column

...

name,

...

where

...

the

...

line-number

...

of

...

the

...

loaded

...

record

...

must

...

be

...

stored.

...

STATUS_VALUE

...

String

...

with

...

default

...

value

...

'0'.

...

Defines

...

the

...

status

...

of

...

the

...

loaded

...

file.

...

COMMENT_COLUMN_NAME

...

Defines

...

the

...

column

...

name

...

in

...

the

...

billing

...

source

...

table

...

(defined

...

in

...

the

...

column

...

billing_source_table_name),

...

where

...

error

...

messages

...

are

...

posted

...

if

...

a

...

file

...

generation

...

fails.

...

Not

...

mandatory

...

in

...

the

...

billing

...

source

...

table.

...

If

...

left

...

out

...

error

...

messages

...

are

...

simply

...

not

...

posted

...

in

...

the

...

billing

...

source

...

table.

...

PRE_PROCESSOR_HOOKPOINT_KEY

...

Sets

...

the

...

Hookpoint

...

key

...

to

...

be

...

called

...

in

...

the

...

Pre

...

Process.

...

Is

...

invoked

...

with

...

the

...

prefix

...

FILE_PROCESSOR_.

...

POST_PROCESSOR_HOOKPOINT_KEY

...

Sets

...

the

...

Hookpoint

...

key

...

to

...

be

...

called

...

in

...

the

...

Post

...

Process.

...

Is

...

invoked

...

with

...

the

...

prefix

...

FILE_PROCESSOR_.

...

3.1.2

...

CDR

...

Record

...

Definition

...

(CDR_RECORD_DEF)

...

A

...

CDR

...

Record

...

Definition

...

(CDR_RECORD_DEF)

...

defines

...

a

...

record

...

in

...

a

...

CDR

...

file

...

and

...

has

...

the

...

following

...

columns

...

in

...

the

...

CDR_RECORD_DEF

...

table.

...

COLUMN

...

NAME

...

DESCRIPTION

ID

Unique table ID

NAME

Name of record definition

CODE

Code for sub-classing should one of the following DETAIL,HEADER,TRAILER

...

DESCRIPTION

Record definition description

CDR_FILE_DEF_ID

...

ID

...

of

...

CDR_FILE_DEF

...

for

...

which

...

this

...

record

...

definition

...

record

...

belongs

...

FIELD_SEPARATOR_ID

...

Defines

...

what

...

separates

...

one

...

record

...

field

...

from

...

another.

...

Points

...

to

...

a

...

record

...

in

...

the

...

ITEM_SEPARATOR

...

table

...

(CDR_RECORD_DEF.FIELD_SEPARATOR_ID

...

=

...

ITEM_SEPRARATOR.ID

...

)

MAX_LENGTH

...

Defines

...

the

...

length

...

of

...

the

...

record;

...

the

...

default

...

value

...

being

...

-1

...

meaning

...

record

...

is

...

of

...

variable

...

length

...

FULL_LENGTH

...

If

...

the

...

MAX_LENGTH

...

attribute

...

is

...

not

...

-1,

...

and

...

the

...

FULL_LENGTH

...

attribute

...

is

...

set

...

to

...

‘Y’,

...

then

...

the

...

record

...

must

...

be

...

of

...

length

...

MAX_LENGTH.

...

Default

...

value

...

is

...

N

...

CDR_PARSER_ID

...

Parser

...

used

...

to

...

parse

...

a

...

record

...

into

...

fields.

...

(CDR_RECORD_DEF.CDR_PARSER_ID

...

=

...

CDR_PARSER.ID

...

RECORD_TABLE_NAME

...

Name

...

of

...

the

...

table

...

where

...

records

...

are

...

saved.

...

Usually

...

for

...

header

...

and

...

trailer

...

records,

...

the

...

value

...

of

...

this

...

table

...

is

...

the

...

SOURCE_TABLE

...

while

...

for

...

detail

...

records

...

it

...

is

...

the

...

record

...

(BILLING_RECORD)

...

table

...

RECORD_TABLE_CODE

...

Code

...

to

...

be

...

used

...

in

...

the

...

record

...

table

...

in-case

...

sub-classing

...

is

...

to

...

be

...

used

...

RECORD_IDENTIFIER_TYPE

...

If

...

this

...

value

...

is

...

set,

...

then

...

the

...

record

...

will

...

be

...

identified

...

using

...

a

...

CDR_RECORD_IDENTIFIER.

...

Possible

...

values

...

are

...

'ALL'

...

or

...

'AT_LEAST_ONE'

...

.

...

These

...

are

...

explained

...

in

...

section

...

3.1.3

...

PERSIST

Determines if a record should be persisted. Sometimes, one may not need to persist a CDR_RECORD (as in the case where the record is a header of column name). Default value is 'Y' (meaning persist data) otherwise it is 'N' (meaning do not persist data)

RECORD_CLASS

The fully qualified class name of that models the table defined by the RECORD_TABLE_NAME

SOURCE_TABLE_KEY

This columns holds the column name in RECORD_TABLE_NAME table that points to the SOURCE TABLE. This is used by CDR_RECORD_DEFs.
For file generator:
For CDR_RECORD_DEF entries having CODE = 'DETAIL': If this field is empty, the value 'SP_FILE_ID'

...

is

...

used.

...


For

...

CDR_RECORD_DEF

...

entries

...

having

...

CODE

...

=

...

'HEADER'

...

or

...

'TRAILER':

...

 If this

...

field

...

is

...

empty,

...

the

...

value

...

'ID'

...

is

...

used.

...

This

...

is

...

usually

...

the

...

case

...

when

...

the

...

HEADER

...

table

...

is

...

also

...

the

...

source

...

table.

...

So

...

if

...

the

...

file

...

should

...

contain

...

HEADER,

...

TRAILER

...

and

...

DETAIL

...

records

...

and

...

the  data model in the DB contains and extra table for holding the SOURCE info, then all three CDR_RECORD_DEF

...

entries

...

(For

...

HEADER,

...

TRAILER

...

and

...

DETAIL)

...

must

...

contain

...

appropriate

...

value in SOURCE_TABLE_KEY.

...

 
For file loader:
This is used only by CDR_RECORD_DEFs

...

with

...

CODE

...

=

...

'DETAIL'.

...

 If this

...

field

...

is

...

empty,

...

the

...

value

...

'BILLING_SOURCE_ID'

...

is

...

used.

...


For

...

example

...

if

...

the

...

'BILLING_SOURCE_TABLE_NAME',

...

of

...

the

...

appropriate

...

CDR_FILE_DEF

...

record,

...

is

...

IBASIS_MONTH

...

and

...

the

...

detail

...

record

...

table

...

name

...

(RECORD_TABLE_NAME)

...

is

...

IBASIS_RECORD

...

where

...

IBASIS_RECORD.IBASIS_MONTH_ID

...

=

...

IBASIS_MONTH.ID,

...

then

...

the

...

SOURCE_TABLE_KEY

...

will

...

have

...

a

...

value

...

of

...

‘IBASIS_MONTH_

...

ID’

STATUS_COLUMN_NAME

...

String

...

value.

...

Name

...

of

...

the

...

column

...

where

...

the

...

record

...

status

...

must

...

be

...

stored.

...

STATUS_VALUE

...

Value

...

to

...

be

...

set

...

in

...

status

...

column

...

defined

...

in

...

STATUS_COLUMN_NAME.

...

HOOKPOINT_KEY

...

If

...

this

...

is

...

set,

...

it

...

will

...

save

...

this

...

value

...

into

...

RECORD_TABLE

...

_NAME.HOOKPOINT_KEY, not a mandatory value.

3.1.3

...

CDR

...

Record

...

Identifier

...

(CDR_RECORD_IDENTIFIER)

...

A

...

CdrRecordIdentifier

...

consists

...

of:

...

  • a

...

  • CDR_RECORD_DEF_ID

...

  • (CDR

...

  • Record

...

  • DEF)

...

  • a

...

  • field

...

  • position

...

  • (CDR_FIELD_POSITION),

...

  • and

...

  • a

...

  • default

...

  • value

...

  • (DEFAULT_FIELD_VALUE).

...

A

...

Cdr

...

Record

...

Definition

...

can

...

have

...

zero

...

or

...

more

...

CDR_RECORD_IDENTIFIERs.

...

The

...

CDR

...

Record

...

Identifier

...

is

...

used

...

for

...

identifying

...

a

...

CDR

...

RECORD.

...

For

...

example,

...

a

...

Header

...

Cdr

...

Record

...

might

...

be

...

identified

...

by

...

its

...

first

...

field

...

being

...

‘HD’.

...

In

...

this

...

example,

...

a

...

header

...

CDR_RECORD_DEF

...

will

...

have

...

an

...

entry

...

in

...

the

...

CDR_RECORD_IDENTIFER

...

table

...

with

...

CDR_FIELD_POSITION

...

equal

...

1

...

and

...

default

...

field

...

value

...

equal

...

‘HD’.

...

In

...

this

...

situation,

...

the

...

RECORD_IDENTIFIER_TYPE

...

attribute

...

in

...

the

...

CDR_RECORD_DEF

...

table

...

will

...

be

...

‘ALL’.
In another example,

...

a

...

CDR

...

detail

...

record

...

might

...

be

...

identified

...

by

...

at

...

least

...

one

...

of

...

the

...

following

...

values;

...

‘20’,’21’,’22’, in its first field. In this scenario the CDR_RECORD_DEF

...

for

...

the

...

detail

...

record

...

will

...

have

...

three

...

entries

...

in

...

the

...

CDR_RECORD_IDENTIFIER

...

table

...

each

...

with

...

field

...

position

...

equal

...

to

...

1

...

and

...

default

...

field

...

value

...

‘20’,’21’,’22’, respectively.

3.1.4

...

CDR

...

Field

...

Definition

...

(CDR_FIELD_DEF)

...

A

...

Cdr

...

Field

...

Defintion

...

(class

...

:

...

CdrFieldDef,

...

Table:

...

CDR_FIELD_DEF),

...

defines

...

a

...

field

...

in

...

a

...

record

...

(CDR_RECORD_DEF).

...

Its

...

attributes

...

are

...

shown

...

in

...

figure

...

2.1

...

and

...

has

...

the

...

following

...

columns.

...

COLUMN

...

NAME

DESCRIPTION

ID

Unique ID

NAME

Name of Field

CODE

For sub-classing

DESCRIPTION

Description of field

FILE_SPECIFICATION_NAME

...

Name

...

of

...

field

...

in

...

the

...

Specification

...

document

...

DB_COLUMN_NAME

...

Name

...

of

...

field

...

in

...

the

...

Database

...

table

...

CDR_FIELD_FORMAT_DEF_ID

...

ID

...

of

...

the

...

format

...

definition

...

used

...

to

...

format

...

the

...

field,

...

(CDR_FIELD_DEF.CDR_FIELD_FORMAT_DEF_ID

...

=

...

CDR_FIELD_FORMAT_DEF.ID)

...

SUMMABLE

Not used

SUM_FIELD_DEF_ID

...

Not

...

used

...

MAX_LENGTH

...

Defines

...

the

...

maximum

...

length

...

of

...

a

...

field

...

FULL_LENGTH

...

Defines

...

if

...

the

...

length

...

of

...

the

...

field

...

must

...

be

...

equal

...

to

...

MAX_LENGTH.

...

MANDATORY

Defines if the field must have a value

FIELD_POSITION

Defines the position of the field in a record (Not actually used)

START_INDEX

Defines start index of field in record. If a record does not have index separated fields, then this value is set to -1

END_INDEX

Defines end index of field in record. If a record does not have index separated fields, then this value is set to -1

FILLER

Defines what to use to fill the field. For example leading or trailer zero, white space, etc. Used for exporting
If a white space has to be used as filler, the value of this column must be WHITESPACE.

PADDING

Defines where the fillers should be placed on the field. Possible values are LEFT or RIGHT or NONE. Used for exporting
If NONE is used, no padding is done even  if the FULL_LENGTH is set to 'Y'. So use it cautiously.

FORMAT

Defines the format of the field. If present, it is used, else the value in the defined CDR_FIELD_FORMAT_DEF

...

is

...

used

...

EXPORTER_METHOD

...

A

...

method

...

on

...

the

...

CdrField

...

class

...

that

...

must

...

be

...

called

...

before

...

this

...

field

...

is

...

exported

...

DEFAULT_VALUE

...

Field

...

default

...

value

...

EMPTY_WHEN_ZERO

...

Sometimes

...

a

...

field

...

might

...

have

...

a

...

value

...

of

...

zero

...

in

...

the

...

database,

...

but

...

should

...

be

...

exported

...

as

...

an

...

empty

...

field.

...

This

...

field

...

can

...

take

...

either

...

'Y'

...

or

...

'N'

...

as

...

values.

...

default

...

value

...

is

...

'N',

...

meaning

...

field

...

is

...

exported

...

as

...

it

...

is,

...

otherwise

...

if

...

the

...

field

...

has

...

a

...

value

...

of

...

zero,

...

it

...

is

...

exported

...

as

...

an

...

empty

...

string

3.1.5

...

CDR

...

Record

...

Field

...

Definition

...

(CDR_RECORD_FIELD_DEF)

...

A

...

CDR

...

record

...

field

...

definition

...

(Class:CdrRecordFieldDef,

...

Table:

...

CDR_RECORD_FIELD_DEF)

...

defines

...

the

...

position

...

(FIELD_POSITION)

...

of

...

a

...

CdrFieldDef

...

(hence

...

a

...

CdrField)

...

in

...

a

...

CdrRecordDef

...

(hence

...

a

...

CdrRecord).

...

The

...

CdrRecordFieldDef

...

implements

...

the

...

ISequence

...

interface.

...

This

...

interface

...

ensures

...

that

...

no

...

two

...

CdrFieldDefs

...

in

...

a

...

CdrRecordFieldDef

...

have

...

the

...

same

...

position.

...

If

...

a

...

CdrFiedDef

...

is

...

added

...

to

...

a

...

CdrRecordDef

...

with

...

the

...

same

...

position

...

as

...

an

...

already

...

existing

...

CdrFieldDef,

...

the

...

new

...

CdrFielddef

...

will

...

take

...

the

...

place

...

of

...

the

...

old

...

CdrFieldDef

...

and

...

the

...

old

...

CdrFielddef

...

will

...

be

...

pushed

...

on

...

to

...

a

...

position

...

behind.

...

Each

...

time

...

a

...

new

...

CdrFieldDef

...

is

...

added

...

to

...

a

...

CdrRecordDef,

...

an

...

entry

...

is

...

made

...

in

...

the

...

CDR_RECORD_FIELD_DEF

...

table.

...

The

...

method

...

addCdrFieldDef(CdrFieldDef,

...

int)

...

takes

...

the

...

CdrFieldDef

...

to

...

be

...

added

...

and

...

the

...

position

...

the

...

field

...

occupies.

...

This

...

method

...

returns

...

the

...

next

...

available

...

position

...

to

...

which

...

a

...

new

...

CdrFieldDef

...

could

...

be

...

added.

...

A

...

CdrRecordDef

...

consists

...

of

...

one

...

or

...

more

...

CdrRecordFieldDefs.

...

The

...

following

...

columns

...

are

...

found

...

in

...

the

...

CDR_RECORD_FIELD_DEF

...

table:

...

COLUMN

...

NAME

...

DESCRIPTION

ID

Unique ID

CDR_RECORD_DEF_ID

...

ID

...

of

...

Record

...

Defintion

...

CDR_FIELD_DEF_ID

...

ID

...

of

...

Field

...

Definition

...

FIELD_POSITION

...

Position

...

of the field in the record. Start position is 1

3.1.6

...

CDR

...

Field

...

Format

...

Definition

...

(CDR_FIELD_FORMAT_DEF)

...

A

...

CDR

...

field

...

format

...

definition

...

(Class:CdrFieldFormatDef,

...

Table:

...

CDR_FIELD_FORMAT_DEF)

...

defines

...

the

...

format

...

of

...

a

...

field

...

defitnion

...

(CDR_FIELD_DEF).

...

It

...

has

...

the

...

following

...

columns:

...

ID

Unique ID

NAME

Name of Field format definition

CODE

Code used for sub-classing.

...

There

...

are

...

a

...

number

...

of

...

sub-classes

...

as

...

shown

...

in

...

figure

...

2.1

...

DESCRIPTION

Description of field format definition

FILLER

Filler used to format field before export. If present in the corresponding CDR_FIELD_DEF,

...

the

...

filler

...

from

...

CDR_FIELD_DEF

...

is

...

used

...

PADDING

Padding used to format field before export. If present in the corresponding CDR_FIELD_DEF,

...

the

...

padding

...

from

...

CDR_FIELD_DEF

...

is

...

used

...

DECIMAL_PLACES

...

Number

...

of

...

decimal

...

places

...

to

...

use.

...

If

...

decimal

...

format

...

is

...

present

...

in

...

the

...

corresponding

...

CDR_FIELD_DEF,

...

the

...

format

...

from

...

CDR_FIELD_DEF

...

is

...

used

...

DECIMAL_SEPARATOR

...

No

...

longer

...

used.

...

The

...

COUNTRY_LOCALE

...

now

...

defines

...

the

...

decimal

...

separator

...

DATE_FORMAT

...

Format

...

of

...

date,

...

if

...

this

...

is

...

a

...

date

...

format

...

definition

...

(CODE

...

=

...

'DATE').

...

If

...

format

...

is

...

present

...

in

...

the

...

corresponding

...

CDR_FIELD_DEF,

...

the

...

format

...

from

...

CDR_FIELD_DEF

...

is

...

used

...

DATA_FORMAT

...

Format

...

of

...

field

...

data

...

(regular

...

expression),

...

if

...

this

...

is

...

a

...

data

...

format

...

definition

...

(CODE

...

=

...

'DATA').

...

If

...

format

...

is

...

present

...

in

...

the

...

corresponding

...

CDR_FIELD_DEF,

...

the

...

format

...

from

...

CDR_FIELD_DEF

...

is

...

used

...

TIME_FORMAT

...

Format

...

of

...

time,

...

if

...

this

...

is

...

a

...

time

...

format

...

definition

...

(CODE

...

=

...

'TIME'.

...

If

...

format

...

is

...

present

...

in

...

the

...

corresponding

...

CDR_FIELD_DEF,

...

the

...

format

...

from

...

CDR_FIELD_DEF

...

is

...

used

...

COUNTRY_LOCALE

...

Locale

...

used

...

to

...

define

...

the

...

decimal

...

separator,

...

Used

...

for

...

Decimal

...

(CODE

...

=

...

'DECIMAL'),

...

signed-decimal

...

(CODE

...

=

...

'SIGNED-

...

DECIMAL') format definitions. Examples are such as "NL" and "GB"

3.1.7

...

Item

...

Separator

...

(ITEM_SEPARATOR)

...

An

...

Item

...

Separator

...

(Class:ItemSeparator,

...

Table:

...

ITEM_SEPARATOR)

...

defines

...

how

...

an

...

item

...

(CDR_RECORD

...

(in

...

a

...

file)

...

or

...

CDR_FIELD

...

(in

...

a

...

record))

...

is

...

separated.

...

An

...

item

...

separator

...

has

...

a

...

SEPARATOR

...

attribute

...

that

...

defines

...

what

...

separates

...

a

...

record/field

...

from

...

another.

...

The

...

default

...

separator

...

for

...

a

...

CDR_RECORD

...

is

...

a

...

carriage

...

return

...

line

...

feed

...

while

...

there

...

is

...

no

...

default

...

separator

...

for

...

a

...

CDR_FIELD.

...

This

...

has

...

to

...

be

...

defined.

...

An

...

Item

...

separator

...

is

...

used

...

by

...

a

...

CDR

...

Parser

...

to

...

parse

...

a

...

CDR

...

record

...

and

...

a

...

CDR

...

Field.

...

Special

...

types

...

of

...

Item

...

separator

...

exists.

...

These

...

include

...

the

...

Index

...

Item

...

Separator

...

and

...

the

...

Null

...

Item

...

separator.

...

As

...

a

...

NULL

...

cannot

...

be

...

defined

...

in

...

the

...

database,

...

NULL

...

item

...

separator

...

(Null

...

delimiter)

...

has

...

been

...

defined.

...

When

...

a

...

NULL

...

item

...

separator

...

is

...

used,

...

the

...

system

...

will

...

set

...

the

...

correct

...

Java

...

definition

...

of

...

a

...

null

...

string

...

as

...

the

...

separator.

...

When

...

records

...

or

...

fields

...

are

...

separated

...

by

...

indexes,

...

the

...

Index

...

Item

...

Separator

...

(Index

...

delimiter)

...

is

...

used.

...

In

...

order

...

to

...

use

...

an

...

Index

...

Item

...

separator

...

the

...

start

...

index,

...

end

...

index

...

and

...

the

...

max.

...

length

...

of

...

the

...

first

...

record/field

...

must

...

be

...

defined.

...

Please

...

note

...

that

...

the

...

start

...

index,

...

end

...

index

...

and

...

max.

...

length

...

on

...

an

...

Index

...

Item

...

separator

...

are

...

used

...

only

...

to

...

identify

...

the

...

first

...

record/field.

...

The

...

locations

...

of

...

the

...

subsequent

...

fields

...

must

...

be

...

defined

...

in

...

the

...

CDR_FIELD_DEF.

...

The

...

Item

...

Separator

...

table

...

has

...

the

...

following

...

columns:

...

COLUMN

...

NAME

...

DESCRIPTION

ID

Unique ID

NAME

Name of separator

CODE

Code for sub-classing

DESCRIPTION

Description of separator

SEPARATOR

Defines the separator itself

START_INDEX

Defines the start index for Indexed fields delimiters (Non indexed delimiters will have a value of -1)

END_INDEX

Defines the end index of the first field for indexed delimiters (Non indexed delimiters will have a value of -1)

MAX_LENGTH

Maximum length of first field. Used by Indexed fields delimiters

START_QUALIFIER

A symbol to indicate the start of a field. A field might contain a delimiter but has a qualifier such as an open quotation mark. For example a semi column field separated record might look like this 24;35;"552;3636";454;

...

and

...

the

...

START_QUALIFIER

...

is

...

"

...

and

...

END_QUALIFIER

...

is

...

".

...

The

...

this

...

record

...

has

...

4

...

fields,

...

as

...

552;3636

...

is

...

considered

...

a

...

field

...

since

...

it

...

is

...

between

...

the

...

START

...

AND

...

END

...

QUALIFIERs.

...

This

...

column

...

is

...

not

...

mandatory

...

END_QUALIFIER

...

A

...

symbol

...

to

...

indicate

...

the

...

end

...

of

...

a

...

field

...

.

...

It

...

is

...

not

...

mandatory

3.1.8

...

CDR

...

Parser

...

A

...

CDR

...

Parser

...

(Class:CdrParser,

...

Table:

...

CDR_PARSER)

...

parses

...

a

...

CDR

...

File

...

into

...

CDR

...

records

...

and

...

a

...

CDR

...

record

...

into

...

CDR

...

Fields.

...

A

...

CDR

...

file

...

definition

...

knows

...

the

...

CDR

...

parser

...

it

...

needs

...

to

...

parse

...

a

...

CDR

...

file

...

into

...

CDR

...

records

...

while

...

a

...

CDR

...

record

...

knows

...

the

...

CDR

...

parser

...

it

...

needs

...

to

...

parse

...

a

...

CDR

...

record

...

into

...

fields.

...

By

...

default,

...

a

...

CDR

...

Parser

...

will

...

use

...

the

...

carriage

...

return

...

line

...

feed

...

to

...

parse

...

a

...

CDR

...

file

...

into

...

CDR

...

records.

...

However,

...

to

...

parse

...

a

...

CDR

...

record

...

into

...

CDR

...

Fields

...

a

...

field

...

separator

...

(ITEM_SEPERATOR)

...

is

...

needed.

...

This

...

is

...

set

...

by

...

the

...

appropriate

...

CDR

...

Record

...

Definition

...

at

...

run

...

time.

...

3.1.9

...

File

...

Transmitter

...

The

...

File

...

transmitter

...

(Class:FileTransmitter,

...

Table:

...

FILE_TRANSMITTER)

...

defines

...

where

...

a

...

CDR

...

File

...

is

...

located

...

before

...

processing,

...

where

...

it

...

is

...

put

...

after

...

successful

...

or

...

unsuccessful

...

processing,

...

for

...

loading.

...

It

...

also

...

knows

...

where

...

an

...

export

...

file

...

is

...

to

...

be

...

created

...

and

...

where

...

it

...

should

...

be

...

put

...

after

...

successful

...

or

...

unsuccessful

...

file

...

generation.

...

The

...

File

...

transmitter

...

handles

...

the

...

writing

...

to

...

a

...

file

...

during

...

file

...

generation

...

(export).

...

3.1.10

...

CDR

...

File

...

Processor

...

The

...

CDR

...

File

...

Processor

...

(Class:CdrFileProcessor,

...

Table:

...

CDR_FILE_PROCESSOR)

...

handles

...

both

...

loading

...

and

...

generation

...

(export)

...

of

...

CDR

...

files.

...

A

...

CDR

...

File

...

processor

...

knows

...

the

...

CDR

...

File

...

Definition

...

and

...

File

...

Transmitter

...

to

...

use

...

when

...

handling

...

a

...

CDR

...

File.

...

The

...

CDR

...

FILE

...

PROCESSOR

...

has

...

as

...

sub

...

classes

...

CdrFileLoader

...

(CODE

...

=

...

'LOADER')

...

and

...

CdrFileGenerator

...

(

...

CODE

...

=

...

'GENERATOR').

...

As

...

the

...

names

...

imply,

...

the

...

CdrFileLoader

...

handles

...

loading

...

of

...

files

...

while

...

the

...

CdrFileGenerator

...

handles

...

generating

...

of

...

files.

...

The

...

CdrFileGenerator

...

does

...

not

...

handle

...

exportating

...

of

...

a

...

file

...

to

...

any

...

third

...

party.

...

This

...

will

...

be

...

handled

...

by

...

a

...

different

...

process.

...

The

...

CDR_FILE_PROCESSOR

...

table

...

has

...

the

...

following

...

columns

...

COLUMN

...

NAME

...

DESCRIPTION

ID

Unqiue ID

NAME

Name of file processor

CODE

Code for sub-classing (For loading CODE = 'LOADER' : For exporting CODE = 'GENERATOR'

DESCRIPTION

Description of file processor

CDR_FILE_DEF_ID

...

File

...

definition

...

ID

...

of

...

CDR_FILE_DEF

...

processed

...

by

...

this

...

CDR_FILE_PROCESSOR

...

record

...

FILE_TRANSMITTER_ID

...

File

...

transmitter

...

used

...

to

...

located

...

(before

...

processing)

...

and

...

move

...

files

...

(after

...

processing)

...

BRAND_ID

...

ID

...

of

...

BRAND

...

that

...

will

...

be

...

processed

...

by

...

this

...

CDR_FILE_PROCESSOR

...

record.

...

Used

...

only

...

for

...

generating

...

export

...

files.

...

The

...

BRAND_ID

...

must

...

equal

...

the

...

BRAND_ID

...

on

...

the

...

BILLING_SOURCE_TABLE_NAME

...

of

...

the

...

CDR_DEF_ID

...

record

...

defined

...

by

...

the

...

ID

...

of

...

CDR_FILE_DEF

...

processed

...

by

...

this

...

CDR_FILE_PROCESSOR

...

record.

...

For

...

example,

...

for

...

export

...

of

...

CDR

...

files

...

using

...

the

...

SP_FILE_HEADER

...

as

...

source

...

table,

...

the

...

only

...

records

...

in

...

the

...

SP_FILE_HEADER

...

table

...

whose

...

BRAND_ID

...

is

...

the

...

same

...

as

...

the

...

BRAND_ID

...

for

...

this

...

record

...

will

...

be

...

processed

...

by

...

this

...

record.

...

3.1.11

...

Invoking

...

Hookpoint

...

in

...

the

...

Pre

...

or

...

Post

...

Process

...

It

...

is

...

possible

...

to

...

invoke

...

a

...

hookpoint

...

in

...

both

...

the

...

pre

...

process

...

and

...

post

...

process

...

of

...

file

...

processing.

...

This

...

functionality

...

is

...

activated

...

by

...

adding

...

the

...

Hookpoint

...

Key

...

to

...

either

...

the

...

PRE_PROCESSOR_HOOKPOINT_KEY

...

or

...

POST_PROCESSOR_HOOKPOINT_KEY

...

column

...

of

...

the

...

CDR_FILE_DEF.

...

If

...

the

...

PRE_PROCESSOR_HOOKPOINT_KEY

...

value

...

is

...

not

...

emty

...

the

...

hookpoint

...

key

...

with

...

the

...

prefix

...

"FILE_PROCESSOR_"

...

with

...

the

...

brand

...

of

...

the

...

CDR_FILE_PROCESSOR

...

is

...

attempted

...

invoked

...

during

...

the

...

specific

...

process.

...

The

...

particular

...

CdrFile

...

object

...

by

...

the

...

FileProcessor

...

is

...

inserted

...

into

...

context

...

under

...

the key "CDR_FILE".

3.2

...

Generating

...

(Export)

...

Files

...

In

...

order

...

to

...

generate

...

CDR

...

files

...

for

...

export,

...

in

...

addition

...

to

...

the

...

tables

...

defined

...

in

...

3.1

...

above,

...

the

...

following

...

table

...

must

...

also

...

be

...

defined.

...

Unlike

...

for

...

loading

...

where

...

the

...

header/trailer

...

information

...

of

...

a

...

CDR

...

File

...

is

...

stored

...

in

...

a

...

BILLING

...

SOURCE

...

table,

...

the

...

header/trailer

...

information

...

used

...

for

...

generating

...

an

...

export

...

file

...

is

...

stored

...

in

...

an

...

SP_FILE_HEADER

...

table

...

and

...

the

...

BILLING

...

RECORD

...

table

...

must

...

have

...

a

...

column

...

named

...

SP_FILE_ID,

...

that

...

points

...

to

...

the

...

SP_FILE_HEADER

...

record

...

that

...

will

...

be

...

used

...

to

...

generate

...

the

...

export

...

file.

...

An

...

SP_FILE_HEADER

...

table

...

must

...

have

...

at

...

least

...

the

...

following

...

columns

...

ID,

...

FILENAME,

...

BRAND_ID,

...

STATUS

...

and

...

FILE_CREATED_DATE.

...

These

...

columns

...

are

...

inherently

...

used

...

within

...

the

...

model.

...

Sometimes,

...

when

...

generating

...

a

...

file

...

for

...

export,

...

some

...

information

...

needed

...

for

...

export

...

(usually

...

in

...

the

...

header

...

and/or

...

trailer

...

records)

...

is

...

not

...

yet

...

present.

...

This

...

information

...

could

...

be

...

generated

...

by

...

a

...

pre-defined

...

stored

...

procedure

...

that

...

will

...

be

...

called

...

before

...

any

...

file

...

is

...

generated

...

for

...

export.

...

If

...

such

...

a

...

pre-defined

...

stored

...

procedure

...

is

...

needed,

...

then

...

it

...

must

...

accept

...

one

...

the

...

SP_FILE_HEADER_ID

...

as

...

parameter

...

since

...

all

...

processing

...

must

...

depended

...

on

...

the

...

SP_FILE

...

to

...

be

...

generated.

...

The

...

column

...

PRE_EXPOR_PROCEDURE

...

on

...

the

...

CDR_FILE_DEF

...

table

...

holds

...

the

...

value

...

of

...

the

...

pre-defined

...

stored

...

procedure.

...

If

...

such

...

a

...

procedure

...

exists,

...

it

...

will

...

be

...

called

...

before

...

the

...

export

...

file

...

is

...

generated.

...

To

...

generate

...

any

...

other

...

file,

...

the

...

header

...

and

...

trailer

...

records

...

should

...

be

...

stored

...

in

...

the

...

BILLING_SOURCE_TABLE_NAME

...

table

...

defined

...

in

...

the

...

CDR_FILE_DEF

...

while

...

the

...

detail

...

record

...

definition

...

(CDR_RECORD_DEF)

...

pointing

...

to

...

this

...

CDR_FILE_DEF

...

should

...

have

...

a

...

SOURCE_TABLE_KEY

...

appropriate

...

defined

...

as

...

described in section  3.1.2

...

CDR

...

Record

...

Definition

...

(CDR_RECORD_DEF)

...

\ and

...

the

...

BILLING_SOURCE_TABLE_NAME

...

table

...

must

...

have

...

a

...

column

...

following

...

columns

...

ID,

...

FILENAME,

...

BRAND_ID,

...

STATUS

...

and

...

FILE_CREATED_DATE.

...

All

...

other

...

processing

...

is

...

the

...

same

...

as

...

described

...

above.

...

It

...

should

...

be

...

noted

...

that

...

only

...

records

...

in

...

the

...

BILLING_SOURCE_TABLE_NAME

...

table

...

that

...

have

...

status

...

=

...

1

...

(ready

...

for

...

export)

...

will

...

be

...

pickec

...

up

...

by

...

the

...

CDR_PROCESSING_ENGINE

...

(CODE = 'GENERATOR')

3.3

...

Setup

...

Of

...

File

...

Loader

...

and

...

Generator

...

Engines

...

The

...

CdrFileProcessing

...

engine

...

handles

...

loading

...

files

...

and

...

generating

...

files

...

for

...

export.

...

The

...

CdrFileProcessignEngine

...

takes

...

at

...

most

...

three

...

parameters.

...

  • Parameter

...

  • 1

...

  • is

...

  • the

...

  • engine

...

  • name

...

  • (

...

  • “CDR_FILE_LOADER_

...

  • ENGINE” (for

...

  • CdrFileLoaderEngine)

...

  • or

...

  • “CDR_EXPOR_FILE_GENERATOR_

...

  • ENGINE” (for

...

  • CdrExportFileGeneratoeEngine)).

...

  • or

...

  • “CDR_FILE_PROCESSING_

...

  • ENGINE” (for

...

  • both

...

  • loading

...

  • and

...

  • file

...

  • generation)).

...

  • Parameter

...

  • 2

...

  • is

...

  • the

...

  • Engine

...

  • Instance

...

  • Number

...

  • Parameter

...

  • 3

...

  • is

...

  • the

...

  • type

...

  • of

...

  • processing

...

  • (

...

  • “LOADER” (for

...

  • CdrFileLoaderEngine)

...

  • or

...

  • “GENERATOR” (for

...

  • CdrExportFileGeneratoeEngine)).

...


  • If

...

  • parameter

...

  • 3

...

  • is

...

  • not

...

  • set,

...

  • then

...

  • the

...

  • engine

...

  • will

...

  • perform

...

  • both

...

  • loading

...

  • and

...

  • export

...

  • file

...

  • generation.

...

4.0

...

Parameter

...

Setup

...

The

...

following

...

table

...

shows

...

the

...

parameter

...

setup

...

that

...

can

...

be

...

used

...

by

...

CdrFileprocessorEngine.

...

The

...

parameters

...

are

...

under

...

the

...

node

...

"FILE_PROCESSING".

...

NAME

VALUE

TYPE

OPTIONAL

DESCRIPTION

MOVE_INVALID_FILE

...

true

...

|false

...

String

Yes

Defines if the engine should move files in the event they do not meet the pattern name criteria

MAX_FILES_TO_LOAD

...

integer

...

bigger

...

than

...

0

...

Integer

Yes

Defines the number of files that are processed in a single engine iteration. If not present, the default value is 50

BATCH_SIZE

integer bigger than 0

Integer

Yes

Number of SQL statements size used to load in batch. If not present, the default value is 100

DB_SYS_PACKAGE_NAME

...

SYS/CORE_SYS

...

String

Yes

Defines the name of the sys package to be used in SQL statements