Excessive Refund Events When Cancelling Cycle_Forward_Arrear Events
Last updated on JANUARY 22, 2018
Applies to:Oracle Communications Billing and Revenue Management - Version 126.96.36.199.0 to 188.8.131.52.0 [Release 7.5.0]
Information in this document applies to any platform.
When cancelling cycle_forward_arrear events, there are excessive refund events being generated.
This only happens if multiple discounts are active for a product and Sequential Discounting is enabled.
Steps to reproduce the problem:
1) Create account, with billing day = 1
2) Create service S0
2.1) Service S0 is ignored later, it is only part of a custom logic
3) Create service S1
4) On 2014-03-25, purchase products: P1, P2 and P3, and discounts: D1 and D2, for service S1
4.1) Products P1, P2 and P3 have event type "cycle_forward_arrear"
4.2) Discount D1 discounts product P1: -100%
4.3) Discount D2 discounts product P2: -100%
5) On 2014-03-29, purchase product P4, and discounts D3 and D4, which are another instances of discounts D1 and D2, and hence:
4.2) Discount D3 discounts product P1: -100%
4.3) Discount D4 discounts product P2: -100%
6) On 2014-03-29, cancel discounts D1 and D2
6.1) Invalid events are generated at this step.
After step 4:
products P1, P2 and P3, and discounts D1 and D2, have dates:
START: 2014-03-25, END: 0 == infinity
Fees for period 2014-03-25 - 2014-04-01 for P1 and P2, and discounts D1 and D2 have been applied.
These are events: 284184173361820746, 284184173361823178.
After step 5:
product P4, and discounts D3 and D4, have dates:
START: 2014-03-29, END: 0 == infinity
Discounts for period 2014-03-29 - 2014-04-01 for D1 and D2 have been re-applied, and then refunded. This is ok, as sum of new balance impacts is 0.
These are events: 284254542105997786, 284254542105998394, 284254542105999546, 284254542106000954.
After step 6:
discounts D1 and D2 have dates:
START: 2014-03-25, END: 2014-03-29
Discounts for period 2014-03-29 - 2014-04-01 have refunded:
1. For discount D4, which is invalid, as it has never been applied in the first place: event 284254542105997510 .
2. For discount D2, which is invalid, as D4, which discounts P2 for -100%, is active in this period: event 284254542106001030
3. For discount D1, which is invalid, as D3, which discounts P1 for -100%, is active in this period: events 284254542105998470 and 284254542106000710 - this has been refunded twice, which makes it double invalid.
None of these should have been refunded.
This only happens when dealing with products with "cycle_forward_arrear" event type, and Sequential Discounting is enabled.
Another observation is that this behavior is dependent on number of products active. If there is only one product-discount pair, fees and refunds are valid.
When there are more such pairs, number of invalid events is multiplied (for example, with two more such pairs, discount D1 is refunded 4 times).
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms