#1
|
|||
|
|||
LOOP AT... WHERE campo IN ITAB???? se puede?
Hola, hoy no es mi día...
Tengo una tabla interna y quiero recorrerla pero solo si está en otra. yo juraría que era así: TYPES: BEGIN OF gt_matid, matid TYPE /sapapo/matkey-matid, END OF gt_matid. DATA: git_matid TYPE TABLE OF gt_matid WITH HEADER LINE. * DATA: git_matid TYPE STANDARD TABLE OF gt_matid. SELECT lwh~matid INTO TABLE git_matid FROM /sapapo/matlwh AS lwh FOR ALL ENTRIES IN git_lwh WHERE matid = git_lwh-matid * INNER JOIN marc AS mc * ON ma~matnr = mc~matnr . LOOP AT git_listmat WHERE matid IN git_matid. ENDLOOP. pero me da ERROR. Me dice que "git_matid, no tiene estructura de una tabla de selección". ¿¿que es que no se puede y me he liedo yo son un selection-option?? gracias. |
#2
|
|||
|
|||
Probá declarando a la tabla git_matid de la siguiente manera: DATA git_matid TYPE RANGE OF /sapapo/matkey-matid WITH HEADER LINE. |
#3
|
|||
|
|||
Crea un rango con la tabla git_listmat, la recorres en un loop y llenas el campo low del rango con el dato que necesitas comparar, luego podrás utilizar el rango para tu condición.
Saludos. |
#4
|
|||
|
|||
Así es vanesamacri y rubendaga!! Muchas gracias!!
Este es mi código resultante por si a alguien más le sirve: ***Faltaría comprobaciones y control de errores. TYPES: BEGIN OF gt_matid, matid TYPE /sapapo/matkey-matid, END OF gt_matid. DATA: git_matid TYPE TABLE OF gt_matid WITH HEADER LINE. *Declaracio rango *[====================================== DATA: rang_matid TYPE RANGE OF gt_matid WITH HEADER LINE. *======================================] *inicializar rangos con tabla interna *[===================================== SELECT lwh~matid INTO TABLE git_matid FROM /sapapo/matlwh AS lwh FOR ALL ENTRIES IN git_lwh WHERE matid = git_lwh-matid * INNER JOIN marc AS mc * ON ma~matnr = mc~matnr . SORT git_matid BY matid. * IF git_matid IS NOT INITIAL. LOOP AT git_matid. CLEAR: rang_matid. rang_matid-sign = 'I'. rang_matid-option = 'EQ'. rang_matid-low = git_matid-matid. APPEND rang_matid. ENDLOOP. * ENDIF. *=======================================] DATA l_tabix_lismat TYPE i. *utilización *[===================================== LOOP AT git_listmat WHERE matid IN rang_matid. l_tabix_lismat = sy-tabix. READ TABLE git_lwh WITH KEY matid = git_listmat-matid. git_listmat-scuguid = git_lwh-scuguid. git_listmat-ptdetind = git_lwh-ptdetind. git_listmat-put_stra = git_lwh-put_stra. git_listmat-rem_stra = git_lwh-rem_stra. MODIFY git_listmat INDEX l_tabix_lismat. ENDLOOP. *=======================================] |
Herramientas | Buscar en Tema |
Desplegado | |
|
|