Invoice Is Failing For Special Characters In Invoice_data Field
(Doc ID 2791772.1)
Last updated on APRIL 03, 2023
Applies to:
Oracle Communications Billing and Revenue Management - Version 7.5.0.22.0 and laterInformation in this document applies to any platform.
Symptoms
While getting data from multiple fulfillment systems and some of data which receive in CDR contains special characters (# < > | / ).
Some of these fields are part of INVOICE_DATA which is stored in /event table. When running invoicing, it is failing in decoding the INVOICE_DATA.
@INTEGRATE##<|2TRX4000261#ADXAIH#ATTR1#90#Advanced Decisioning Attributes#1619741400#OBA-0000861033_AGG52452#1#DEL1#144347521#1619741400#####ADINFO5#ADIN/FO7#ADIN#FO8#ADIN>FO9#ADIN<FO10#ADINFO11#ADINFO12#ADINFO13#40002612001261121######B#SERVOVERIND#PERSONA_IND#EFXID1#1##12345|>
Fields with special characters:
#ADIN/FO7
#ADIN#FO8
#ADIN>FO9
#ADIN<FO10
The issue can be reproduced at will with the following steps:
1)
from sys.data.config
load_pin_invoice_data_map -dv pin_invoice_data_map
this is the OOB config file
2)
build input flist:
0 PIN_FLD_POID POID [0] 0.0.0.1 /event/delayed/session/telco/gsm
1472641893778532383 0
0 PIN_FLD_INVOICE_DATA STR [0]
"@INTEGRATE#004917165210#0049171235292#11#0#USAGE#GSMThing#1#1234#10.0#rateTag#1.000000#4|1 /item 5678 1#6789#20.0#rateTag#1.000000#4>"
3)
run the opcode:
PCM_OP_INV_DECODE_INVOICE_DATA
it returns fine:
0 PIN_FLD_POID POID [0] 0.0.0.1 /event/delayed/session/telco/gsm
1472641893778532383 0
0 PIN_FLD_EXTENDED_INFO SUBSTRUCT [0] allocated 20, used 8
1 PIN_FLD_CALLING_NUMBER STR [0] "004917165210"
1 PIN_FLD_CALLED_NUMBER STR [0] "0049171235292"
1 PIN_FLD_SVC_CODE STR [0] "11"
1 PIN_FLD_NUMBER_OF_UNITS INT [0] 0
1 PIN_FLD_USAGE_CLASS STR [0] "USAGE"
1 PIN_FLD_DNIS STR [0] "GSMThing"
1 PIN_FLD_BAL_IMPACTS ARRAY [0] allocated 20, used 6
2 PIN_FLD_ITEM_OBJ POID [0] 0.0.0.1 /item 3456 1
2 PIN_FLD_RESOURCE_ID INT [0] 1234
2 PIN_FLD_QUANTITY DECIMAL [0] 10
2 PIN_FLD_RATE_TAG STR [0] "rateTag"
2 PIN_FLD_AMOUNT DECIMAL [0] 1
2 PIN_FLD_IMPACT_TYPE ENUM [0] 4
1 PIN_FLD_BAL_IMPACTS ARRAY [1] allocated 20, used 6
2 PIN_FLD_ITEM_OBJ POID [0] 0.0.0.1 /item 5678 1
2 PIN_FLD_RESOURCE_ID INT [0] 6789
2 PIN_FLD_QUANTITY DECIMAL [0] 20
2 PIN_FLD_RATE_TAG STR [0] "rateTag"
2 PIN_FLD_AMOUNT DECIMAL [0] 1
2 PIN_FLD_IMPACT_TYPE ENUM [0] 4
4) now coming to customers requirement, let us modify the field "rateTag"
to test it.
case a)
pass "rate\\/Tag"
expected "rate/Tag"
this works ok
___________________________
0 PIN_FLD_POID POID [0] 0.0.0.1 /event/delayed/session/telco/gsm
1472641893778532383 0
0 PIN_FLD_INVOICE_DATA STR [0]
"@INTEGRATE#004917165210#0049171235292#11#0#USAGE#GSMThing#1#1234#10.0#rate\\/Tag#1.000000#4|1 /item 5678
1#6789#20.0#rateTag#1.000000#4>"
nap(5302)> xop PCM_OP_INV_DECODE_INVOICE_DATA 0 1
xop: opcode 961, flags 0
# number of field entries allocated 20, used 2
0 PIN_FLD_POID POID [0] 0.0.0.1 /event/delayed/session/telco/gsm
1472641893778532383 0
0 PIN_FLD_EXTENDED_INFO SUBSTRUCT [0] allocated 20, used 8
1 PIN_FLD_CALLING_NUMBER STR [0] "004917165210"
1 PIN_FLD_CALLED_NUMBER STR [0] "0049171235292"
1 PIN_FLD_SVC_CODE STR [0] "11"
1 PIN_FLD_NUMBER_OF_UNITS INT [0] 0
1 PIN_FLD_USAGE_CLASS STR [0] "USAGE"
1 PIN_FLD_DNIS STR [0] "GSMThing"
1 PIN_FLD_BAL_IMPACTS ARRAY [0] allocated 20, used 6
2 PIN_FLD_ITEM_OBJ POID [0] 0.0.0.1 /item 3456 1
2 PIN_FLD_RESOURCE_ID INT [0] 1234
2 PIN_FLD_QUANTITY DECIMAL [0] 10
2 PIN_FLD_RATE_TAG STR [0] "rate/Tag" -------------> see here
2 PIN_FLD_AMOUNT DECIMAL [0] 1
2 PIN_FLD_IMPACT_TYPE ENUM [0] 4
1 PIN_FLD_BAL_IMPACTS ARRAY [1] allocated 20, used 6
2 PIN_FLD_ITEM_OBJ POID [0] 0.0.0.1 /item 5678 1
2 PIN_FLD_RESOURCE_ID INT [0] 6789
2 PIN_FLD_QUANTITY DECIMAL [0] 20
2 PIN_FLD_RATE_TAG STR [0] "rateTag"
2 PIN_FLD_AMOUNT DECIMAL [0] 1
2 PIN_FLD_IMPACT_TYPE ENUM [0] 4
nap(5302)>
___________________________
case b)
pass "rate\\#Tag"
expected "rate#Tag"
this works ok
____________________________________
nap(5498)> d 1
# number of field entries allocated 20, used 2
0 PIN_FLD_POID POID [0] 0.0.0.1 /event/delayed/session/telco/gsm
1472641893778532383 0
0 PIN_FLD_INVOICE_DATA STR [0]
"@INTEGRATE#004917165210#0049171235292#11#0#USAGE#GSMThing#1#1234#10.0#rate\\#Tag#1.000000#4|1 /item 5678
1#6789#20.0#rateTag#1.000000#4>"
nap(5498)> xop PCM_OP_INV_DECODE_INVOICE_DATA 0 1
xop: opcode 961, flags 0
# number of field entries allocated 20, used 2
0 PIN_FLD_POID POID [0] 0.0.0.1 /event/delayed/session/telco/gsm
1472641893778532383 0
0 PIN_FLD_EXTENDED_INFO SUBSTRUCT [0] allocated 20, used 8
1 PIN_FLD_CALLING_NUMBER STR [0] "004917165210"
1 PIN_FLD_CALLED_NUMBER STR [0] "0049171235292"
1 PIN_FLD_SVC_CODE STR [0] "11"
1 PIN_FLD_NUMBER_OF_UNITS INT [0] 0
1 PIN_FLD_USAGE_CLASS STR [0] "USAGE"
1 PIN_FLD_DNIS STR [0] "GSMThing"
1 PIN_FLD_BAL_IMPACTS ARRAY [0] allocated 20, used 6
2 PIN_FLD_ITEM_OBJ POID [0] 0.0.0.1 /item 3456 1
2 PIN_FLD_RESOURCE_ID INT [0] 1234
2 PIN_FLD_QUANTITY DECIMAL [0] 10
2 PIN_FLD_RATE_TAG STR [0] "rate#Tag"
2 PIN_FLD_AMOUNT DECIMAL [0] 1
2 PIN_FLD_IMPACT_TYPE ENUM [0] 4
1 PIN_FLD_BAL_IMPACTS ARRAY [1] allocated 20, used 6
2 PIN_FLD_ITEM_OBJ POID [0] 0.0.0.1 /item 5678 1
2 PIN_FLD_RESOURCE_ID INT [0] 6789
2 PIN_FLD_QUANTITY DECIMAL [0] 20
2 PIN_FLD_RATE_TAG STR [0] "rateTag"
2 PIN_FLD_AMOUNT DECIMAL [0] 1
2 PIN_FLD_IMPACT_TYPE ENUM [0] 4
____________________________________
case c)
pass "rate\\<Tag"
expected "rate<Tag"
this fails
_______________
nap(5592)> r PCM_OP_INV_DECODE_INVOICE_DATA 1
nap(5592)> d 1
# number of field entries allocated 20, used 2
0 PIN_FLD_POID POID [0] 0.0.0.1 /event/delayed/session/telco/gsm
1472641893778532383 0
0 PIN_FLD_INVOICE_DATA STR [0]
"@INTEGRATE#004917165210#0049171235292#11#0#USAGE#GSMThing#1#1234#10.0#rate\\<Tag#1.000000#4|1 /item 5678
1#6789#20.0#rateTag#1.000000#4>"
nap(5592)> xop PCM_OP_INV_DECODE_INVOICE_DATA 0 1
xop: opcode 961, flags 0
XOP "961" failed: err 50:PIN_ERR_STREAM_EOF, field 0/0:0,
loc 2:PIN_ERRLOC_PCP, errclass 3:PIN_ERRCLASS_SYSTEM_RETRYABLE,
rec_id 0, resvd 0
nap(5592)>
_______________
case d)
pass "rate\\>Tag"
expected "rate>Tag"
this fails
Cause
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
Symptoms |
Cause |
Solution |
References |