Hi Loed,
The following are the Source DSO and Target DSO fields with Start Routine.
Source DSO :
Key Fields:
Calendar year / week 0CALWEEK NUMC 06 0CALWEEK
Demand Cal Week /NSN/ITM_DCWK NUMC 06 /NSN/ITM_DCWK
Demand Cal Week /NSN/ITM_DEWK NUMC 06 0CALWEEK
Key Data (MRP Data) /NSN/ITM_KDAT DATS 08 0DATE
Material (ITM) /NSN/ITM_MAT CHAR 18 /NSN/ITM_MAT
Material /NSN/SCS_MAT CHAR 30 /NSN/SCS_MAT
Logical System / Client /NSN/SCS_LOGS CHAR 14 /NSN/SCS_LOGS
NSN Period (Demand) /NSN/ITM_PER NUMC 06 /NSN/ITM_PER
Plant (ITM) /NSN/ITM_PLNT CHAR 04 /NSN/ITM_PLNT
Plant /NSN/SCS_PLNT CHAR 04 /NSN/SCS_PLNT
Plant Material (ITM) /NSN/ITM_MATPL CHAR 18 /NSN/ITM_MATPL
Material 0MATERIAL CHAR 18 0MATERIAL
Data Fields:
Demand Quantity(New) /NSN/ITM_DMQTY QUAN 09 /NSN/ITM_DMQTY
ITM Open PO qty New /NSN/ITM_POQTY QUAN 09 /NSN/ITM_POQTY
Buyer Hierarchy (ITM) /NSN/ITM_BUYR CHAR 10 /NSN/ITM_BUYR
Purchasing Group /NSN/SCS_PGRP CHAR 08 /NSN/SCS_PGRP
Unit of Measure 0UNIT UNIT 03 0UNIT
Local Material Code /NSN/ITM_LMATC CHAR 60 /NSN/ITM_LMATC
Target DSO :
Key Fields:
Calendar year / week 0CALWEEK NUMC 06 0CALWEEK
Demand Cal Week /NSN/ITM_DCWK NUMC 06 /NSN/ITM_DCWK
Key Data (MRP Data) /NSN/ITM_KDAT DATS 08 0DATE
Material (ITM) /NSN/ITM_MAT CHAR 18 /NSN/ITM_MAT
Plant (ITM) /NSN/ITM_PLNT CHAR 04 /NSN/ITM_PLNT
Data Fields:
Demand Qty /NSN/ITM_DEMQ INT4 04 /NSN/ITM_DEMQ
Order Item Number /NSN/ITM_ORITN CHAR 13 /NSN/ITM_ORITN
Start Routine in transformation of DSO2(Target)
TYPES: BEGIN OF ty_matl,
material TYPE /n42/oiitm_mat,
END OF ty_matl.
TYPES:BEGIN OF ty_matl_typ,
material TYPE /n42/oiitm_mat,
matl_typ TYPE /bi0/oimatl_type,
END OF ty_matl_typ.
DATA: lt_matl TYPE STANDARD TABLE OF ty_matl,
lt_matl_typ TYPE STANDARD TABLE OF ty_matl_typ,
ls_matl TYPE ty_matl,
ls_matl_typ TYPE ty_matl_typ.
** To filter materials where material type is empty!!
LOOP AT SOURCE_PACKAGE ASSIGNING <source_fields>.
IF <source_fields>-/n42/s_itm_kdat CA sy-abcde.
<source_fields>-/n42/s_itm_kdat = '99999999'.
ENDIF.
IF <source_fields>-/n42/s_itm_dmqty IS INITIAL.
<source_fields>-/n42/s_itm_dmqty = '0'.
ENDIF.
ls_matl-material = <source_fields>-/n42/s_itm_mat.
APPEND ls_matl TO lt_matl.
CLEAR ls_matl.
ENDLOOP.
DELETE SOURCE_PACKAGE WHERE /n42/s_itm_kdat = '99999999'.
DELETE SOURCE_PACKAGE WHERE /n42/s_itm_dmqty = '0'.
SELECT /n42/s_itm_mat
matl_type FROM /n42/pitm_mat
INTO TABLE lt_matl_typ
FOR ALL ENTRIES IN lt_matl
WHERE /n42/s_itm_mat = lt_matl-material.
IF sy-subrc = 0.
SORT lt_matl[].
ENDIF.
LOOP AT SOURCE_PACKAGE ASSIGNING <source_fields>.
READ TABLE lt_matl_typ INTO ls_matl_typ
WITH KEY material = <source_fields>-/n42/s_itm_mat.
IF sy-subrc = 0.
IF ls_matl_typ-matl_typ IS INITIAL.
<source_fields>-/n42/s_itm_mat = 'X'.
ENDIF.
ENDIF.
CLEAR:ls_matl_typ.
ENDLOOP.
DELETE SOURCE_PACKAGE WHERE /n42/s_itm_mat = 'X'.
Regards,
Rajesh Kumar. G