Loop anidado ( Es demasiado lento )
De la tabla interna tab_ped3a debo insertar los registros a la tabla interna tab_ped3
Para esto :
1) Hago un read table con tab_ped4 y hago el insert en tab_ped3 (Aqui inserto los pedidos con sus respectivos materiales y respectivo No de factura por material)
2) Hago un loop para que inserte los otros registros (Aqui inserto los pedidos que tuvieron por un material mas de un factura, osea para un material se pidio 20 unidades y 10 se facturaron con la fact A y los otros 10 con las factura B )
SORT tab_ped3a by vbeln matnr posnr paobjnr.
SORT tab_ped4 by aubel matnr aupos paobjnr.
CLEAR : tab_ped3a , tab_ped3, tab_ped4.
Expresion1 = ''.
LOOP AT tab_ped3a.
CONCATENATE tab_ped3a-vbeln tab_ped3a-posnr tab_ped3a-matnr
tab_ped3a-paobjnr tab_ped3a-doc_cial INTO Expresion1.
IF Expresion1 <> Expresion2.
* Punto 1)
READ TABLE tab_ped4 WITH KEY aubel = tab_ped3a-vbeln
aupos = tab_ped3a-posnr
matnr = tab_ped3a-matnr
paobjnr = tab_ped3a-paobjnr.
IF sy-subrc EQ 0.
CONCATENATE tab_ped4-aubel tab_ped4-aupos tab_ped4-matnr
tab_ped4-paobjnr tab_ped4-vbeln INTO Expresion2.
tab_ped3-vbeln = tab_ped3a-vbeln.
tab_ped3-posnr = tab_ped3a-posnr.
tab_ped3-matnr = tab_ped3a-matnr.
tab_ped3-paobjnr = tab_ped3a-paobjnr.
tab_ped3-doc_cial = tab_ped4-vbeln.
INSERT TABLE tab_ped3.
ENDIF.
ENDIF.
CONCATENATE tab_ped3-vbeln tab_ped3-posnr tab_ped3-matnr
tab_ped3-paobjnr tab_ped3-doc_cial INTO Expresion3.
* Punto 2)
LOOP AT tab_ped4 WHERE aubel = tab_ped3-vbeln and
aupos = tab_ped3-posnr and
matnr = tab_ped3-matnr and
paobjnr = tab_ped3-paobjnr.
CONCATENATE tab_ped4-aubel tab_ped4-aupos tab_ped4-matnr
tab_ped4-paobjnr tab_ped4-vbeln INTO Expresion4.
IF Expresion4 <> Expresion3.
tab_ped3-vbeln = tab_ped3a-vbeln.
tab_ped3-posnr = tab_ped3a-posnr.
tab_ped3-matnr = tab_ped3a-matnr.
tab_ped3-paobjnr = tab_ped3a-paobjnr.
tab_ped3-doc_cial = tab_ped4-vbeln.
INSERT TABLE tab_ped3.
ENDIF.
ENDLOOP.
ENDLOOP.
Gracias por la atencion
Gema
COLOMBIA