9 About Transferring Rollover Resources

This chapter describes rollover transfers and explains how to configure Oracle Communications Billing and Revenue Management (BRM) for rollover transfers.

About Allowing Customers to Transfer Rolled-Over Resources

Resources rolled over from one billing cycle to another are usually rolled over within the same account. By using the rollover-transfer feature, you can transfer non-currency rollover resources from one account or service instance to other accounts or service instances. For example, a parent can request to have any unused free minutes roll over to a son's or daughter's account.

BRM can perform rollover transfers in the following ways:

  • From one account to other accounts.

  • From a service instance in one account to service instances in other accounts.

  • From one account to service instances in other accounts.

  • From a service instance in one account to other accounts.

  • From a service instance in one account to other service instances in the same account.

  • Between services, even when the service types differ.

    The sender's service type does not need to match the receiver's service type as long as both services own the same type of resource, such as dollars or minutes.

BRM cannot transfer rolled over resources when:

  • A member service shares a balance group with its subscription service.

    See "About Rollover Transfers and Subscription Groups".

  • The buckets were created as a result of a previous rollover transfer. Previously rolled over resources cannot be rolled over again.

About the Rollover-Transfer Profile

You specify how to transfer rollovers by using a rollover-transfer profile. The rollover-transfer profile specifies:

  • The account or service that owns the resource grant (the sender).

  • The list of resources to roll over.

  • The accounts or services into which the rollover is transferred (the receiver).

  • (Optional) The validity periods in which the rollovers can transfer.

You create, modify, and delete rollover-transfer profiles in Customer Center. See the Customer Center Help.

When you create a rollover-transfer profile, BRM, by default, verifies that the profile does not have overlapping validity periods or receivers for a given service. You can add or modify the verification checks by customizing the PCM_OP_CUST_POL_VALID_PROFILE policy opcode.

You can select any non-currency resource to configure a rollover transfer unless there is a rollover rule defined in a product and the sender has not purchased that product. The sender must own the product in which the rollover rule is defined for the rollover transfer to occur.

How BRM Performs Rollover Transfers

BRM performs rollover transfers by using the PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER opcode for each account or service that has a rollover-transfer profile associated with it.

BRM performs a rollover transfer as follows:

  1. The BRM event notification system listens for the following events to occur:

    • /event/billing/cycle/rollover/monthly

    • /event/billing/cycle/rollover_correction

    See "Configuring Event Notification for Rollover Transfers".

  2. When one of the events occurs, the event notification system calls PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER.

  3. PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER checks the rollover-transfer profile object (/profile/rollover_transfer) to make sure it is configured and valid for the resource and the receiver.

  4. PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER transfers the rollover amount to the receivers' accounts.

  5. PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER removes the rolled-over amount from the sender's sub-balance and creates new sub-balances for the receivers with the transferred amount.

    The validity of the new sub-balance is based on the accounting cycle of the receiver and is valid for the remainder of the current accounting cycle and the next accounting cycle. The receiver's new sub-balance is not subject to future rollovers and its valid-from date is the end date of the sub-balance that was rolled over.

  6. PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER generates the /event/billing/cycle/rollover_transfer event, which has the same GLIDs as the balance impacts of the original rollover event.

  7. If delayed billing is configured and rolled-over resources were consumed by the sender by delayed events, PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER receives the rollover correction event and adjusts the rollover transfer amount of the receiver accordingly.

    Important:

    You must perform rerating for the receiver if events rated before the rollover correction were consumed from the rollover transfer amount. See "About Rerating the Receiver's Account due to Delayed Billing".

About Rollover Transfers and Subscription Groups

If you offer subscription services, you can transfer rolled-over resources from a subscription service to a member service only if they belong to different balance groups. A member service that shares the same balance group as its subscription service can receive a rollover transfer but cannot send a rollover transfer.

For more information about subscription services, see "About Subscription Services" in BRM Managing Customers.

About Rerating the Receiver's Account due to Delayed Billing

When delayed billing is configured, resources rolled over to the receiver during the initial billing process can be accessed by delayed events of the sender.

After a rollover transfer, if the sender account is rerated and the rollover buckets are adjusted, the receiver's rollover amount is also affected. When a bill is finalized for the sender, BRM generates a rollover correction event to adjust the rollover of the sender if any rolled-over resources were consumed by delayed events. BRM adjusts the rollover transfer amount of the receiver accordingly.

Important:

You must manually rerate the receiver's account if events rated before the rollover correction were consumed from the rollover-transfer amount. BRM does not automatically create rerate jobs for the receiver.

Note:

The receiver must be rerated if there is rollover correction for the sender, even when the sender is not rerated.

Configuring BRM to Use Rollover Transfers

Before you can use rollover transfers, you must perform the following tasks:

  1. Enable rollover transfers in the /config/business_params object.

    See "Enabling Rollover Transfers in BRM".

  2. Set up event notification for rollover transfers.

    See "Configuring Event Notification for Rollover Transfers".

Enabling Rollover Transfers in BRM

To enable rollover transfers, update the subscription parameter instance in the /config/business_params object by using the pin_bus_params utility (see "pin_bus_params" in BRM Developer's Guide).

  1. Create an editable XML file for the subscription parameter instance by using the following command:

    pin_bus_params -r  BusParamsSubscription bus_params_subscription.xml  
    

    This command creates the XML file bus_params_subscription.xml.out in your working directory. If you do not want this file in your working directory, specify the full path as part of the file name.

  2. Open the bus_params_subscription.xml.out file in a text editor.

  3. In the BusParamsSubscription section, enable rollover transfers by changing the RolloverTransfer tag as follows:

    <BusParamsSubscription>
    ...
       <RolloverTransfer>enabled</RolloverTransfer>
    </BusParamsSubscription>
      
    
  4. Save the file as bus_params_subscription.xml.

  5. Go to the BRM_Home/sys/data/config directory and load the change into the /config/business_params object by using the following command:

    pin_bus_params bus_params_subscription.xml  
    

    Note:

    To run the utility from a different directory, see "pin_bus_params" in BRM Developer's Guide.
  6. Read the object with the testnap utility or the Object Browser to verify that all fields are correct.

    See "Reading an Object and Fields" in BRM Developer's Guide.

    The resulting flist of the testnap utility must resemble this example, with the PIN_FLD_PARAM_VALUE field value set to 1:

    0 PIN_FLD_POID  POID [0] 0.0.0.1 /config/business_params 9806 0
    0 PIN_FLD_ACCOUNT_OBJ  POID [0] 0.0.0.1 /account 1 0
    0 PIN_FLD_DESCR  STR [0] "Business logic parameters for                           Subscription"
    0 PIN_FLD_HOSTNAME  STR [0] "-"
    0 PIN_FLD_PARAMS  ARRAY [1] allocated 4, used 4
    1 PIN_FLD_DESCR  STR [0] "Parameter to enable or disable Rollover
                               Transfer feature. 1 means enabled."
    1 PIN_FLD_PARAM_NAME  STR [0] "rollover_transfer"
    1 PIN_FLD_PARAM_TYPE  INT [0] 1
    1 PIN_FLD_PARAM_VALUE  STR [0] "1"
      
    
  7. Stop and restart the Connection Manager (CM).

    See "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

  8. (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.

Configuring Event Notification for Rollover Transfers

To use rollover transfers, you must configure event notification to call the opcode that performs the rollover transfers. BRM uses the /event/billing/cycle/rollover/monthly and /event/billing/cycle/rollover_correction events to trigger a rollover transfer.

To configure event notification for rollover transfers, do the following:

  1. Depending on which BRM features you use, your system may contain one or more configuration files for event notification.

    If your system contains more than one of these files, you must merge their contents into a single file.

    All of the event notification files available in your system are in the BRM_Home/sys/data/config directory.

  2. Add the following entries to the event notification file:

    # Event notification for rollover transfers
    9069    0    /event/billing/cycle/rollover/monthly
    9069    0    /event/billing/cycle/rollover_correction
      
    

    This configures the /event/billing/cycle/rollover/monthly and /event/billing/cycle/rollover_correction events to call the PCM_OP_SUBSCRIPTION_TRANSFER_ROLLOVER opcode (opcode ID number 9069) to determine if a rollover transfer can occur.

    See "How BRM Performs Rollover Transfers".

  3. (Optional) If necessary, add, modify, or delete entries in your event notification file.

  4. (Optional) If necessary, create custom code for event notification to trigger.

  5. Load your event notification file into the BRM database's /config/notify object by running the load_pin_notify utility (see "load_pin_notify" in BRM Managing Customers).

For more information, see "Using Event Notification" in BRM Developer's Guide.