My Oracle Support Banner

Unable to Apply Expected Discount Against Multiple Non-Currency Resources (Doc ID 2427849.1)

Last updated on DECEMBER 01, 2020

Applies to:

Oracle Communications Billing and Revenue Management - Version and later
Information in this document applies to any platform.


On all versions of Oracle Communications Billing and Revenue Management, when discounting multiple non-currency resources where one resource is credited and the other debited, the expected discount is not correctly applied.  Only a portion of the expected discount amount is being applied.

For example, if a product grants 1000 units of Resource 2 (R2) at the cost of 2000 units of Resource 1 (R1), a 100% discount configured for R1 will only discount R1 by 1000 units as the total charge is assumed to be 1000 R1 units (2000 + -1000).

To reproduce this issue:

  1. In the Pipeline Toolbox, create a Discount Trigger, Master, Rule, and Model.  In the Discount Rule, create a Discount Step to discount a specific non-currency resource by 100%
  2. In Pricing Center, create a Discount Object for the discount created in Step 1.  Set the event to "Product Purchase Fee Event"
  3. Create a new Product of Type = Subscription and Applies to = /service/telco/gsm/sms
  4. Add an Event Map for "Product Purchase Fee Event"
  5. Add a Rate Plan with  "Overrides credit limit" enabled
  6. Create 2 Balance Impacts (2000 for the Resource discounted by 100% in Step 1 and -1000 for any other non-currency resource)
  7. Create a Deal which bundles the Discount from Step 2 and the Product from Step 3.  Have it apply to /service/telco/gsm/sms
  8. Create a Plan and associate the Deal from Step 7
  9. Associate the Plan from Step 8 to a Plan List
  10. Create a new account and purchase the Deal from Step 7

The resulting balance impacts against the account will be:

If discount tracing is enabled, the following can be seen in the discount trace:

evalBalImpact(1) - DBI id: 100024, res: 1000007
EBI: id: 1 C/Q:2000/1.00000000
                  PktId: 1, amt/qty: 2000/1.00000000
computeStepValues: stepC/stepQ: 2000/1.00000000
BASE expr: STEPC, result: 2000
computeDiscount(): grant percentage discount of -2000
totalDiscount in direct discount case: in non-currency case2000.0 and discount amount is : -1000.0
adjusted discountAmount: -1000.0
Total Discounted Charge so far: 0.0
Total Discounted NCR  so far: 0.0
INFO: UTC offset in seconds is 0
discountImpact() --DP 3-- GRANT -1000.0 to Res: 1000007 BG: 488630; (BG evt/obj: 488630/488630)

Specifically, the "adjusted discountAmount" has been reduced to -1000.




To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.