domingo, 2 de noviembre de 2014

PCM_OP_SEARCH obtener campos de mas de una clase

Muchas veces cuando hacemos un search (ya sea con PCM_OP_SEARCH o PCM_OP_STEP_SEARCH) en la base de datos necesitamos obtener campos de mas de una clase, para ello utilizaremos el PIN_FLD_LINKED_OBJ (es un array) dentro del input flist.

Supongamos que dado un número de cuenta queremos obtener los productos de dicha cuenta, el status del purchased, el nombre del deal, el numero de cuenta, el login y status del servicio de esos productos. Con esto estaríamos trayendo datos de 5 clases (/account, /deal, /service, /purchased_product y /product), con eso alcanza como ejemplo.

En SQL sería así:
select distinct a.ACCOUNT_NO, s.LOGIN, p.NAME, pp.STATUS, d.name 
select distinct a.ACCOUNT_NO, s.LOGIN, s.STATUS service_status,p.NAME product_name, pp.STATUS product_status, d.name deal_name
from account_t a, service_t s, PURCHASED_PRODUCT_T pp, product_t p, deal_t d where
a.ACCOUNT_NO = '18264148' and 
a.POID_ID0 = pp.ACCOUNT_OBJ_ID0 and 
s.POID_ID0 = pp.SERVICE_OBJ_ID0 and 
pp.PRODUCT_OBJ_ID0 = p.POID_ID0 and
pp.DEAL_OBJ_ID0 = d.POID_ID0;

Y el resultado sería este:

Antes de poner el flist equivalente al query de SQL voy a explicar un poco como armarlo (solo la parte del PIN_FLD_LINKED_OBJ, el resto doy por supuesto que ya se sabe).

El PIN_FLD_LINKED_OBJ va dentro del PIN_FLD_RESULTS y va uno por cada clase de la que se quiere obtener datos (no se toma en cuenta la clase que esta en 1er lugar, esos se ponen como se hace siempre), el índice del array de cada PIN_FLD_LINKED_OBJ debe ser el mismo que tiene la clase dentro del template.

Ya dentro del PIN_FLD_LINKED_OBJ se debe poner el campo de la clase a la que corresponde el PIN_FLD_LINKED_OBJ que la relaciona con la clase 1 del template. La relación entre ambas clases debe ser el PIN_FLD_POID de una de esas clases con cualquier campo del tipo POID de la otra clase. Una vez que se tiene el campo que relaciona ambas clases se procede a poner el PIN_FLD_LINK_DIRECTION que indica la clase que tiene el PIN_FLD_POID.

Si la 1er clase que contiene el PIN_FLD_POID entonces el valor del PIN_FLD_LINK_DIRECTION debe ser 1 (DM_LINK_OBJ_RIGHT_TO_LEFT).

Si la 1er clase es la que hace referencia al PIN_FLD_POID de la otra clase entonces el el valor del PIN_FLD_LINK_DIRECTION debe ser -1 (DM_LINK_OBJ_LEFT_TO_RIGHT).

Una vez seteada la relación entre las clases se procede a indicar los campos que se quieren obtener de las clases secundarias, para esto se debe agregar el array PIN_FLD_EXTRA_RESULTS y dentro de PIN_FLD_LINKED_OBJ (esto se hace como si el PIN_FLD_EXTRA_RESULTS fuese el PIN_FLD_RESULTS).

Listo, ahora pasemos a construir el flist equivalente al SQL para ser utilizado como entrada del PCM_OP_SEARCH/PCM_OP_STEP_SEARCH

Input flist:
0 PIN_FLD_POID                      POID [0] 0.0.0.1 /search -1 0
0 PIN_FLD_FLAGS                      INT [0] 768
0 PIN_FLD_TEMPLATE                   STR [0] "select X from /purchased_product 1, /account 2, /deal 3, /service 4, /product 5 where 2.F1 = V1 and 1.F2.id = 2.F3.id and 1.F4.id = 3.F5.id and 1.F6.id = 4.F7.id and 1.F8.id = 5.F9.id "
0 PIN_FLD_RESULTS                  ARRAY [*] allocated 2, used 2
1     PIN_FLD_STATUS                ENUM [0] 0
1     PIN_FLD_LINKED_OBJ           ARRAY [2] allocated 3, used 3
2         PIN_FLD_ACCOUNT_OBJ       POID [0] NULL
2         PIN_FLD_LINK_DIRECTION    ENUM [0] -1
2         PIN_FLD_EXTRA_RESULTS    ARRAY [*] allocated 1, used 1
3             PIN_FLD_ACCOUNT_NO     STR [0] ""
1     PIN_FLD_LINKED_OBJ           ARRAY [3] allocated 3, used 3
2         PIN_FLD_DEAL_OBJ          POID [0] NULL
2         PIN_FLD_LINK_DIRECTION    ENUM [0] -1
2         PIN_FLD_EXTRA_RESULTS    ARRAY [*] allocated 1, used 1
3             PIN_FLD_NAME           STR [0] ""
1     PIN_FLD_LINKED_OBJ           ARRAY [4] allocated 3, used 3
2         PIN_FLD_LINK_DIRECTION    ENUM [0] -1
2         PIN_FLD_SERVICE_OBJ       POID [0] NULL
2         PIN_FLD_EXTRA_RESULTS    ARRAY [*] allocated 2, used 2
3             PIN_FLD_LOGIN          STR [0] ""
3             PIN_FLD_STATUS        ENUM [0] 0
1     PIN_FLD_LINKED_OBJ           ARRAY [5] allocated 3, used 3
2         PIN_FLD_LINK_DIRECTION    ENUM [0] -1
2         PIN_FLD_PRODUCT_OBJ       POID [0] NULL
2         PIN_FLD_EXTRA_RESULTS    ARRAY [*] allocated 1, used 1
3             PIN_FLD_NAME           STR [0] ""
0 PIN_FLD_ARGS                     ARRAY [1] allocated 1, used 1
1     PIN_FLD_ACCOUNT_NO             STR [0] "18264148"
0 PIN_FLD_ARGS                     ARRAY [2] allocated 1, used 1
1     PIN_FLD_ACCOUNT_OBJ           POID [0] NULL
0 PIN_FLD_ARGS                     ARRAY [3] allocated 1, used 1
1     PIN_FLD_POID                  POID [0] NULL
0 PIN_FLD_ARGS                     ARRAY [4] allocated 1, used 1
1     PIN_FLD_DEAL_OBJ              POID [0] NULL
0 PIN_FLD_ARGS                     ARRAY [5] allocated 1, used 1
1     PIN_FLD_POID                  POID [0] NULL
0 PIN_FLD_ARGS                     ARRAY [6] allocated 1, used 1
1     PIN_FLD_SERVICE_OBJ           POID [0] NULL
0 PIN_FLD_ARGS                     ARRAY [7] allocated 1, used 1
1     PIN_FLD_POID                  POID [0] NULL
0 PIN_FLD_ARGS                     ARRAY [8] allocated 1, used 1
1     PIN_FLD_PRODUCT_OBJ           POID [0] NULL
0 PIN_FLD_ARGS                     ARRAY [9] allocated 1, used 1
1     PIN_FLD_POID                  POID [0] NULL

Output flist:
0 PIN_FLD_POID                      POID [0] 0.0.0.1 /search -1 0
0 PIN_FLD_RESULTS                  ARRAY [0] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196730105 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 12237 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/email 7811841839 55
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 9081 6
0 PIN_FLD_RESULTS                  ARRAY [5] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196737532 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 6396719648 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/video 7811919479 72
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 6396721184 6
0 PIN_FLD_RESULTS                  ARRAY [9] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196731306 30
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 4780947978 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/video 7811919479 72
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 9209 119
0 PIN_FLD_RESULTS                  ARRAY [12] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196728063 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 3521325643 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/ip/cable/device 7811908673 49
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 3521324171 30
0 PIN_FLD_RESULTS                  ARRAY [16] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196731105 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 3253060078 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/video 7811919479 72
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 3253062062 15
0 PIN_FLD_RESULTS                  ARRAY [19] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196729379 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 4780946930 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/ip/cable 7811937635 51
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 4780947858 12
0 PIN_FLD_RESULTS                  ARRAY [23] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196738044 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 6396719648 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/video 7811919479 72
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 6396721088 3
0 PIN_FLD_RESULTS                  ARRAY [25] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196731818 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 4780947978 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/video 7811919479 72
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 4780947506 2
0 PIN_FLD_RESULTS                  ARRAY [27] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /purchased_product 9196737157 31
1     PIN_FLD_STATUS                ENUM [0] 2
1     PIN_FLD_LINKED_OBJS          ARRAY [2] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_LINKED_OBJS          ARRAY [3] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /deal 3521325387 0
1     PIN_FLD_LINKED_OBJS          ARRAY [4] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /service/video/device 7811967056 49
1     PIN_FLD_LINKED_OBJS          ARRAY [5] allocated 1, used 1
2         PIN_FLD_LINKED_OBJ       ARRAY [0] allocated 1, used 1
3             PIN_FLD_POID          POID [0] 0.0.0.1 /product 3521324939 9
0 PIN_FLD_EXTRA_RESULTS            ARRAY [1] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /account 7811872062 103
1     PIN_FLD_ACCOUNT_NO             STR [0] "18264148"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [2] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /deal 12237 0
1     PIN_FLD_NAME                   STR [0] "Cuenta de Email"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [3] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /service/email 7811841839 55
1     PIN_FLD_LOGIN                  STR [0] "1-1NMJBVU"
1     PIN_FLD_STATUS                ENUM [0] 10102
0 PIN_FLD_EXTRA_RESULTS            ARRAY [4] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 9081 6
1     PIN_FLD_NAME                   STR [0] "Cuenta de Email"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [6] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /deal 6396719648 0
1     PIN_FLD_NAME                   STR [0] "SVOD Lite"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [7] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /service/video 7811919479 72
1     PIN_FLD_LOGIN                  STR [0] "1-1NMJBVQ"
1     PIN_FLD_STATUS                ENUM [0] 10102
0 PIN_FLD_EXTRA_RESULTS            ARRAY [8] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 6396721184 6
1     PIN_FLD_NAME                   STR [0] "SVOD Lite VOD"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [10] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /deal 4780947978 0
1     PIN_FLD_NAME                   STR [0] "Familiar Modificado HD"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [11] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 9209 119
1     PIN_FLD_NAME                   STR [0] "PPV"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [13] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /deal 3521325643 0
1     PIN_FLD_NAME                   STR [0] "Renta Equipo Internet"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [14] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /service/ip/cable/device 7811908673 49
1     PIN_FLD_LOGIN                  STR [0] "1-1NMJBVV"
1     PIN_FLD_STATUS                ENUM [0] 10102
0 PIN_FLD_EXTRA_RESULTS            ARRAY [15] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 3521324171 30
1     PIN_FLD_NAME                   STR [0] "Renta Equipo Internet"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [17] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /deal 3253060078 0
1     PIN_FLD_NAME                   STR [0] "HD Pack mensual"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [18] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 3253062062 15
1     PIN_FLD_NAME                   STR [0] "HD Pack mensual"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [20] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /deal 4780946930 0
1     PIN_FLD_NAME                   STR [0] "Internet de Alta Velocidad Primus"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [21] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /service/ip/cable 7811937635 51
1     PIN_FLD_LOGIN                  STR [0] "1-1NMJBVV"
1     PIN_FLD_STATUS                ENUM [0] 10102
0 PIN_FLD_EXTRA_RESULTS            ARRAY [22] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 4780947858 12
1     PIN_FLD_NAME                   STR [0] "Internet de Alta Velocidad Primus"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [24] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 6396721088 3
1     PIN_FLD_NAME                   STR [0] "SVOD Lite"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [26] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 4780947506 2
1     PIN_FLD_NAME                   STR [0] "Familiar Modificado HD"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [28] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /deal 3521325387 0
1     PIN_FLD_NAME                   STR [0] "Renta Equipo Video"
0 PIN_FLD_EXTRA_RESULTS            ARRAY [29] allocated 3, used 3
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /service/video/device 7811967056 49
1     PIN_FLD_LOGIN                  STR [0] "1-1NMJBVQ"
1     PIN_FLD_STATUS                ENUM [0] 10102
0 PIN_FLD_EXTRA_RESULTS            ARRAY [30] allocated 2, used 2
1     PIN_FLD_POID                  POID [0] 0.0.0.1 /product 3521324939 9
1     PIN_FLD_NAME                   STR [0] "Renta Equipo Video"

Si vemos el query que arma BRM (ver este post) con el input flist utilizado no da:
SQL_STMT do_sql_mr_select: cmd=select  distinct  purchased_product_t.status, purchased_product_t.poid_DB, purchased_product_t.poid_ID0, 
purchased_product_t.poid_TYPE, purchased_product_t.poid_REV, account_t.account_no, account_t.poid_DB, account_t.poid_ID0, account_t.poid_TYPE, 
account_t.poid_REV, deal_t.name, deal_t.poid_DB, deal_t.poid_ID0, deal_t.poid_TYPE, deal_t.poid_REV, service_t.login, service_t.status, 
service_t.poid_DB, service_t.poid_ID0, service_t.poid_TYPE, service_t.poid_REV, product_t.name, product_t.poid_DB, product_t.poid_ID0, 
product_t.poid_TYPE, product_t.poid_REV from purchased_product_t ,account_t ,deal_t ,service_t ,product_t   where account_t.account_no = :1 and 
purchased_product_t.account_obj_ID0 = account_t.poid_ID0 and purchased_product_t.deal_obj_ID0 = deal_t.poid_ID0 and 
purchased_product_t.service_obj_ID0 = service_t.poid_ID0 and purchased_product_t.product_obj_ID0 = product_t.poid_ID0 and 
purchased_product_t.account_obj_ID0 = account_t.poid_ID0  and purchased_product_t.deal_obj_ID0 = deal_t.poid_ID0  and 
purchased_product_t.service_obj_ID0 = service_t.poid_ID0  and purchased_product_t.product_obj_ID0 = product_t.poid_ID0

Martín Falconi

3 comentarios: