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 188.8.131.52.0 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:
- 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%
- In Pricing Center, create a Discount Object for the discount created in Step 1. Set the event to "Product Purchase Fee Event"
- Create a new Product of Type = Subscription and Applies to = /service/telco/gsm/sms
- Add an Event Map for "Product Purchase Fee Event"
- Add a Rate Plan with "Overrides credit limit" enabled
- Create 2 Balance Impacts (2000 for the Resource discounted by 100% in Step 1 and -1000 for any other non-currency resource)
- Create a Deal which bundles the Discount from Step 2 and the Product from Step 3. Have it apply to /service/telco/gsm/sms
- Create a Plan and associate the Deal from Step 7
- Associate the Plan from Step 8 to a Plan List
- Create a new account and purchase the Deal from Step 7
The resulting balance impacts against the account will be:
- -1000 R1 (expected 0)
- 1000 R2 (expected 1000)
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