Getting no idea where i am going wrong, my IT_MSEG is fetching data, but when modifying IT_FINAL, the values are not getting transported. Need help, please point where i am going wrong.
Thanks.
REPORT ZROQ_STATUS_REPORT.
TABLES: MARA , MARC , MSEG.
TYPE-POOLS: SLIS.
TYPES: BEGIN OF TY_FINAL,
MATERIAL_NO TYPE MARA-MATNR,
MATERIAL_GRP TYPE MARA-MATKL,
MATERIAL_NO2 TYPE MARC-MATNR,
PLANT TYPE MARC-WERKS,
MVMT_TYP TYPE MSEG-BWART,
MTRL_DOC_NO TYPE MSEG-MBLNR,
QUANTITY TYPE MSEG-MENGE,
BATCH_NO1 TYPE MSEG-CHARG,
BATCH_NO2 TYPE MSEG-CHARG,
END OF TY_FINAL.
DATA: IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: SO_MTART FOR MARA-MTART.
SELECT-OPTIONS: SO_MATKL FOR MARA-MATKL.
SELECTION-SCREEN END OF BLOCK BK1.
SELECTION-SCREEN BEGIN OF BLOCK BK3 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS: SO_DATE FOR MSEG-BUDAT_MKPF.
SELECT-OPTIONS: SO_WERKS FOR MARC-WERKS.
SELECTION-SCREEN END OF BLOCK BK3.
START-OF-SELECTION.
PERFORM GET_DATA.
FORM GET_DATA.
* MARA
SELECT MATNR,
MATKL
FROM MARA
INTO TABLE @DATA(IT_MARA)
WHERE MATKL IN @SO_MATKL AND MATKL IN ( 'FG01' , 'FG02' ). "matkl = 'FG01' & 'FG02'.
LOOP AT IT_MARA INTO DATA(WA_MARA).
WA_FINAL-MATERIAL_NO = WA_MARA-MATNR.
WA_FINAL-MATERIAL_GRP = WA_MARA-MATKL.
APPEND WA_FINAL TO IT_FINAL.
CLEAR: WA_MARA , WA_FINAL.
ENDLOOP.
* MARC
IF IT_FINAL[] IS NOT INITIAL.
SELECT MATNR,
WERKS
FROM MARC
INTO TABLE @DATA(IT_MARC)
FOR ALL ENTRIES IN @IT_FINAL
WHERE MATNR = @IT_FINAL-MATERIAL_NO AND WERKS IN @SO_WERKS AND WERKS IN ( 'PM01' , 'PM02' ).
ENDIF.
LOOP AT IT_FINAL INTO WA_FINAL.
READ TABLE IT_MARC INTO DATA(WA_MARC) WITH KEY MATNR = WA_FINAL-MATERIAL_NO.
IF SY-SUBRC = 0.
WA_FINAL-MATERIAL_NO2 = WA_MARC-MATNR.
WA_FINAL-PLANT = WA_MARC-WERKS.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MATERIAL_NO2 PLANT.
CLEAR: WA_MARC , WA_FINAL.
ENDIF.
ENDLOOP.
* MSEG
IF IT_FINAL[] IS NOT INITIAL.
SELECT MATNR,
WERKS,
BUDAT_MKPF,
BWART,
MBLNR,
MENGE,
CHARG
FROM MSEG
INTO TABLE @DATA(IT_MSEG)
FOR ALL ENTRIES IN @IT_FINAL
WHERE MATNR = @IT_FINAL-MATERIAL_NO2
AND WERKS = @IT_FINAL-PLANT
AND BUDAT_MKPF IN @SO_DATE
AND BWART = '101'.
ENDIF.
* Values are getting stored in IT_MSEG but when trying to modify IT_FINAL, the values are not getting transported.
LOOP AT IT_FINAL INTO WA_FINAL.
READ TABLE IT_MSEG INTO DATA(WA_MSEG) WITH KEY MATNR = WA_FINAL-MATERIAL_NO2
WERKS = WA_FINAL-PLANT
BUDAT_MKPF = SO_DATE
BWART = '101'.
IF SY-SUBRC = 0.
WA_FINAL-MVMT_TYP = WA_MSEG-BWART.
WA_FINAL-MTRL_DOC_NO = WA_MSEG-MBLNR.
WA_FINAL-QUANTITY = WA_MSEG-MENGE.
WA_FINAL-BATCH_NO1 = WA_MSEG-CHARG.
MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING MVMT_TYP MTRL_DOC_NO QUANTITY BATCH_NO1.
CLEAR: WA_FINAL , WA_MSEG.
ENDIF.
ENDLOOP.