Alias Uniqueness Not Validated (Doc ID 862396.1)

Last updated on JULY 18, 2017

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.3.1.0.0 and later
Information in this document applies to any platform.
This problem can occur on any platform.

***Checked for relevance on 24-Dec-2012***

Symptoms

PCM_OP_CUST_MODIFY_CUSTOMER did not validate the uniqueness of alias names.

 Steps To Reproduce:
==============
1.- Using testnap to create an account by calling the PCM_OP_CUST_COMMIT_CUSTOMER
2.- Create a service with an alias for this account by calling the PCM_OP_CUST_MODIFY_CUSTOMER opcode.
     This will create a service with the alias 9876543210.

     This is the input flist for PCM_OP_CUST_COMMIT_CUSTOMER:

0 PIN_FLD_POID POID [0] 0.0.0.1 /plan -1 0
0 PIN_FLD_BILLINFO ARRAY [0] allocated 20, used 6
1     PIN_FLD_POID POID [0] 0.0.0.1 /billinfo -1 0
1     PIN_FLD_BILLINFO_ID STR [0] "37323137393534353338393334111111"
1     PIN_FLD_PAYINFO ARRAY [0] NULL array ptr
1     PIN_FLD_PAY_TYPE ENUM [0] 10003
1     PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1     PIN_FLD_CURRENCY INT [0] 634
0 PIN_FLD_ACCTINFO ARRAY [0] allocated 20, used 5
1     PIN_FLD_ACCOUNT_NO STR [0] "35383931353935373435383530111111"
1     PIN_FLD_POID POID [0] 0.0.0.1 /account -1 0
1     PIN_FLD_BAL_INFO ARRAY [0] NULL array ptr
1     PIN_FLD_CURRENCY INT [0] 634
1     PIN_FLD_BUSINESS_TYPE ENUM [0] 1
0 PIN_FLD_PAYINFO ARRAY [0] allocated 20, used 5
1     PIN_FLD_NAME STR [0] "Invoice1"
1     PIN_FLD_POID POID [0] 0.0.0.1 /payinfo/invoice -1 0
1     PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 20, used 1
2         PIN_FLD_INV_INFO ARRAY [0] allocated 20, used 10
3             PIN_FLD_DELIVERY_PREFER ENUM [0] 1
3             PIN_FLD_NAME STR [0] "invoicee1 invoicee1"
3             PIN_FLD_INV_TERMS ENUM [0] 0
3             PIN_FLD_DELIVERY_DESCR STR [0] ""
3             PIN_FLD_EMAIL_ADDR STR [0] ""
3             PIN_FLD_COUNTRY STR [0] "Spain"
3             PIN_FLD_ZIP STR [0] "87456"
3             PIN_FLD_STATE STR [0] ""
3             PIN_FLD_CITY STR [0] "invoicee1 city"
3             PIN_FLD_ADDRESS STR [0] "invoicee1 address"
1     PIN_FLD_FLAGS INT [0] 1
1     PIN_FLD_PAY_TYPE ENUM [0] 10001
0 PIN_FLD_NAMEINFO ARRAY [1] allocated 20, used 10
1     PIN_FLD_LAST_NAME STR [0] "test_dup_alias_1"
1     PIN_FLD_FIRST_NAME STR [0] "test_dup_alias_1"
1     PIN_FLD_SALUTATION STR [0] "Mr."
1     PIN_FLD_PHONES ARRAY [0] allocated 20, used 2
2         PIN_FLD_PHONE STR [0] "+40728352123"
2         PIN_FLD_TYPE ENUM [0] 1
1     PIN_FLD_EMAIL_ADDR STR [0] "test_dup_alias_1@test_dup_alias_1.es"
1     PIN_FLD_COUNTRY STR [0] "Spain"
1     PIN_FLD_ZIP STR [0] "16044"
1     PIN_FLD_STATE STR [0] ""
1     PIN_FLD_CITY STR [0] "Barcelona"
1     PIN_FLD_ADDRESS STR [0] "N/A N/A"
0 PIN_FLD_FLAGS INT [0] 0
0 PIN_FLD_BAL_INFO ARRAY [0] allocated 20, used 3
1     PIN_FLD_NAME STR [0] "Account Level Balance Group"
1     PIN_FLD_POID POID [0] 0.0.0.1 /balance_group -1 0
1     PIN_FLD_BILLINFO ARRAY [0] NULL array ptr

3.- Run again the PCM_OP_CUST_MODIFY_CUSTOMER with the same input flist
     This creates another service for the account with the same alias so the alias becomes duplicated.

     This is the input flist for the PCM_OP_CUST_MODIFY_CUSTOMER opcode (change poids appropriately):

0 PIN_FLD_POID POID [0] 0.0.0.1 /plan -1 0
0 PIN_FLD_ACCOUNT_OBJ POID [0] 0.0.0.1 /account 2347522 0
0 PIN_FLD_SERVICES ARRAY [0] allocated 20, used 6
1     PIN_FLD_SERVICE_OBJ POID [0] 0.0.0.1 /service/telco/gsm/telephony -1 0
1     PIN_FLD_BAL_GRP_OBJ POID [0] 0.0.0.1 /balance_group 2348290 0
1     PIN_FLD_LOGIN STR [0] "0018000666122-telephony"
1     PIN_FLD_DEAL_INFO SUBSTRUCT [0] allocated 20, used 5
2         PIN_FLD_PRODUCTS ARRAY [0] allocated 20, used 7
3             PIN_FLD_STATUS_FLAGS INT [0] 16777216
3             PIN_FLD_PURCHASE_FEE_AMT DECIMAL [0] 60000
3             PIN_FLD_PURCHASE_END_T TSTAMP [0] (0) <null>
3             PIN_FLD_QUANTITY DECIMAL [0] 1
3             PIN_FLD_PURCHASE_START_T TSTAMP [0] (0) <null>
3             PIN_FLD_STATUS ENUM [0] 1
3             PIN_FLD_PRODUCT_OBJ POID [0] 0.0.0.1 /product 46525 0
2         PIN_FLD_NAME STR [0] ""
2         PIN_FLD_POID POID [0] 0.0.0.1 /deal -1 0
2         PIN_FLD_END_T TSTAMP [0] (0) <null>
2         PIN_FLD_START_T TSTAMP [0] (0) <null>
1     PIN_FLD_ALIAS_LIST ARRAY [1] allocated 20, used 1
2         PIN_FLD_NAME STR [0] "9876543210"
0 PIN_FLD_BAL_INFO ARRAY [0] allocated 20, used 2
1     PIN_FLD_BILLINFO_OBJ POID [0] 0.0.0.1 /billinfo 2350594 0
1     PIN_FLD_POID POID [0] 0.0.0.1 /balance_group 2348290 0

Expected result:
PCM_OP_CUST_MODIFY_CUSTOMER should validate the uniqueness of alias names.

PCM_OP_CUST_POL_PREP/VALID_LOGIN was not forcing uniqueness at the alias level, it did for the login. Considering the login and alias are used for lookups for a specific service, they should be treated the same. The telco framework expects alias 0 & 1 to be the IMSI and MSISDN. IMSI and MSISDN for the same service type need to be unique. The login and alias entries are used to look up account info in the Batch Rating Engine. Both values are also inserted into the uniqueness_t for multi-db support.

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