Two Schedule Objects are Getting Created for Future Dated Transfer (Doc ID 2225150.1)

Last updated on JANUARY 25, 2017

Applies to:

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

Symptoms

On :  7.5.0.14.0 version, Subscription

User tested the changed functionality "If future dated end date is passed for service_bal_grp transfer, a schedule object will be created." (provided from MPS1 onward) on PS14. 

User noticed however that the new functionality works fine only for the very basic, simplistic case and fails when tests get a little bit less straightforward (and closer to reality).
Consider the following scenario #1 for an account with BDOM=1 and 3 billinfos (3 separate invoices):
1. on Jan 10th a CSR action triggers PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER to move a service A from BILLINFO_1 to BILLINFO_2 on Feb 1st. This schedules a deferred action for Feb 1st.
2. on Jan 15th a CSR realizes he made a mistake and subsequently takes an action which triggers PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER to move service A from BILLINFO_1 to BILLINFO_3 on Feb 1st. This schedules a second deferred action for Feb 1st.
Now you have 2 conflicting deferred actions pending - both scheduled for Feb 1st.

So both action will fire and the system state will be inconsistent afterwards. i.e. on Feb 1st some fees for service A will go to a bill for BF2 and some to a bill for BF3...

Steps to reproduce the issue.

For details about Scenario #1
1. create an account A with 3 BillinFos
2. create 2 services for account A billinfo BF1
3. set PVT = next_bill_t + 2 days
4. run pin_bill_day
5. set PVT += 3 days
6. for service S1 call PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER to move it from BF1 to BF2 at next_bill_t - 1 sec. This schedules SH1 a deferred action is created
7. set PVT += 3 days
8. for service S1 call PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER to move it from BF1 to BF3 at next_bill_t - 1 sec. This schedules SH2 a deferred action is created
9. set PVT = next_bill_t + 2 days
10. run pin_bill_day (this includes pin_deferred_act)

Scenario #2
1. create an account A with 3 BillinFos
2. create 2 services for account A billinfo BF1
3. set PVT = next_bill_t + 2 days
4. run pin_bill_day
5. set PVT += 3 days
6. for service S1 call PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER to move itfrom BF1 to BF2 at next_bill_t - 1 sec
7. for service S2 call PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER to move it from BF1 to BF2 at next_bill_t - 1 sec
8. set PVT += 3 days
9. for service S2 call PCM_OP_SUBSCRIPTION_SERVICE_BALGRP_TRANSFER to move it from BF1 to BF3 at next_bill_t - 1 sec
10. set PVT = next_bill_t + 2 days
11. run pin_bill_day (this includes pin_deferred_act)

Cause

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