Hello Recca,
I will try to explain it with my own example.
Suppose there is flat file containing Different KFs for a MATNR. Viz. Basic Rate, Discount and Tax
MATNR | Rate Type | KF |
A | BASIC_RATE | 100 |
B | BASIC_RATE | 120 |
C | BASIC_RATE | 140 |
D | BASIC_RATE | 100 |
E | BASIC_RATE | 120 |
F | BASIC_RATE | 140 |
G | BASIC_RATE | 100 |
H | BASIC_RATE | 120 |
I | BASIC_RATE | 140 |
J | BASIC_RATE | 100 |
A | DISCOUNT | 10 |
B | DISCOUNT | 20 |
C | DISCOUNT | 30 |
D | DISCOUNT | 40 |
A | TAX | 5 |
B | TAX | 10 |
C | TAX | 15 |
D | TAX | 5 |
E | TAX | 10 |
F | TAX | 15 |
G | TAX | 5 |
H | TAX | 10 |
Now these are to be stored in different columns as KF1_BASIC_RATE, KF2_DISCOUNT, KF3_TAX as below.
MATNR | KF1_BASIC_RATE | KF2_DISCOUNT | KF3_TAX |
A | 100 | 10 | 5 |
B | 120 | 20 | 10 |
C | 140 | 30 | 15 |
D | 100 | 40 | 5 |
E | 120 | 10 | |
F | 140 | 15 | |
G | 100 | 5 | |
H | 120 | 10 | |
I | 140 | ||
J | 100 |
You can use start routine in transformation. Given below is the pseudo code.
DATA : wa_source_package TYPE _ty_s_sc_1.
DATA : wa_source_package1 TYPE _ty_s_sc_1.
DATA : source_package1 TYPE _ty_t_sc_1.
CLEAR: wa_source_package, wa_source_package1, source_package1.
SOURCE_PACKAGE[] = SOURCE_PACKAGE1[].
*** This will keep only one record for each MATNR
DELETE ADJACENT DUPLICATES FROM SOURCE_PACKAGE COMPARING MATNR.
LOOP AT SOURCE_PACKAGE INTO wa_SOURCE_PACKAGE.
READ TABLE source_package1
WITH KEY MATNR = wa_source_package-MATNR
RATE_TYPE = 'BASIC_RATE'
INTO wa_source_package1.
IF sy-subrc IS INITIAL1.
wa_source_package-KF1_BASIC_RATE = wa_source_package1-KF
ENDIF.
READ TABLE source_package1
WITH KEY MATNR = wa_source_package-MATNR
RATE_TYPE = 'DISCOUNT'
INTO wa_source_package1.
IF sy-subrc IS INITIAL.
wa_source_package-KF2_DISCOUNT = wa_source_package1-KF
ENDIF.
READ TABLE source_package1
WITH KEY MATNR = wa_source_package-MATNR
RATE_TYPE = 'TAX'
INTO wa_source_package1.
IF sy-subrc IS INITIAL.
wa_source_package-KF3_TAX = wa_source_package-KF
ENDIF.
MODIFY SOURCE_PACKAGE FROM wa_SOURCE_PACKAGE.
CLEAR: wa_source_package1.
ENDLOOP.
Hope you can relate this with your requirement.
Regards,
Sucheta