PCM_OP_SEARCH is Not Returning All the Results for Two Levels of ARRAY in a Class (Doc ID 1541404.1)

Last updated on JUNE 07, 2016

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.5.0.0.0 to 7.5.0.0.0 [Release 7.5.0]
Information in this document applies to any platform.
Checked for relevance on 7-Jun-2016.

Symptoms

PCM_OP_SEARCH was not returning all the search results. If there were 2-level of ARRAYs in a class, the PCM_OP_SEARCH was not returning them all.

Steps to reproduce:

1)  Create a class in Developer Center: /test3
2)  Add any OOB array say PIN_FLD_NAMEINFO to the /test3
3)  Add a string to the 1-level array PIN_FLD_NAMEINFO Namely PIN_FLD_NAME
4)  Add 2 more arrays to PIN_FLD_NAMEINFO namely PIN_FLD_NUMBERS and PIN_FLD_PHONES
5)  Add string to PIN_FLD_NUMBERS and PIN_FLD_PHONES array.
6)  Commit the class.
7)  Create an object of the class. Pass the below input flist :

PIN_FLD_CREATE_OBJ
0 PIN_FLD_POID           POID [0] 0.0.0.1 /test3 -1 0
0 PIN_FLD_NAMEINFO      ARRAY [0] allocated 20, used 5
1     PIN_FLD_NAME            STR [0] ""
1     PIN_FLD_NUMBERS       ARRAY [0] allocated 20, used 1
2         PIN_FLD_NUMBER           STR [0] "123"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_NUMBERS       ARRAY [1] allocated 20, used 1
2         PIN_FLD_NUMBER           STR [0] "456"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_NUMBERS       ARRAY [2] allocated 20, used 1
2         PIN_FLD_NUMBER           STR [0] "789"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_PHONES        ARRAY [0] allocated 20, used 1
2         PIN_FLD_PHONE           STR [0] "t"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_PHONES        ARRAY [1] allocated 20, used 1
2         PIN_FLD_PHONE           STR [0] "r"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_PHONES        ARRAY [2] allocated 20, used 1
2         PIN_FLD_PHONE           STR [0] "p"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_ORDERS        ARRAY [0] allocated 20, used 2
2     PIN_FLD_ORDER_ID            STR [0] "123456"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_ORDERS        ARRAY [1] allocated 20, used 2
2     PIN_FLD_ORDER_ID            STR [0] "3456789"
2         PIN_FLD_TYPE           ENUM [0] 0
1     PIN_FLD_ORDERS        ARRAY [2] allocated 20, used 2
2     PIN_FLD_ORDER_ID            STR [0] "789012"
2         PIN_FLD_TYPE           ENUM [0] 0


8)  Then execute PIN_FLD_SEARCH with input flist:

0 PIN_FLD_POID           POID [0] 0.0.0.1 /search -1 0
0 PIN_FLD_FLAGS           INT [0] 512
0 PIN_FLD_TEMPLATE        STR [0] "select X from /test3 where F1 = V1"
0 PIN_FLD_RESULTS       ARRAY [*] allocated 20, used 1
1     PIN_FLD_NAMEINFO      ARRAY [*] allocated 20, used 3
2         PIN_FLD_NAME            STR [0] NULL str ptr
2         PIN_FLD_PHONES        ARRAY [*]     NULL array ptr
2         PIN_FLD_NUMBERS       ARRAY [*]     NULL array ptr
2         PIN_FLD_ORDERS        ARRAY [*]     NULL array ptr
0 PIN_FLD_ARGS          ARRAY [1] allocated 20, used 1
1     PIN_FLD_POID           POID [0] 0.0.0.1 /test3 341137 0

 
The actual output flist only returned the incomplete 2-level array mentioned in the PIN_FLD_RESULTS:

0 PIN_FLD_POID           POID [0] 0.0.0.1 /search -1 0
0 PIN_FLD_RESULTS       ARRAY [0] allocated 20, used 2
1     PIN_FLD_POID           POID [0] 0.0.0.1 /test3 341137 0
1     PIN_FLD_NAMEINFO      ARRAY [0] allocated 20, used 10
2         PIN_FLD_NAME            STR [0] ""
2         PIN_FLD_PHONES        ARRAY [0] allocated 20, used 2
3             PIN_FLD_PHONE           STR [0] "t"
3             PIN_FLD_TYPE           ENUM [0] 0
2         PIN_FLD_PHONES        ARRAY [1] allocated 20, used 2
3             PIN_FLD_PHONE           STR [0] "r"
3             PIN_FLD_TYPE           ENUM [0] 0

 

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