Skip to Content
0
Jul 20, 2016 at 07:36 AM

Question about creating local table in start routine

65 Views

Case:

In a transformation we want to cross-reference and fill some fields from another DSO ZMM_PO60.

Code in the start transformation

*Global Part...

TYPES: BEGIN OF ls_zmmpo60,

doc_num TYPE /bic/azmm_po6000-doc_num,

doc_item TYPE /bic/azmm_po6000-doc_item,

sr_ivvlc TYPE /bic/azmm_po6000-sr_ivvlc,

sr_ivvic TYPE /bic/azmm_po6000-sr_ivvic,

inv_curr TYPE /bic/azmm_po6000-inv_curr,

bbp_inv_id TYPE /bic/azmm_po6000-bbp_inv_id,

bbp_initem TYPE /bic/azmm_po6000-bbp_initem,

END OF ls_zmmpo60.

DATA: lt_zmmpo60 TYPE TABLE OF ls_zmmpo60.

*Insert Routine...

IF lt_zmmpo60 IS INITIAL.

SELECT

doc_num

doc_item

sr_ivvlc

sr_ivvic

inv_curr

bbp_inv_id

bbp_initem

FROM /bic/azmm_po6000

INTO TABLE lt_zmmpo60

FOR ALL ENTRIES IN SOURCE_PACKAGE

WHERE

doc_num NE '' AND

doc_num = SOURCE_PACKAGE-doc_num AND

doc_item = SOURCE_PACKAGE-doc_item.

ENDIF.

No on to the problem:

The amount of date loaded (Source_Package) is large which leads to splitting in numerous data packages.

But after looking at the debugger it looks like the local table only contains the cross-referenced data from one or two data packages. only the first ~ 30.000 data records in the result-package are being filled with their correct content. The rest is empty.

How can we make sure the local table contains ALL of the matching data?

I hope the description is clear enough.