62 Configuring Rerating in Pipeline Manager

This chapter describes how to rerate events by using the Oracle Communications Billing and Revenue Management (BRM) Pipeline Manager.

About the Back-Out Pipeline

The back-out pipeline is a separate pipeline and contains the following modules:

  • The FCT_Discount module removes the EDR discount balance impacts from the discount accounts.

  • The FCT_AggreGate module calculates the aggregation results and writes them to the back-out result file. It writes one result file for each transaction.

Figure 62-1 shows the back-out pipeline:

Configuring the Back-Out Pipeline

When you configure the back-out pipeline, you configure the following parameters in the pipeline registry:

  • The ISC_AddCBD iScript. You configure this by configuring an instance of the FCT_IScript module.

  • The FCT_Discount module. You set the BackOut registry entry to TRUE.

  • The FCT_AggreGate module. You set the BackOut registry entry to TRUE.

Pipeline Manager creates one control file and one result file for each transaction and each aggregation scenario.

About Starting the Back-Out Pipeline

Before you start the back-out pipeline stop all rating pipelines and ensure that there are no outstanding events being loaded.

You start the back-out pipeline by sending a semaphore:

ifw.Pipelines.ALL_BCKOUT.Active = TRUE

About Stopping the Back-Out Pipeline

You stop the back-out pipeline by sending a semaphore:

ifw.Pipelines.ALL_BCKOUT.Active = FALSE

About the Rerating Pipeline

The rerating pipeline contains the same function modules as the rating pipeline, except that it does not contain the FCT_CallAssembling and FCT_DuplicateCheck modules. The rerating pipeline locks the appropriate customer accounts until rerating is completed.

Note:

Before you start the rerating pipeline, ensure that you corrected all configuration data in the Pipeline Manager database, such as the charge that caused the incorrect calculation.

After the EDRs are re-rated with the updated configuration data, the FCT_BillingRecord module writes to the BRM billing record the difference between the old and re-rated balance impacts for each EDR.

The rerating output file contains all events for which the price has changed as a result of rerating and the change in the balance impact.

The output module sends the output file with the updated impact balances to the Rerated Event Loader (RREL) which loads them into the BRM database.

Figure 62-2 shows the rerating pipeline:

About Configuring the Rerating Pipeline

When you configure the rerating pipeline, you configure the same modules in the registry as for the normal rating pipeline. The only difference is that you do not configure the FCT_DuplicateCheck and the FCT_CallAssembling modules.

For the rerating pipeline, you use special backout input and output grammar files, and you create separate input and output directories.

For a sample registry for the rerating pipeline, see the rerating.reg file.

This sample shows the input configuration for a rerating pipeline. It uses a special backout grammar file, and a separate input directory.

Input
  {
    UnitsPerTransaction = 1
      InputModule
      {
        ModuleName  = INP_GenericStream
        Module
        {
          DefaultOutput = RerateOutput
          Grammar = ./formatDesc/Formats/Solution42/SOL42_V630_REL_InGrammar_BACKOUT.dsc
          InputStream
          {
            ModuleName = EXT_InFileManager
            Module
            {
              InputDirEmptyTimeout = 10
              InputPath   = ./samples/wireless/data/backout/in
              InputPrefix = test.
              InputSuffix = .edr
              DonePath    = ./samples/wireless/data/backout/done
              DonePrefix  = test.
              DoneSuffix  = .done
              ErrorPath   = ./samples/wireless/data/backout/err
              ErrorPrefix = test.
              ErrorSuffix = .err
              TempPrefix  = tmp.
              Replace     = TRUE
            }
          } # end of InputStream
        }
      } # end of InputModule
    } # end of Input

This sample shows the output for telephony EDRs in a rerating pipeline. It uses a special backout output grammar file and a separate output directory.

TELOutput
   {
     ModuleName = OUT_GenericStream
     Module
     {
       Grammar = ./formatDesc/Formats/Solution42/SOL42_V630_REL_OutGrammar.dsc
       DeleteEmptyStream = True
      OutputStream
       {
         ModuleName = EXT_OutFileManager
         Module
         {
           OutputPath = ./samples/wireless/data/rerate/telout
           OutputPrefix = test
           OutputSuffix = .out
           TempPrefix   = .
          TempDataPath    = ./samples/wireless/data/rerate/telout
           TempDataPrefix  = tel.tmp.
           TempDataSuffix  = .data
          Replace = TRUE
         }
       }
     }
   } # end of TELOutput

Note:

To ensure output file integrity, specify a unique combination of OutputPath, OutputSuffix, and OutputPrefix values for each output stream defined in the registry.

About Starting the Rerating Pipeline

Before you start the rerating pipeline, ensure that the back-out pipeline has processed all EDRs that were extracted by the Event Extraction Tool. Also ensure that all other rating pipelines are stopped.

To start the rerating pipeline, use the event handler to start the rerating pipeline when the input directory is empty. To do so, configure the corresponding section in the registry. The EVT_INPUT_DIR_EMPTY event is triggered by the EXT_InFileManager when the input directory is emptied. In this sample, the event starts the rerating pipeline.

EventHandler
{
  ModuleName = EVT
  Module
  {
    Events
    ifw.Pipelines.ALL_BCKOUT.Input.InputModule.Module.InputStream.Module
    {
      EVT_INPUT_DIR_EMPTY = ./start_rerate.sh
    }
  }

  Buffer
  {
    Size = 100
  }
 }
}

To define when to send EVT_INPUT_DIR_EMPTY event, use the EXT_InFileManager InputDirEmptyTimeout registry entry.

About Stopping the Rerating Pipeline

You stop the rerating pipeline manually by sending a semaphore:

ifw.Pipelines.RERATE.Active = FALSE