10 Configuring Billing for Groups and Hierarchies

Learn how to configure the way Oracle Communications Billing and Revenue Management (BRM) bills sharing groups and account hierarchies.

Topics in this document:

Setting Up Billing for Charge and Discount Sharing Groups

By default, when billing is run, bill units are billed in this order:

  1. All nonpaying child bill units in all accounts.

  2. All remaining bill units in all accounts.

If you have discount or charge sharing groups in your BRM system, you must reconfigure your system to bill accounts in this order:

  1. All nonpaying child bill units in all accounts.

  2. All remaining discount group member bill units in all member accounts.

  3. All remaining charge sharing group member bill units in all member accounts.

  4. All remaining bill units in all accounts.

This ensures that billing is run for all member accounts before it is run for any discount or charge sharing group owner account.

Note:

If you do not reconfigure your system, discount and charge sharing group owner accounts might be billed before some of their member accounts. When this occurs, the members' sponsored charges are not included in the owner's bill for the current billing cycle. Instead, they are added to the owner's bill for the next billing cycle.

To enable this feature, run the pin_bus_params utility to change the BillingFlowSponsorship business parameter. For information about this utility, see BRM Developer's Guide.

The following setups ensure that two-level discount and charge sharing relationships are correctly billed. For sharing relationships that exceed two levels, the billing sequence might be incorrect, resulting in incorrect billing.

For example, suppose account A owns a sharing group to which account B belongs, and account B owns a sharing group to which account C belongs. Owner account A and member account B are billed in the correct order: member before owner. Owner account B and member account C, however, might not be billed in the correct order. This happens because B is an owner of account C's group and a member of account A's group. As a member, it is billed at the same time all other member accounts are billed and thus might be billed before account C.

To set up billing for charge sharing groups:

  1. Go to BRM_home/sys/data/config.

  2. Create an XML file from the /config/business_params object:

    pin_bus_params -r BusParamsBillingFlow bus_params_billing_flow.xml 
  3. In the XML file, change undefined to one of the following:

    • sponsorsFirst to bill group owner accounts before member accounts.

    • sponsoreesFirst to bill member accounts before group owner accounts.

    If the billing order of the owner and member accounts does not matter, keep the original setting of undefined.

    <BillingFlowSponsorship>undefined</BillingFlowSponsorship>
  4. Save the file as bus_params_billing.xml.

  5. Load the XML file into the BRM database:

    pin_bus_params bus_params_billing_flow.xml 
  6. Stop and restart the CM.

  7. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see BRM System Administrator's Guide.

To set up billing for discount sharing groups:

  1. Go to BRM_home/sys/data/config.

  2. Create an XML file from the /config/business_params object:

    pin_bus_params -r BusParamsBillingFlow bus_params_billing_flow.xml 
  3. In the XML file, change undefined to one of the following:

    • discountParentsFirst to bill group owner accounts before member accounts.

    • memberDiscountFirst to bill member accounts before owner accounts.

    If the billing order of owner and member accounts does not matter, keep the original setting of undefined.

    <BillingFlowDiscount>undefined</BillingFlowDiscount>
  4. Save the file as bus_params_billing.xml.

  5. Load the XML file into the BRM database:

    pin_bus_params bus_params_billing_flow.xml 
  6. Stop and restart the CM.

  7. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see BRM System Administrator's Guide.

Skipping Validation of Billing for Nonpaying Child Bill Units

If you use bill unit hierarchies, BRM validates that all nonpaying bill units have been billed successfully before billing the paying parent bill unit. When billing fails for a nonpaying child bill unit, the parent bill unit is not billed. In rare instances, however, when billing for the nonpaying child bill unit continuously fails and you want to proceed with billing the parent bill unit, you can skip validation of billing for the nonpaying child bill unit.

To enable this feature, run the pin_bus_params utility to change the SkipCheckForSubordinatesBilled business parameter. For information about this utility, see "pin_bus_params" in BRM Developer's Guide.

To skip validation of billing for nonpaying child bill units:

  1. Go to BRM_home/sys/data/config.

  2. Create an XML file from the /config/business_params object:

    pin_bus_params -r BusParamsBilling bus_params_billing.xml 
  3. In the XML file, change disabled to enabled:

    <SkipCheckForSubordinatesBilled>enabled</SkipCheckForSubordinatesBilled>
    • disabled: BRM validates that all nonpaying child bill units have been billed successfully before billing the parent bill unit. This is the default.

    • enabled: BRM skips validation of billing for nonpaying child bill units and bills the parent bill unit.

  4. Save the file as bus_params_billing.xml.

  5. Load the XML file into the BRM database:

    pin_bus_params bus_params_billing.xml 
  6. Stop and restart the CM.

  7. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see "pin_multidb" in BRM System Administrator's Guide.