Buenas Tardes:
Tengo un escenario en el cual traigo informacion de las tablas EKKO (Doc de Compra).
El reporte imprimi el listado de documentos de Compra con los items y para cada una, muestra el/los los correspondiente(s) documentos MIRO (si los tiene) con el valor del importe.
Al comienzo estaba excluyendo del reporte todos aquellos documentos de compras que nunca hubieran tenido MIRO. El reporte asi se corriera para todo un año completo, nunca pasaba de los 2 minutos en tiempo de ejecucion.
Pero ahora el usuario quiere que se muestren tambien los documentos de compras que no tienen MIRO, y que en la columna MIRO salga para esos documentos el texto "NO CREADO".
Pude resolver el problema pero ahora el tiempo de ejecucion del reporte para 1 año es de 9 minutos.
Les envio el codigo que tuve que realizar para este nuevo requerimiento. Resalto en ROJO el ajuste que hice para que mostrara los Documentos de compra sin MIRO.
Por favor si saben como podria optimizar eso, o si existe alguna forma mejor de preguntar si el doc de compras EBELN esta en la tabla interna IT_EKBE sin realizar el READ TABLE, se los agradeceria.
Gracias!
Tengo un escenario en el cual traigo informacion de las tablas EKKO (Doc de Compra).
El reporte imprimi el listado de documentos de Compra con los items y para cada una, muestra el/los los correspondiente(s) documentos MIRO (si los tiene) con el valor del importe.
Al comienzo estaba excluyendo del reporte todos aquellos documentos de compras que nunca hubieran tenido MIRO. El reporte asi se corriera para todo un año completo, nunca pasaba de los 2 minutos en tiempo de ejecucion.
Pero ahora el usuario quiere que se muestren tambien los documentos de compras que no tienen MIRO, y que en la columna MIRO salga para esos documentos el texto "NO CREADO".
Pude resolver el problema pero ahora el tiempo de ejecucion del reporte para 1 año es de 9 minutos.
Les envio el codigo que tuve que realizar para este nuevo requerimiento. Resalto en ROJO el ajuste que hice para que mostrara los Documentos de compra sin MIRO.
Por favor si saben como podria optimizar eso, o si existe alguna forma mejor de preguntar si el doc de compras EBELN esta en la tabla interna IT_EKBE sin realizar el READ TABLE, se los agradeceria.
Código:
loop at it_ekko into wa_ekko.
wa_tabcon-ebeln = wa_ekko-ebeln.
wa_tabcon-bsart = wa_ekko-bsart.
wa_tabcon-bedat = wa_ekko-bedat.
wa_tabcon-bukrs = wa_ekko-bukrs.
wa_tabcon-ekorg = wa_ekko-ekorg.
wa_tabcon-ekgrp = wa_ekko-ekgrp.
wa_tabcon-lifnr = wa_ekko-lifnr.
[COLOR="Red"] READ TABLE it_ekbe INTO wa_ekbe2
WITH KEY ebeln = wa_ekko-ebeln.
IF sy-subrc EQ 0.[/COLOR]
loop at it_ekbe into wa_ekbe
where ebeln = wa_ekko-ebeln.
wa_tabcon-belnr = wa_ekbe-belnr.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = wa_ekbe-matnr
importing
output = wa_ekbe-matnr.
wa_tabcon-matnr = wa_ekbe-matnr.
READ TABLE it_rbkp INTO wa_rbkp
WITH KEY belnr = wa_ekbe-belnr.
IF sy-subrc EQ 0.
wa_tabcon-gjahr = wa_rbkp-gjahr.
wa_tabcon-bldat = wa_rbkp-bldat.
wa_tabcon-budat = wa_rbkp-budat.
if wa_ekbe-shkzg EQ 'S'.
wa_tabcon-rmwwr = wa_ekbe-dmbtr * 100.
ELSEIF wa_ekbe-shkzg EQ 'H'.
wa_tabcon-rmwwr = wa_ekbe-dmbtr * -100.
endif.
ENDIF.
APPEND wa_tabcon TO it_tabcon.
CLEAR wa_ekbe.
CLEAR wa_rbkp.
ENDLOOP.
[COLOR="Red"]ELSE.
wa_tabcon-belnr = 'NO CREADO'.
wa_tabcon-matnr = ''.
wa_tabcon-gjahr = ''.
wa_tabcon-bldat = ''.
wa_tabcon-budat = ''.
wa_tabcon-rmwwr = 0.
APPEND wa_tabcon TO it_tabcon.
CLEAR wa_ekbe.
CLEAR wa_rbkp.[/COLOR]
ENDIF.
CLEAR wa_ekko.
CLEAR wa_ekbe.
CLEAR wa_rbkp.
CLEAR wa_lfa1.
CLEAR wa_ekbe2.
ENDLOOP.
Gracias!

Comentario