MM--物料重新过账的代码摘抄

    技术2022-05-11  58

    *&---------------------------------------------------------------------**& 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.                                              . 


    最新回复(0)