Upgrade Script Populated Wrong Balance_group In Upgrade_mbi.Sql And Led To Subscription Transfer Failure (Doc ID 1227414.1)

Last updated on SEPTEMBER 26, 2016

Applies to:

Oracle Communications Billing and Revenue Management - Version 6.7.0.0.1 to 7.5.0.0.0 [Release 6.7.0 to 7.5.0]
Information in this document applies to any platform.

Symptoms

It seems there is an upgrade script bug. The problem is found while testing subscription transfer after upgrade scripts were run.

Tried to move a service from one account to another using this flist for opcode PCM_OP_SUBSCRIPTION_TRANSFER_SUBSCRIPTION

0 PIN_FLD_POID POID [0] 0.0.0.1 /service/telco/ip/telephony 499634 10
0 PIN_FLD_FROM_OBJ POID [0] 0.0.0.1 /account 499506 9
0 PIN_FLD_TO_OBJ POID [0] 0.0.0.1 /account 634877 19
0 PIN_FLD_BILLINFO_OBJ POID [0] 0.0.0.1 /billinfo 631811 0
0 PIN_FLD_PROGRAM_NAME STR [0] "cm"


Got this message from BRM:

E Fri Jul 30 18:50:22 2010 dhpx00 cm:29704 fm_subscription_transfer_subscription.cpp:2592 1:dhpx00:testnap:29701:1:3763:1280526611:1
    Subscription/Member service's Balance Group should not be the default Balance Group of the From Account's BillInfo
E Fri Jul 30 18:50:22 2010 dhpx00 cm:29704 fm_subscription_transfer_subscription.cpp:2665 1:dhpx00:testnap:29701:1:3763:1280526611:1
    fm_subs_transfer_subscription_validate_transfererror
    <location=PIN_ERRLOC_FLIST:6 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1 errno=PIN_ERR_NONE:0>
    <field num=PIN_FLD_ERR_BUF:13,1 recid=0 reserved=0 reserved2=0 time(sec:usec)=0:0>
    <facility=0 msg_id=0 version=0>


This operation was allowed in 7.2.1 without any problem, now with in BRM 7.4 it gives this error.
Upgrade path: 7.2.1 -> 7.3 -> 7.4

Upon reviewing 7.3 upgrade script, the user found upgrade_mbi.sql updates the billinfo_t table. It looks like the script gets all the records from the bal_grp_t and cycles the result to get a specific record; however it seems there is a bug in the way the script loops to get the record because it stops on a record that doesn't have the right info.

The user slightly changed the script to process only 3 different scenarios, and trapped the output to show what information is retrieved from bal_grp_t, how the script is looping, and what record is finally chosen to update the billinfo_t table.

For example,
current billinfo poid_id0 = 190548
walk loop values = 0 Balance Group<Account> 1 189012 /balance_group 21
walk loop values = 1 Balance Group (3) 1 188677 /balance_group 39
walk loop values = 2 Balance Group (1) 1 189957 /balance_group 0
Assigned for update = 190548 1 189957 /balance_group 0

current billinfo poid_id0 = 253346
walk loop values = 0 Balance Group<Account> 1 251810 /balance_group 1
Assigned for update = 253346 1 251810 /balance_group 1

current billinfo poid_id0 = 446847
walk loop values = 0 Balance Group<Account> 1 449919 /balance_group 3
walk loop values = 1 Balance Group (1) 1 452583 /balance_group 2
Assigned for update = 446847 1 452583 /balance_group 2

The user believes the data (balance_group) is populated incorrectly due to this problem and that led to the subscription transfer failure.

Changes

Upgraded from 6.7/7.2.1 to 7.4/7.5 (through 7.3)

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