5 New Features in BRM

Learn about the new features in Oracle Communications Billing and Revenue Management (BRM) 15.0.

Topics in this document:

New Features in BRM 15.0.1

BRM 15.0.1 includes the following enhancements:

Contract Management Now Independent of Deliverable-Based Revenue Recognition

You can now create contracts regardless of the revenue recognition scheme your BRM system uses. In previous releases, you could create contracts only if deliverable-based revenue recognition was enabled. Deliverable-based revenue recognition aligns with the ASC 606 and IFRS 15 accounting standards. For information, see "Managing Customer Contracts" in BRM Managing Customers.

In addition, contract management now supports the following operations:

  • Performing backdated operations

  • Using multiple G/L segments

  • Using Conversion Manager

  • Performing rerating

  • Using the Web Services Manager opcodes

  • Performing accounts receivable (A/R) operations, such as adjustments

Note:

Contract management does not support these operations when deliverable-based revenue recognition is enabled. See "Enabling Deliverable-Based Revenue Recognition" in BRM Collecting General Ledger Data.

Contract Management Enhancements

BRM now supports the following contract management enhancements:

  • Specifying a minimum contract length: You can now specify a minimum length for a contract with corresponding penalty charges for early cancellation. If customers cancel early, they must pay the remaining balance up to the minimum contract length. See "About Penalty Fees" in PDC Creating Product Offerings for more information.

    For example, assume a subscription term has a 1-year commitment period, a minimum contract length of 4 months, and a $50 monthly fee. Customers would be charged $50 for each month remaining in the 4-month minimum contract length. A customer canceling after 1 month would pay $150, and a customer canceling after 3 months would pay $50. A customer canceling after 6 months would pay $0 because they already paid the 4-month minimum.

  • Applying penalty fees: The penalty fee can now consist of an early termination fee, the remaining contract balance, or both. See "About Penalty Fees" in PDC Creating Product Offerings for more information.

    In previous releases, the penalty fee could be an early termination fee or the contract balance. You could not apply both.

  • Extending the /subscriber_contract storable class: You can now extend the /subscriber_contract storable class to store additional fields. To do so, see "Extending Subscriber Contracts (Release 15.0.1 or later)" in BRM Opcode Guide.

  • Customizing how penalty fees are applied during cancellation: You can use the new PCM_OP_CONTRACT_POL_CANCEL_CONTRACT policy opcode to customize how penalty fees are calculated and applied during the contract cancellation process.

Flist Management Macros Now Include Compile-Time Flags

When calling the PUT flist management macros, you can now set compile-time flags in your custom code's Makefile. The compile-time flags specify to automatically set source pointers to NULL during PUT operations and assign a NULL value to an flist or object after the macro call, preventing it from being destroyed in the future.

Table 5-1 lists each flist management macro, its compile-time flag, and what happens after the macro is called with the flag.

Table 5-1 New Compile-Time Flags for Flist Management Macros

Flist Macro Name Compile-Time Flag After Macro Call

PIN_FLIST_FLD_PUT

-DASSIGN_NULL_AFTER_FLD_PUT

valp changed to NULL

PIN_FLIST_ELEM_PUT

-DASSIGN_NULL_AFTER_ELEM_PUT

elem_flistp changed to NULL

PIN_FLIST_SUBSTR_PUT

-DASSIGN_NULL_AFTER_SUBSTR_PUT

substr_flistp changed to NULL

For information, see "Using Compile-Time Flags to Avoid Errors in Flists (Release 15.0.1 or later)" in BRM Developer's Guide.

Invoice Documents Can Now be Generated for Custom Criteria

You can generate invoice documents for invoices that meet your custom criteria, such as only for Canadian customers with an invoice delivery type of email. You specify the criteria using a list of key-value pairs, which correspond to parameters you add to the data model defining the requirements for selecting invoices.

Note:

With custom criteria, the selected invoices are split into batches, and one job is scheduled for each batch using the bursting mode.

For information, see "Generating Invoice Documents Based on Custom Criteria (Release 15.0.1 or later)" in BRM Designing and Generating Invoices.

Itemized Tax Calculation for Disputes and Settlements

BRM can now calculate the tax settlement details when a dispute or settlement is performed for a bill, item, or event, allowing you to know how much tax is being settled per jurisdiction.

You can configure BRM to segregate the tax amount for each dispute and settlement based on the tax code and tax jurisdiction by setting the TaxReturnJuris business parameter to itemize. By default, the parameter is set to summary, which specifies to segregate the tax amount based on the tax code. For information, see "Configuring Itemized Taxation for A/R and Payments" in BRM Calculating Taxes.

In addition, the PCM_OP_GET_ITEM_DETAILS opcode has been enhanced to show the settled tax and settled taxed amounts based on the tax code and jurisdiction level for each item. For information, see "About the Item Data Retrieved" in BRM Opcode Guide.

Triggering Either In-Advance or Post-Expiration Notifications

When setting up your system to send messages to customers through an external application, you can now configure BRM to trigger notifications before an event occurs, after an event occurs, or both. This applies to the following:

  • Balance elements: You can configure any currency or noncurrency balance element to trigger notification events when its validity period is about to expire, when it has already expired without new funds being added, or for both.

  • Product expiration: You can configure a subscription to trigger notification events before the subscription expires, after the subscription expires, or for both.

  • Subscription renewals: You can configure a subscription to trigger notification events before it is due for renewal, after it is past due for renewal, or for both.

In previous releases, in-advance and post-expiration notifications were either both enabled or both disabled.

For information, see "Configuring BRM to Send Notifications to External Notification Applications" in BRM Managing Customers.

Trial Billing Support for Subset of Child and Parent Accounts in a Wholesale Hierarchy

In wholesale bill unit hierarchies, you can now trigger trial billing for:

  • All child accounts under a specific parent billing account and the parent billing account

  • Specific child accounts alone under a parent billing account

  • Specific parent billing account alone skipping the check on whether trial billing is performed for all child accounts under the parent billing account

Prior to this release, trial billing had to be performed for all child accounts and then for all parent accounts.

For information, see "Running Trial Billing" in BRM Configuring and Running Billing.

New Features in BRM 15.0.0

This section lists the features introduced between BRM 12.0 Patch Set 8 and BRM 15.0.0.

For information about the features introduced between BRM 12.0 and BRM 12.0 Patch Set 8, see "New Features in BRM" in BRM 12.0 Patch Set Release Notes.

BRM 15.0.0 includes the following enhancements:

64-Bit Support for All BRM Components

All former BRM 32-bit components, such as the Connection Manager (CM), are now 64-bit components. In addition, you can now use all timestamps representing a date after January 19, 2038.

Note:

Support extends to all BRM, Pricing Design Center, Business Operations Center, Billing Care, and Elastic Charging Engine components.

If you are upgrading to BRM 15.0, you need to recompile any BRM customizations, such as to policy opcodes, as 64-bit extensions. For more information, see "Migrating Custom Code to a 64-bit Environment" in BRM Installation Guide.

Supported Upgrades to Release 15.0

The following upgrade paths to the 15.0 release are supported:

  • BRM 12.0 to BRM 15.0

  • Any BRM 12.0 Patch Set to BRM 15.0

  • ECE 12.0 to ECE 15.0

  • Any ECE 12.0 Patch Set to ECE 15.0

The upgrade paths support the following on-premise and cloud native versions:

  • On-premise versions of BRM with an ECE charging engine to a 15.0 version

  • On-premise versions of BRM with real-time and batch rating engines to a 15.0 version

  • BRM cloud native with an ECE charging engine to a 15.0 version

  • BRM cloud native with real-time and batch rating engines to a 15.0 version

  • On-premise versions of BRM with real-time and batch rating engines to BRM cloud native 15.0 with real-time and batch rating engines

Support for Purchasing Same Product or Discount Multiple Times with Separate Balances

Previously, customers could extend the validity of a balance by purchasing a product or discount again, and the new balance was added to the existing balance. Now, you can track the new and existing balances separately, with separate validity dates.

You can use two new options with the loadpricelist utility. When creating deals in your XML file, you set the value for the <purchase_mode> element under the <deal_product> or <deal_discount> element. You can set the purchase mode to:

  • 4: Longest date. Extends the old subscription with a separate balance, setting the validity end date to whichever is later, the new or existing validity.
  • 5: Cumulative validity. Extends the old subscription with a separate balance, setting the validity end date by adding the new validity to what remains of the old validity.

For example, on June 1, a customer purchases a deal that grants 3GB of data, is valid for seven days, and has a grace period of 4 days. On June 3, after using 1GB, they purchased the deal again. With both options, the new 3GB balance is added to a new balance group, separate from the remaining 2GB in the old balance group.

With option 4, the new balance is valid starting on June 3, and BRM compares the validity periods of the old and new balances to set the validity end date for the new balance to the later of the two end dates, June 10. The old balance retains the original validity dates.

With option 5, the new balance is valid starting on June 8. BRM adds what remains of the validity period of the old balance to the new balance to set the validity end date for the new balance to June 15. The old balance retains the original validity dates.

For information, see "Purchasing the Same Product or Discount Multiple Times" in BRM Configuring Pipeline Rating and Discounting.

BRM REST Services Manager API Supports Order Bill Fulfillment

The BRM REST Services Manager API now supports the following order bill fulfillment operations:

  • Purchasing a product offering, such as a bundled offer, charge offer, or discount offer

  • Suspending a purchased service

  • Resuming a suspended service

  • Terminating a purchased product offering

You can also specify to cancel a customer's service in the future.

If you support two-phase billing, you can specify whether to purchase an offer with the start date set to 365 days in the future or to the actual activation date.

You implement order bill fulfillment using the new Perform Billing Fulfillment operation in the BRM REST Services Manager API. For more information, see REST Services Manager API for Billing and Revenue Management.

Note:

The order bill fulfillment operations are based on the TMF 622 Product Ordering API and cover the bill fulfillment-related tasks of the product ordering flow.

The order bill fulfillment operations also support extending the framework by adding attributes to the request payload.

Pipeline Rating Supports SSL Connection to BRM

The BRM real-time and batch rating engines now support SSL communication with the BRM Connection Manager (CM), improving the security among all BRM components.

For information, see "Enabling SSL/TLS in Real-Time Pipeline" in BRM System Administrator's Guide.

Support for Full-Day Discounts

Previously, when rounding to midnight was disabled, and a discount was purchased after midnight, the discount would not be applied to the entire day. For example, a discount purchased at 15:00 on June 1 would apply only from 15:00 through 24:00 on June 1. Now, you can specify to apply the discount to the entire day even when rounding to midnight is disabled. That is, a discount purchased at 15:00 would apply from 00:00 through 24:00 on June 1.

You can use the new option with the loadpricelist utility. When creating discounts in your XML file, you set the value for the <discount_validity_rounding> element under the <discount> element. You can set <discount_validity_rounding> to one of the following:

  • ON: Sets the discount start time to the time of purchase.

  • OFF: Sets the discount start time to midnight (00:00:00) of the day the discount is purchased.

  • NOT_SET: Uses the systemwide setting in the /config/business_profile object. This is the default.

For information, see "Setting Discount Validity Rounding" in BRM Configuring Pipeline Rating and Discounting.

Improved Timeout Consistency

Previously, timeouts in BRM terminated only the client side of the operation. The database operation was rolled back only after the transaction was completed.

BRM client applications contain a new parameter for setting the maximum timeout of BRM transactions. If a timeout occurs, the client side of the operation is terminated, and the transaction is not committed to the database. This guarantees that transactions are not committed when timeouts occur and writes to the database do not occur at any point during the transaction.

For information, see "Setting a Timeout Value for Requests Sent to the CM" in BRM System Administrator's Guide.

Improved Synchronization Between BRM and External CRM Applications

Previously, BRM used the Synchronization Queue Data Manager to synchronize pricing data, such as charge offers, discount offers, and chargeshare offers, with external customer relationship management (CRM) applications. In the 15.0 release, Synchronization Queue Data Manager has been obsoleted.

To improve performance, BRM now uses the Oracle Data Manager (DM) to synchronize data between BRM and your external CRM. Oracle DM sends pricing data in business events to Oracle Advanced Queuing (AQ) database queues in the BRM database, where your external CRM can retrieve it. For information, see "Synchronizing Pricing Data between the BRM Database and External CRMs" in BRM System Administrator's Guide.

Note:

Oracle DM rolls back the transaction in both the BRM database and the AQ database queue if the commit to either fails.

The BRM 15.0 installation includes scripts and configuration files to help you create and configure the AQ database queues.

BRM CM Now Supports Authorization

Previously, BRM thick client applications, such as Customer Center and Pricing Center, handled all authorization with BRM. In addition, command-line utilities could not manage fine-grained authorization because they are part of the BRM server and have access to all opcodes and storable classes.

To improve security, the CM layer now also performs authorization. Authorization in the CM is based on opcodes the user is allowed to run and storable classes the user is allowed to read or update. The list of opcodes and storable classes users can access are defined in roles.

For more information, see "Managing Login Names and Passwords" in BRM System Administrator's Guide.

Improved POID Caching

BRM 15.0 includes a new POID generation logic that limits the number of times data needs to be retrieved from the database, which improves performance.

Simplified BRM Multischema Installation

In BRM 15.0, the multischema installation process has been simplified, reducing the overall time to set up your system.

Previously, the process for creating the database schemas was a two-step process. First, it made the primary and secondary schemas with all tables and snapshots. Second, it dropped the tables and snapshots from the secondary schemas and replaced them with views.

Now, the BRM multischema installation creates the database schemas in one step. It creates the primary schema with all tables and snapshots and the secondary schemas with views.

See "Installing a Multischema System" in BRM Installation Guide for more information.

BRM Supports Validation for Dynamic Charging

Previously, you could dynamically override pricing at purchase time with no validation. Now, the overrides you can use at purchase time are restricted and validated by price tags created as setup components.

You configure price tags as setup components in PDC and publish them to BRM in changesets. The price tags are stored in the /config/price_tags object.

The rules configured in the setup components determine which price tags are valid for a resource and which values can be used at purchase time. You can restrict price tags to certain resources, resource units, and services. You can restrict the values that can be used to a list or range of values.

For example, you could create the following price tag setup components:

  • Applicable to the minute unit of free minutes resources of TelcoGSM and Telephony services, with permitted values of 10 and 20.
  • Applicable to any unit of US Dollars resources of TelcoGSM services, with permitted values between 100 and 200.
  • Applicable to the byte unit Euro resources of TelcoGSM services, with no restrictions on the value.

At purchase time, you retrieve the list of price tags and valid values for a specified resource, service, or product using the PCM_OP_SUBSCRIPTION_GET_PRICE_TAGS opcode. The opcode output includes the valid values you can use to override the price.

You can also see the details for price tags configured for products using the PCM_OP_PRICE_GET_PRODUCT_INFO opcode or the Get Offer Details endpoint of the Billing Care REST API.

For information, see "Configuring Dynamic Charging" in PDC Creating Product Offerings.

Conversion Manager Supports All New Functionality

Conversion Manager supports all features added between the BRM 12.0 and BRM 15.0 releases, such as loan management and taxation exemptions.