This chapter provides reference information for Oracle Communications Billing and Revenue Management (BRM) Pipeline Manager input and output modules.
The EXT_InEasyDB module handles pipeline input from a database. See:
This module runs automatically when you start Pipeline Manager.
Configure this module as a submodule of the INP_GenericStream module. See "INP_GenericStream".
To configure input from files, see "EXT_InFileManager".
Table 40-1 lists the EXT_InEasyDB registry entries.
Table 40-1 EXT_InEasyDB Registry Entries
Entry | Description | Mandatory |
---|---|---|
ControlPath |
Specifies the path for SQL, parameter, job and restart files. ./database/Oracle/Scripts/Suspense |
Yes |
DataConnection |
Specifies the connection to the Pipeline Manager database. See "Connecting a Module to a Database" in BRM System Administrator's Guide. |
Yes |
FieldDelimiter |
Specifies the character that separates the EDR fields. |
Yes |
FileName |
Specifies the job and restart file name prefix. |
Yes |
InputDirEmptyTime |
Specifies the time period (in seconds), the input directory must be empty before the EVT_INPUT_DIR_EMPTY event is sent. |
No |
InputPrefix |
Specifies the prefix of the stream/output file name. |
No |
InputSuffix |
Specifies the flag which tells the stream to generate date and time information in the stream/output file name. |
Yes |
NumberOfRows |
Specifies the array fetch size. |
Yes |
ParameterFile |
Specifies the name of a file that contains iRule parameter values which can be used as placeholders in the SQL statements. They can be used in the update or startup registry. |
Yes |
Replace |
Specifies the prefix/suffix should be replaced (True) or appended (False). |
No |
SqlDetail |
Specifies the name of a file that contains the SQL select statement for generating an EDR detail record. The choices are:
|
Yes |
SqlHeader |
Specifies the name of a file that contains the SQL select statement for generating an EDR header (result must be exactly one row). |
No |
SqlOnFailure |
Specifies the name of a file that contains the SQL statement which is executed if the output file is incorrect. |
Yes |
SqlOnSucess |
Specifies the name of a file that contains the SQL statement that is executed if the output file is correct. |
Yes |
SqlTrailer |
Specifies the name of a file that contains the SQL select statement for generating an EDR trailer (result must be exactly one row). |
No |
Stream { ControlPath = ./database/Oracle/Scripts/Suspense DataConnection = IntegRate.DataPool.Login FileName = DB FileNameExtension = true inputPrefix = sol42_ inputSuffix = .dat FieldDelimiter = ; ParameterFile = parameter.isc SqlHeader = header.sql SqlDetail = detail.sql SqlTrailer = trailer.sql SqlOnSuccess = success.sql SqlOnFailure = failure.sql Replace = true SynchronizeWithOutput = true NumberOfRows = 1000 }
Table 40-2 lists the EXT_InEasyDB event messages.
Table 40-2 EXT_InEasyDB Event Messages
Message | Description | Send/Recv |
---|---|---|
MSG_STREAM_START |
The database input stream is started. |
Send: Input module Send: Format |
MSG_STREAM_END |
The database input stream is stopped. |
Send: Input module Send: Format |
MSG_STREAM_BEGIN |
The database stream starts the processing of a new input file. |
Send: Input module |
MSG_STREAM_END |
The current file has been completely processed. |
Send: Input module |
MSG_STREAM_STOP |
The database input stream is stopped (inactive). |
Send: Input module |
CMD_RENAME_INPUT_STREAM |
The input file is renamed. |
Receive: Output module |
The EXT_InFileManager module performs file handling for pipeline input from files. See:
This module runs automatically when you start Pipeline Manager.
Configure this module as a submodule of the INP_GenericStream module. See "INP_GenericStream".
To configure input from a database, see "EXT_InEasyDB".
Table 40-4 lists the EXT_InFileManager registry entries.
Table 40-4 EXT_InFileManager Registry Entries
Entry | Description | Mandatory |
---|---|---|
DonePath |
Specifies the path for the processed files. |
Yes |
DonePrefix |
Specifies the prefix for the processed files. |
No |
DoneSuffix |
Specifies the suffix for the processed files. |
No |
ErrorPath |
Specifies the path for incorrect files. |
Yes |
ErrorPrefix |
Specifies the prefix for incorrect files. |
No |
ErrorSuffix |
Specifies the suffix for incorrect files. |
No |
InputDirEmptyTimeout |
Specifies the time period (in seconds), the input directory must be empty before the EVT_INPUT_DIR_EMPTY event is sent. |
No |
InputPath |
Specifies the path for the input files. |
Yes |
InputPrefix |
Specifies the prefix for the input files. |
No |
InputSuffix |
Specifies the suffix for the input files. |
No |
Replace |
Specifies the prefix and or suffix can be replaced or appended. Default = True. |
No |
TempPrefix |
Specifies the prefix for temporary files. |
No |
InputStream { ModuleName = EXT_InFileManager Module { InputDirEmptyTimeout = 10 InputPath = ./samples/wireless/data/in InputPrefix = test InputSuffix = .edr DonePath = ./samples/wireless/data/done DonePrefix = test DoneSuffix = .done ErrorPath = ./samples/wireless/data/err ErrorPrefix = test ErrorSuffix = .err TempPrefix = tmp Replace = TRUE } }
Table 40-5 lists the EXT_InFileManager event messages.
Table 40-5 EXT_InFileManager Event Messages
Message | Description | Send/Receive |
---|---|---|
REQ_INPUT_FILENAME |
Request to send back the complete input file name (including path) corresponding to a specific stream name (as known by the TAM). |
Receive |
REQ_INPUT_TEMP_FILENAME |
Request to send back the temporary input file name (including path) corresponding to a specific stream name (as known by the TAM). |
Receive |
REQ_DONE_FILENAME |
Request to send back the final input file name (including path) corresponding to a specific stream name (as known by the TAM), after successful processing. |
Receive |
REQ_ERROR_FILENAME |
Request to send back the final input file name (including path) corresponding to a specific stream name (as known by the TAM), after an unsuccessful processing. |
Receive |
REQ_RETURN_FILENAME |
Request to send back the return file name (including path) corresponding to a specific stream name (as known by the TAM), when batch reject was requested. |
Receive |
REQ_RETURN_TEMP_FILENAME |
Request to send back the temporary return file name (including path) corresponding to a specific stream name (as known by the TAM), when batch reject was requested. |
Receive |
The EXT_OutFileManager module handles files for the OUT_Generic_Stream and OUT_Reject modules. See:
This module runs automatically when you start Pipeline Manager.
Important:
To ensure output file integrity, specify a unique combination of OutputPath, OutputSuffix, and OutputPrefix values for each output stream defined in the registry.Table 40-6 lists the EXT_OutFileManager registry entries.
Table 40-6 EXT_OutFileManager Registry Entries
Entry | Description | Mandatory |
---|---|---|
AppendSequenceNumber |
Specifies if the sequence number should be appended to the output file name or not. |
No |
DeleteEmptyFile |
Deletes the output file if only the header and trailer are written to the stream. Note: By default, this entry is set to True. Configure any processes that manipulate output files to wait approximately one minute before acting on a file. This delay allows the module to delete empty files. |
No |
Replace |
Specifies if the prefix/suffix should be replaced (TRUE) or appended (FALSE). Default = True. |
No |
SequencerPrefix |
This entry is used to specify a prefix to the sequence number before it gets appended to the generated output file name. This entry is used only when AppendSequencerNumber is set to True. |
No |
TempPrefix |
Specifies the prefix for the output stream's temporary data file. See "Configuring the Temporary File Name". Default = . |
No |
TempDataPath |
Specifies the path for the internal temporary file list. Important: Do not change this registry entry. It is used by the pipeline for internal data processing. |
No |
TempDataPrefix |
Specifies the prefix for the internal temporary file list. Important: Do not change this registry entry. It is used by the pipeline for internal data processing. |
No |
TempDataSuffix |
Specifies the suffix for the internal temporary file list. Important: Do not change this registry entry. It is used by the pipeline for internal data processing. |
No |
OutputPath |
Specifies the path for the output files. |
Yes |
OutputPrefix |
Specifies the prefix for the output files. |
No |
OutputSuffix |
Specifies the suffix for the output files. |
No |
UseInputStreamName |
Specifies to use the input file name to build the output file name. See "Creating an Output File Name from the Input File Name". |
No |
#-------------------------------------------------------------------- # The /service/telco/gsm/telephony output stream #-------------------------------------------------------------------- TELOutput { ModuleName = OUT_GenericStream Module { Grammar = ./formatDesc/Formats/Solution42/SOL42_V430_REL_OutGrammar.dsc DeleteEmptyStream = True OutputStream { ModuleName = EXT_OutFileManager Module { OutputPath = ./samples/wireless/data/telout OutputPrefix = test OutputSuffix = .out UseInputStreamName = [2,4;4,6;8,&] TempPrefix = tmp. TempDataPath = ./samples/wireless/data/telout TempDataPrefix = tel.tmp. TempDataSuffix = .data Replace = TRUE SequencerPrefix = "+" } } } } # end of TELOutput
The INP_GenericStream module provides the input interface to pipelines. See "Configuring EDR Input Processing".
Table 40-9 lists the INP_GenericStream registry entries.
InputModule { ModuleName = INP_GenericStream Module { DefaultOutput = EdrOutput Grammar = ./FMD/Formats/Solution42/SOL42_V430_InGrammar.dsc InputStream ModuleName = EXT_InFileManager Module { InputPath = ../input/maxitel/in InputPrefix = Sol42 InputSuffix = .edr DonePath = ../input/maxitel/done DonePrefix = Sol42 DoneSuffix = .done ErrorPath = ../input/maxitel/err ErrorPrefix = Sol42 ErrorSuffix = .err TempPrefix = tmp Replace = TRUE } } } }
The INP_Realtime module converts data in flist format to the EDR container format. See "Configuring a Real-Time Discounting Pipeline".
You can use an iScript to overwrite the mappings from flist fields to EDR fields, and to add custom mappings.
For more information, see "About Customizing Mapping of Flist Fields to Rating EDR Container Fields".
Table 40-10 lists the INP_Realtime registry entries.
Table 40-10 INP_Realtime Registry Entries
Entry | Description | Mandatory |
---|---|---|
DefaultOutput |
Specifies the default output module. This is always the OUT_Realtime module. |
Yes |
MappingScript |
iScript file name. |
No |
OpcodeMapping |
Specifies the XML file that describes the input flist field to EDR container field mapping. BRM provides the following default flist-to-EDR mappings:
You can customize these files to change how flists are mapped to EDR container fields. See "About Customizing Mapping of Flist Fields to Rating EDR Container Fields". |
Yes |
The INP_Recycle module is used by standard recycling and Suspense Manager in the pre-recycling pipeline. It reads suspended usage records from the BRM database, restores original EDRs, applies edits to them, and pushes EDRs into the pre-recycling pipeline.
For standard recycling, see "Configuring a Pre-Recycling Pipeline".
For Suspense Manager, see "Configuring a Pre-Recycling Pipeline".
Table 40-11 lists the INP_Recycle registry entries.
Table 40-11 INP_Recycle Registry Entries
Entry | Description | Mandatory |
---|---|---|
DefaultOutput |
Specifies the default output stream. |
Yes |
InfranetConnection |
Specifies a connection to the BRM database. See "Connecting a Module to a Database" in BRM System Administrator's Guide. |
Yes |
InputStream |
Configures the EXT_InEasyDB module. See "EXT_InEasyDB". |
Yes |
RecyclingDataModule |
Specifies a connection to the DAT_Recycling module. See "Connecting A Pipeline Manager Module To Another Module" in BRM System Administrator's Guide. |
Yes |
InputModule { ModuleName = INP_Recycle RecyclingDataModule = ifw.DataPool.RecyclingData Module { DefaultOutput = TELOutput RecyclingDataModule = ifw.DataPool.RecyclingData InfranetConnection = ifw.DataPool.LoginInfranet InputStream { ModuleName = EXT_InEasyDB Module { ControlPath = ./data/input/db DataConnection = ifw.DataPool.LoginInfranet FileName = DB FileNameExtension = true InputPrefix = sol42_ InputSuffix = .dat FieldDelimiter = \t RecordDelimiter = \n ParameterFile = parameter.isc # optional parameter: SqlHeader = RecycleHeader.sql SqlDetail = StdRecycleDetail.sql # optional parameter: # SqlTrailer = trailer.sql SqlOnSuccess = success.sql SqlOnFailure = failure.sql Replace = true SynchronizeWithOutput = true NumberOfRows = 1000 } } # end of InputStream } } # end of InputModule
Table 40-12 lists the INP_Recycle EDR container fields.
Table 40-12 INP_Recycle EDR Container Fields
Alias field nameDefault field name | Type | Access | Description |
---|---|---|---|
OVERRIDE_REASONS DETAIL.ASS_SUSPENSE_OVERRIDE_REASONS |
String |
Write |
The suspense reasons to ignore during recycling. Used by the other pipeline modules for rating call records in spite of the pipeline validation rules they violate. |
PIPELINE_NAME DETAIL.ASS_SUSPENSE_EXT.PIPELINE_NAME |
String |
Write |
Name of the pipeline originally used for the EDR. Read from the database. Used by the IRL_PipelineSplitting module. |
SUSPENSE_ID DETAIL.ASS_SUSPENSE_EXT.SUSPENSE_ID |
Integer |
Write |
The POID ID of the /suspended_usage object for this EDR. Used by Suspended Event Loader when updating suspended usage records. |
BATCH_ID DETAIL.ORIGINAL_BATCH_ID |
String |
Write |
The original routing switch batch ID. Used for revenue assurance. |
PROCESS_STATUS DETAIL.INTERN_PROCESS_STATUS |
Integer |
Write |
Indicates whether the EDR is being recycled (1) or test recycled (2). |
The INP_Restore module reads serialized EDRs from the file output by the OUT_Serialize module. It restores EDRs to normal format and pushes them into a pipeline.
Requires the use of the OUT_Serialize module to produce serialized EDRs in the correct format.
When you configure this module, you also configure the EXT_InFileManager module, which manages input, temporary, and done files. See "EXT_InFileManager" in the Infranet documentation for more information about this module.
#--------------------------------- # Input section #--------------------------------- Input { UnitsPerTransaction = 1 InputModule { ModuleName = INP_Restore Module { DefaultOutput = EdrOutput InputStream { ModuleName = EXT_InFileManager Module { InputPath = $DATA/in InputPrefix = testpipeline InputSuffix = .edr DonePath = $DATA/done DonePrefix = testpipeline DoneSuffix = .done ErrorPath = $DATA/err ErrorPrefix = testpipeline ErrorSuffix = .err TempPrefix = tmp Replace = True InputDirEmptyTimeout = 60 } } } } }
The OUT_DB module sends output to the Pipeline Manager database.
See "Sending Output to a Database".
Table 40-14 lists the OUT_DB registry entries.
Table 40-14 OUT_DB Registry Entries
Entry | Description | Mandatory |
---|---|---|
ControlPath |
Specifies the name of the control/configuration directory. |
Yes |
DataConnection |
Specifies the connection to the Pipeline Manager database. See "Connecting a Module to a Database" in BRM System Administrator's Guide. |
Yes |
DeleteWithoutDetails |
Specifies if an empty output stream should force a rollback of all actions. Default = True |
No |
Destination |
Specifies the value for the destination field in the header record. |
No |
DetailTableDefinition |
Specifies the name of the file that contains the description of the destination detail table. |
Yes |
FieldDelimiter |
Specifies the delimiter between each field needed by the tokenizer. |
Yes |
HeaderTableDefinition |
Specifies the name of the file that contains the description of the destination header table. |
No |
NumberOfRows |
Specifies the array size for the bulk inserter. A good value is 500. |
Yes |
ParameterFile |
Specifies the name of parameter file which contains optional key/value entries See "Parameter File". |
Yes |
RowNumAlias |
Specifies the alias that is replaced by the inserted rows. |
Yes |
SaveConfigurationFile |
Specifies whether to delete the configuration file of each stream. Default = False |
No |
Source |
Specifies the value for the source field in the header record. |
No |
SqlBeginStream |
Specifies the name of SQL file that contains an SQL statement. See "SqlBeginStream". |
No |
SqlEndStream |
Specifies the name of SQL file that contains an SQL statement. See "SqlEndStream". |
No |
StreamNameAlias |
Specifies the alias that is replaced by the internal stream name value. |
No |
TrailerTableDefinition |
Specifies the name of the file that contains the description of the destination trailer table. |
No |
WriteDefaultEdr |
Specifies if a default EDR is written in empty data streams. Default = False |
No |
Streams { EdrOutput { StreamDestination = Database Destination = CBC21 Source = D1 DataConnection = integrate.DataPool.Login NumberOfRows = 500 ControlPath = control FieldDelimiter = ; RowNumAlias = __RowNum__ StreamNameAlias = __StreamName__ SqlBeginStream = beginStream.sql SqlEndStream = endStreamNeu.sql ParameterFile = parameter_out.isc HeaderTableDefinition = headerTable.dat DetailTableDefinition = detailTable.dat TrailerTableDefinition = trailerTable.dat WriteDefaultEdr = false DeleteWithoutDetails = true SaveConfigurationFile = true } Reject { StreamDestination = File OutputPath = /data/reject OutputSuffix = .rej Replace = True } }
Important:
To ensure output file integrity, specify a unique combination of OutputPath, OutputSuffix, and OutputPrefix values for each output stream defined in the registry.The OUT_DevNull module removes EDRs that are not needed by Pipeline Manager. See "Configuring Output of Discarded EDRs".
For more information, see "Discarding and Skipping EDRs".
The OUT_GenericStream module handles the output stream for rated EDRs. See "Configuring EDR Output Processing".
For back-out-only rerating, it generates the output file to be loaded into the BRM database by the Rated Event (RE) Loader. See "About Back-Out-Only Rerating" in BRM Setting Up Pricing and Rating.
When you configure the OUT_GenericStream module, you configure the EXT_OutFileManager module to specify file management options. See "EXT_OutFileManager".
Table 40-15 lists the OUT_GenericStream registry entries.
Table 40-15 OUT_GenericStream Registry Entries
Entry | Description | Mandatory |
---|---|---|
AddInvoiceData |
When set to True, the output module adds invoice data to each BRM billing record. Default = False |
No |
DeleteEmptyStream |
Specifies to delete empty output streams. If you run multiple RE Loader processes in parallel, set this option to True. Otherwise, RE Loader attempts to load the empty files. Default = True See "Configuring Pipeline Manager to Delete Empty Output Streams". |
No |
EventType |
Specifies the BRM event type that the output file contains, such as /event/delayed/session/gsm. |
Mandatory only for RE Loader-related pipelines |
Grammar |
Specifies the output grammar description file. |
Yes |
OutputStream |
Contains the configuration for the EXT_OutFileManager. |
Yes |
ProcessType |
Specifies which process created the output file and can be set to one of the following values:
|
Mandatory only for RE Loader-related pipelines |
Sequencer |
Specifies the Sequencer for performing sequence generation. This Sequencer must be defined in the SequencerPool section of the registry file. See:
|
No |
#-------------------------------------------------------------------- # The /service/telco/gsm/telephony output stream #-------------------------------------------------------------------- TELOutput { ModuleName = OUT_GenericStream ProcessType = RATING_PIPELINE EventType = /event/delayed/session/gsm Module { Grammar = ./formatDesc/Formats/Solution42/SOL42_V430_REL_OutGrammar.dsc DeleteEmptyStream = True Sequencer = SequenceGenerator_1 OutputStream { ModuleName = EXT_OutFileManager Module { OutputPath = ./samples/wireless/data/telout OutputPrefix = test OutputSuffix = .out TempPrefix = tmp. TempDataPath = ./samples/wireless/data/telout TempDataPrefix = tel.tmp. TempDataSuffix = .data Replace = TRUE } } } } # end of TELOutput
Important:
To ensure output file integrity, specify a unique combination of OutputPath, OutputSuffix, and OutputPrefix values for each output stream defined in the registry.The OUT_Realtime module converts data in the pipeline EDR output to flist format. It sends the output to the NET_EM module automatically. You don't need to configure a pointer to the NET_EM module.
You can use an iScript to overwrite the mappings and to add custom mappings. You use the registry file to specify the iScript.
For more information, see "Configuring a Real-Time Discounting Pipeline".
The OUT_Reject module writes rejected EDRs to an output stream. The written record is exactly the same as the original input record. See "Configuring Output for Rejected or Duplicate EDRs".
When you configure the OUT_Reject module, you configure the EXT_OutFileManager module to specify file management options. See "EXT_OutFileManager".
Reject { ModuleName = OUT_Reject Module { OutputStream { ModuleName = EXT_OutFileManager Module { OutputPath = ../output/tel/rej OutputPrefix = Sol42 OutputSuffix = rej TempPrefix = tmp Replace = TRUE DeleteEmptyFile = FALSE } } } }
Important:
To ensure output file integrity, specify a unique combination of OutputPath, OutputSuffix, and OutputPrefix values for each output stream defined in the registry.The OUT_Serialize module creates serialized EDR records with base64 encoding.
The INP_Restore module is required to read and restore EDRs serialized by this module.
When you configure this module, you also configure the EXT_OutFileManager module, which manages output files. See "EXT_OutFileManager" in the Infranet documentation for more information about this module.
Table 40-17 lists the OUT_Serialize registry entries.
Table 40-17 OUT_Serialize Registry Entries
Entry | Description | Mandatory |
---|---|---|
DeleteEmptyStream |
Specifies whether empty streams should be deleted. Set to True to prevent SEL from attempting to load empty files. Default = True |
Yes |
ProcessType |
Specifies which process created the output file. If used, sets the HEADER.CREATION_PROCESS field in the EDR to the value specified. |
No |
EventType |
Specifies the Infranet event type that the output file contains, such as /event/delayed/session/gprs. If used, sets the HEADER.EVENT_TYPE field to the values specified. |
No |
OutputStream |
Configures the EXT_OutFileManager. |
Yes |
#------------------------------------------------------------ # The serialized EDR output stream #------------------------------------------------------------ SerEdrOutput { ModuleName = OUT_Serialize Module { DeleteEmptyStream = True ProcessType = RECYCLING_PIPELINE EventType = /event/delayed/session/gprs OutputStream { ModuleName = EXT_OutFileManager Module { OutputPath = $DATA/out OutputPrefix = test OutputSuffix = .out TempPrefix = . TempDataPath = $DATA/out TempDataPrefix = tel.tmp. TempDataSuffix = .data Replace = TRUE } } } } # end of SerEdrOutput
Parses CDR files to multiple identical pipelines. This module routes files with a specified filename prefix and suffix from a single input directory to multiple pipelines in round-robin fashion.
For information, see "Connecting a Module to a Database" in BRM System Administrator's Guide.
Table 40-18 lists the Pipeline Dispatcher registry entries.
Table 40-18 Pipeline Dispatcher Registry Entries
Entry | Value | Description | Mandatory |
---|---|---|---|
DispatcherName |
N/A |
Specifies the name of the dispatcher. You can use any name, for example, Dispatcher1. If your system requires multiple dispatchers, create a set of entries for each dispatcher. |
N/A |
DispatcherName.InputPath |
String |
Specifies the path of the CDR input directory. For example: InputPath = ./samples/wireless/data/input |
N/A |
DispatcherName.InputPrefix |
String |
Specifies the prefix of all CDR files you want routed. The dispatcher only routes files with the specified prefix and suffix to your pipelines. For example: InputPrefix = test |
N/A |
DispatcherName.InputSuffix |
String |
Specifies the suffix of all CDR files you want routed. The dispatcher only routes files with the specified prefix and suffix to your pipelines. For example: InputSuffix = .edr |
N/A |
DispatcherName.TargetPipelines |
N/A |
Subgroup that lists which pipelines to route your CDR files. |
N/A |
DispatcherName.TargetPipelines.DestinationPipeline |
String |
Specifies to which pipelines to route CDR files. Add an entry for each pipeline. For example: DestinationPipeline = ifw.Pipelines.W_SAMPLE DestinationPipeline = ifw.Pipelines.W_SAMPLE_2 Important: The pipelines must use a separate input directory from the CDR input files. |
N/A |
DispatcherName.TargetPipelines.Routing |
ROUND_ROBIN |
Specifies to use round-robin routing. Note: The dispatcher uses round-robin routing only. |
Yes |
ifw { PipelineDispatcher { ModuleName = EXT_PipelineDispatcher Module { Dispatcher1 { InputPath = ./samples/wireless/input InputPrefix = TAP3 InputSuffix = .edr TargetPipelines { DestinationPipeline = ifw.Pipelines.Pipeline_1 DestinationPipeline = ifw.Pipelines.Pipeline_2 Routing = ROUND_ROBIN } } } } }