Ayuda SAP

DTP Packet Size, afecta la lógica BW END ROUTINE ?

Estimados

Lanzo esta consulta para los @abapers del foro y/o cualquiera que me pueda dar algunas luces, tengo un código ABAP en una END ROUTINE (Transformación BW) en la que cargo una tabla interna con todos los PEDIDOS existentes para las Ordenes de Compra que vienen en el RESULT_PACKAGE.

Este es parte del código en cuestión...


SELECT doc_number /bic/zmaterial cml_cf_qty sales_unit net_weight
unit_of_wt net_value doc_currcy
FROM /bic/azsd_o0500
INTO TABLE lt_data2
FOR ALL ENTRIES IN RESULT_PACKAGE
WHERE doc_number = RESULT_PACKAGE-doc_number.
....
Se carga extmatlgrp
....

SORT lt_data2 BY /bic/zbstkd doc_number extmatlgrp.
SORT RESULT_PACKAGE BY /bic/zbstkd doc_number extmatlgrp.

LOOP AT lt_data2 ASSIGNING <fs_data2>.

  READ TABLE RESULT_PACKAGE ASSIGNING <result_fields> WITH KEY
        doc_number = <fs_data2>-doc_number extmatlgrp =
        <fs_data2>-extmatlgrp.

  IF sy-subrc EQ 0.
   Se actualizan los campos del pedido
  Else
     Se agrega un registro en el result_package para el pedido faltante
 Endif.  Endloop.

El problema es que cuando cargo sólo una orden de compra a través del DTP, este carga todas las posiciones bien, 15 en total, pero cuando ejecuto la carga full me duplica los registros para algunos casos, influirá en esto que tienen configurado en 1.000 el packet size en el DTP ???.

Saludos
CCN.-

Perdona, ¿Dónde están duplicadas las entradas en lt_data2 o en result_package?

Hola Salco,

Los duplicados quedan en el result_package.

Saludos.

Es decir , que cuando haces el for all entries la result_package ya tiene los registros duplicados? ¿por qué no haces un eliminate duplicates antes del for all entries?