¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Problema al obtener datos de itab_likp y jtab_lips - Guía para solucionar discrepancia de datos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 Vistas
0
Cargando...

¡Hola a todos!

Aquí estoy enviando también el código. En eso obtengo datos para itab_likp. No estoy obteniendo datos para jtab_lips.

Ejecuto ambas tablas con el valor vbeln, los datos están allí, entonces ¿por qué no estoy obteniendo datos?

Por favor, guíame.

TYPE-POOLS: SLIS.

TABLES: LIKP, LIPS.

DATA: BEGIN OF ITAB_LIKP OCCURS 0,

BLDAT LIKE LIKP-BLDAT,

VBELN LIKE LIKP-VBELN,

BTGEW LIKE LIKP-BTGEW,

END OF ITAB_LIKP.

DATA: BEGIN OF JTAB_LIPS OCCURS 0,

VBELN LIKE LIKP-VBELN,

MATNR LIKE LIPS-MATNR,

ARKTX LIKE LIPS-ARKTX,

VRKME LIKE LIPS-VRKME,

END OF JTAB_LIPS.

selection-screen begin of block b with frame title t1.

select-options: date_pos for LIKP-BLDAT.

SKIP 2.

select-options: DCN for LIKP-VBELN.

SELECTION-SCREEN END OF BLOCK B.

INITIALIZATION.

T1 = 'DELIVERY CHALLAN'.

start-of-selection.

SELECT BLDAT VBELN BTGEW FROM LIKP INTO CORRESPONDING FIELDS OF TABLE ITAB_LIKP

WHERE BLDAT IN DATE_POS AND VBELN IN DCN.

SELECT MATNR ARKTX VRKME FROM LIPS INTO CORRESPONDING FIELDS OF TABLE JTAB_LIPS

FOR ALL ENTRIES IN ITAB_LIKP

WHERE VBELN = ITAB_LIKP-VBELN.

Saludos:

Manoj

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Manoj,

En la tabla jtab_lips has declarado 4 campos en la estructura de la tabla interna. Estás leyendo solo 3 campos de la instrucción select.

Siempre que uses la instrucción for all entries, verifica si itab_likp está inicializado o no.

De lo contrario, obtendrás valores desconocidos y el rendimiento será muy lento.

Revisa tu código una vez y modifícalo completamente. Tu código afecta negativamente la base de datos.

Saludos,

Santosh Kumar Mukka.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Pon un punto de interrupción en la segunda consulta SELECT y verifica si IT_LIKP tiene algún valor para VBELN o no.

Tu código debería ser así.

start-of-selection.

SELECT BLDAT VBELN BTGEW FROM LIKP INTO CORRESPONDING FIELDS OF TABLE ITAB_LIKP

WHERE BLDAT IN DATE_POS AND VBELN IN DCN.

IF IT_LIKP IS NOT INITIAL.

SELECT MATNR ARKTX VRKME FROM LIPS INTO CORRESPONDING FIELDS OF TABLE JTAB_LIPS

FOR ALL ENTRIES IN ITAB_LIKP

WHERE VBELN = ITAB_LIKP-VBELN.

ENDIF.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Tu código funciona bien.

Puede ser un problema con tus datos,

Verifica si las tablas tienen ese valor de pantalla de selección en particular.

Como se mencionó en la respuesta anterior, verifica la condición NOT initial y agrega VBELN en la segunda consulta select.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Si likp no es inicial.

-


solo entonces buscar el registro de los labios.

fin.

Siempre que estemos usando For All Entries,

recuerda verificar si la tabla anterior está vacía o no.

Solo intenta hacer esto.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?