*&---------------------------------------------------------------------**& Report ZZWASTOR **& **&---------------------------------------------------------------------**& **& **&---------------------------------------------------------------------*REPORT ZZWASTOR .
********************************************************************** If you do not know the material document of the goods issue any ** more you can use transaction SE16. ** - Type in table name MKPF ** - Type in the delivery note number in field XBLNR (always with ** leading zeroes) ** - Execute ** - The Material document number of the goods issue for the deleted ** delivery will be shown. ** ** ** ** LF_BUDAT => Posting date for the reversal ** LF_MJAHR => Posting year of the material document to reverse ** LF_MBLNR => Goods issue document (with leading zeroes) ** LF_VBELN => Delivery note number (with leading zeroes) ** LF_TEST => When 'X' it is test mode only, otherwise GI will be ** cancelled **********************************************************************
TABLES: MKPF, IMKPF, EMKPF, LIKP.
DATA: BEGIN OF IMSEG OCCURS 0. INCLUDE STRUCTURE IMSEG.DATA: END OF IMSEG.
DATA: BEGIN OF EMSEG OCCURS 0. INCLUDE STRUCTURE EMSEG.DATA: END OF EMSEG.
PARAMETERS: LF_BUDAT LIKE SY-DATLO DEFAULT SY-DATLO OBLIGATORY, LF_MJAHR LIKE MKPF-MJAHR DEFAULT SY-DATLO(4) OBLIGATORY, LF_MBLNR LIKE MKPF-MBLNR OBLIGATORY, LF_VBELN LIKE LIKP-VBELN OBLIGATORY, LF_TEST TYPE C DEFAULT 'X'.
DATA: MBLPO LIKE MSEG-ZEILE.
SELECT SINGLE * FROM MKPF WHERE MBLNR = LF_MBLNR AND MJAHR = LF_MJAHR AND XBLNR = LF_VBELN.
IF SY-SUBRC IS INITIAL. CALL FUNCTION 'MB_CANCEL_GOODS_MOVEMENT' EXPORTING BUDAT = LF_BUDAT MBLNR = LF_MBLNR MBLPO = MBLPO MJAHR = LF_MJAHR TCODE = 'VL09' CALLED_BY = 'VL09' IMPORTING EMKPF = EMKPF TABLES EMSEG = EMSEG IMSEG = IMSEG EXCEPTIONS OTHERS = 1.
*... No error found, then it will be posted IF EMKPF-SUBRC EQ 1. IF LF_TEST IS INITIAL. CALL FUNCTION 'MB_POST_GOODS_MOVEMENT' EXPORTING XBLNR_SD = LF_VBELN IMPORTING EMKPF = EMKPF EXCEPTIONS OTHERS = 0.
COMMIT WORK. WRITE: / 'Goods movement was cancelled successfully with document:', EMKPF-MBLNR. ELSE. WRITE: / 'Testmode: Goods movement could be cancelled !'. ENDIF. ELSE.*... otherwise write an error-log LOOP AT EMSEG. WRITE: / EMSEG-MSGID, EMSEG-MSGNO, EMSEG-MSGTY, EMSEG-MSGV1, EMSEG-MSGV2, EMSEG-MSGV3, EMSEG-MSGV4. ENDLOOP. WRITE: / EMKPF-MSGID, EMKPF-MSGNO, EMKPF-MSGTY, EMKPF-MSGV1, EMKPF-MSGV2, EMKPF-MSGV3, EMKPF-MSGV4.
ENDIF.ELSE. WRITE: / 'Material document to reverse does not exsist'.ENDIF. .