15 Improving Invoicing Performance

Learn how to improve invoicing performance in Oracle Communications Billing and Revenue Management (BRM).

Topics in this document:

Improving Performance by Customizing Search Results

By default, when generating invoices, BRM searches for all items and events in the database, regardless of whether they are included in the invoice. BRM performs the following search operations in steps, which means that it returns search results in blocks instead of returning all search results at one time:

  • Searches for the /bill object to retrieve the account summary information such as the bill number, billing cycle details, payment due date, and amount due.

  • Searches for items and events associated with the /bill object to retrieve billing information such as purchase fees, cycle fees, and usage fees.

  • Searches for all A/R items and events associated with the /billinfo object to retrieve A/R information such as adjustments, disputes, and refunds.

After the search operations are complete, BRM then categorizes the results and displays only the specified events and items on the invoice.

You can improve performance by using the InvEventFetchSize and InvItemFetchSize business parameters to change the number of events and items returned in a block of results.

To improve performance by changing the number of events and items returned:

  1. Go to BRM_home/sys/data/config.
  2. Use the following command to create an editable XML file from the Invoicing instance of the /config/business_params object:
    pin_bus_params -r BusParamsInvoicing bus_params_Invoicing.xml

    This command creates an XML file named bus_params_Invoicing.xml.out in your current directory. If you do not want this file in your current directory, specify the path as part of the file name.

  3. In bus_params_Invoicing.xml.out, do the following:
    • Set InvEventFetchSize to the maximum number of events allowed:
      <InvEventFetchSize>value</InvEventFetchSize>
    • Set InvItemFetchSize to the maximum number of items allowed:
      <InvItemFetchSize>value</InvItemFetchSize>
    The default value for both business parameters is 10000.

    Caution:

    BRM uses the XML in this file to overwrite the existing instance of the /config/business_params object. Use care when updating parameters in the file.
  4. Save and exit the file.
  5. Rename the bus_params_Invoicing.xml.out file to bus_params_Invoicing.xml.
  6. Use the following command to load your changes into the /config/business_params object:
    pin_bus_params bus_params_Invoicing.xml

    You should run this command from the BRM_home/sys/data/config directory, which includes support files used by the utility. To run it from a different directory, see "pin_bus_params" in BRM Developer's Guide.

  7. Read the object with the testnap utility or the Object Browser to verify that all fields are correct.

    For general instructions on using testnap, see "Using the testnap Utility to Test BRM" in BRM Developer's Guide. For information on how to use Object Browser, see "Reading Objects" in BRM Developer's Guide.

  8. Stop and restart the Connection Manager (CM).

    For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

To customize the search operation (for example, to search for specific items or to omit a step), use the PCM_OP_INV_POL_SELECT policy opcode. See BRM Opcode Guide.

Improving Performance by Customizing Event Caching

You can improve performance by limiting the amount of information cached. However, when retrieving information, it is quicker to read from a cached field than from the event table. To customize event caching, you can change the fields that are cached, or disable event caching.

By default, BRM caches the fields shown in Table 15-1. To change the fields that are cached, use the PCM_OP_ACT_POL_SPEC_EVENT_CACHE policy opcode. See BRM Opcode Guide.

Table 15-1 Cached Invoicing Fields

Field Description

PIN_FLD_AMOUNT

The account balance impact. The value can be positive or negative.

PIN_FLD_DISCOUNT

The discount applied to the balance impact.

PIN_FLD_IMPACT_TYPE

Balance impact type - rated by BRM rated-engine (0x1), pre-rated (0x2), taxed (0x4), purchase order (0x8), re-rated (0x20), and reverse_rated (0x40).

PIN_FLD_ITEM_OBJ

Link to the item object affected by this event. Applies only to the balance array element that impacts currency balances. (This may be different from the PIN_FLD_ITEM_OBJ field in the base /event object.)

PIN_FLD_QUANTITY

The quantity applied. The number of units actually applied using this charge.

PIN_FLD_RATE_TAG

Description of the charge used. Same as PIN_FLD_DESCR in the /rate object.

PIN_FLD_RESOURCE_ID

Numeric value of the balance element that is impacted.

PIN_FLD_TAX_CODE

Tax code for the charge used. When taxes do not apply, this field is set to 0.

To disable event caching:

  1. Go to BRM_home/sys/data/config.
  2. Use the following command to create an editable XML file from the BusParamsInvoicing instance of the /config/business_params object:
    pin_bus_params -r BusParamsInvoicing bus_params_Invoicing.xml

    This command creates an XML file named bus_params_Invoicing.xml.out in your current directory. If you do not want this file in your current directory, specify the path as part of the file name.

  3. In bus_params_Invoicing.xml.out, set EventCache to disabled:
    <EventCache>disabled</EventCache>

    Caution:

    BRM uses the XML in this file to overwrite the existing instance of the /config/business_params object. Use care when updating parameters in the file.
  4. Save and exit the file.
  5. Rename the bus_params_Invoicing.xml.out file to bus_params_Invoicing.xml.
  6. Use the following command to load your changes into the /config/business_params object:
    pin_bus_params bus_params_Invoicing.xml

    You should run this command from the BRM_home/sys/data/config directory, which includes support files used by the utility. To run it from a different directory, see "pin_bus_params" in BRM Developer's Guide.

  7. Read the object with the testnap utility or the Object Browser to verify that all fields are correct.

    For general instructions on using testnap, see "Using the testnap Utility to Test BRM" in BRM Developer's Guide. For information on how to use Object Browser, see "Reading Objects" in BRM Developer's Guide.

  8. Stop and restart the Connection Manager (CM).

    For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

Improving Performance by Removing Invoice Details You Do Not Need

By default, BRM invoices include billing details, such as usage items, device details, and tax totals, which helps customers understand the charges on their invoices. If your company does not offer telephony services or if your company does not want to publish certain details on invoices, you can improve invoicing performance by configuring BRM to retrieve only the invoice details needed.

To do so, you use a CM configuration file entry to specify the details to exclude from your invoices:

  • Exclude device details from invoices. Improves performance by configuring BRM to skip the device search and the totaling of balance impacts per device.

    Note:

    Do not exclude device details if any of the accounts in your system contain devices; otherwise, accounts with devices will have incorrect invoices.

  • Exclude tax totals from invoices. Improves performance by configuring BRM to skip the aggregation of tax totals. Exclude tax totals only if you do not have tax in the entire system and you will not perform A/R actions with taxes.

    Note:

    When you exclude tax totals from invoices, the Taxes and Surcharges line in the invoice Summary of Current Charges section is set to 0.00.

  • Exclude package, bundle, and charge offer pricing details from invoices. Improves performance by configuring BRM to skip the retrieval of package, bundle, and charge offer pricing details from the BRM database. When you exclude that information, invoices do not include package names, detail names, or Siebel CRM promotion names.

  • Exclude balance group details. Improves performance by configuring BRM to skip the search for balance group details.

    Note:

    When you exclude balance group details, invoices do not include noncurrency balances.

To improve invoicing performance:

  1. Open the CM configuration file (BRM_home/sys/cm/pin.conf).

  2. Set the inv_perf_features entry to the appropriate value:

    - fm_inv inv_perf_features FlagValue
    

    where FlagValue is a bitmap flag that specifies the details to exclude from your invoices. Each bit position controls a specific feature. To use multiple features, you must OR the bitmaps. For example, to exclude balance impact details, device details, and tax total details from your invoices, set FlagValue to 0x00003010.

    • 0x00000010 includes balance impact details from invoices.

    • 0x00000800 improves search performance.

    • 0x00001000 excludes device details from invoices.

    • 0x00002000 excludes tax totals from invoices.

    • 0x00004000 excludes package, bundle, charge offer pricing details from invoices.

    • 0x00008000 excludes balance group details from invoices.

  3. Save and close the file.

  4. Stop and restart the CM.