• SAP ABAP MIGO 自动生成MRP区域MD_MRP_LEVEL_CREATE_DATA


    MB_MIGO_BADI~POST_DOCUMENT

    DATA:LS_MSEG TYPE MSEG .
        DATA:BEGIN OF TY_MATNR ,
               MATNR TYPE MARA-MATNR,
             END OF TY_MATNR .
        DATA:LT_MATNR LIKE TABLE OF TY_MATNR,
             LS_MATNR LIKE TY_MATNR.
    DATA:   LV_MATNR     TYPE MDMA-MATNR,
            LV_WERK      TYPE MDMA-WERKS,
            LV_MRPAREA   TYPE MDMA-BERID,
            LS_SELFIELDS TYPE SDIBE_MASSFIELDS,
            LS_MDMA      TYPE MDMA,
            LS_DPOP      TYPE DPOP,
            LS_RETURN    TYPE BAPIRETURN1.
        LOOP AT IT_MSEG INTO LS_MSEG WHERE BWART EQ '311' AND XAUTO = SPACE
                                     AND UMWRK EQ '2001' AND  UMLGO EQ '2008'.
    *是否扩展对应的视图。
          SELECT
            SINGLE
            *
            INTO @DATA(LS_MDMA_info)
            FROM MDMA
            WHERE
            MATNR EQ @LS_MSEG-MATNR
           AND BERID EQ '200800' .
          IF SY-SUBRC <> 0 .
            LS_MATNR-MATNR = LS_MSEG-MATNR  .
            APPEND LS_MATNR TO LT_MATNR .
          ENDIF .
        ENDLOOP .
        SORT LT_MATNR BY MATNR .
        DELETE ADJACENT DUPLICATES FROM LT_MATNR COMPARING MATNR .
        DELETE LT_MATNR WHERE MATNR IS INITIAL .
        CHECK LT_MATNR IS NOT INITIAL .
        LOOP AT LT_MATNR INTO LS_MATNR .
          clear :LV_MATNR,
          LV_WERK     ,
          LV_MRPAREA  ,
          LS_SELFIELDS,
          LS_MDMA     ,
          LS_DPOP     ,
          LS_RETURN    .
           LV_MATNR = ls_matnr-matnr .
        LV_WERK = '2001'.
        LV_MRPAREA = '200800'.
        LS_SELFIELDS-XDISLS = 'X'.
        LS_SELFIELDS-XDISMM = 'X'.
        LS_MDMA-DISLS = 'EX' .
        LS_MDMA-DISMM = 'ND' .
        LS_MDMA-BERID = LV_MRPAREA.
        LS_MDMA-MATNR = LV_MATNR.

        CALL FUNCTION 'MD_MRP_LEVEL_CREATE_DATA'
          EXPORTING
            I_MATNR           = LV_MATNR
            I_WERK            = LV_WERK
            I_MRP_AREA        = LV_MRPAREA
            I_SELFIELDS       = LS_SELFIELDS
            I_MDMA            = LS_MDMA
            I_DPOP            = LS_DPOP
            I_QUEUE_FLAG      = 'X'
            I_SAVE_FLAG       = ''
            I_EXTERNAL_COMMIT = 'X'
          IMPORTING
            E_ERROR_RETURN    = LS_RETURN.
        CLEAR: LV_MATNR, LV_WERK,LV_MRPAREA,LS_SELFIELDS,LS_MDMA,LS_DPOP.
    *和主程序一起提交数据库。
        IF LS_RETURN-TYPE = 'E'.
          "BAPI失败回滚
    *      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        ELSE.
          "成功就提交并更新ALV
    *      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    *        EXPORTING
    *          WAIT = 'X'.
        ENDIF.

        ENDLOOP .

    BAPI BAPI_GOODSMVT_CREATE不触发上述增强,可在BADI MB_DOCUMENT_BADI 中实现上述效果。

  • 相关阅读:
    【nlp】2.6 注意力机制Attention
    用AI魔法打败AI魔法
    iOS 屏幕录制实现
    19.Qt 组合框的实现和应用
    对登录过程进行Fiddler抓包实现jmeter登录
    【MySQL】事务四大特性ACID、并发事务问题、事务隔离级别
    2.1_4 编码和调制
    NL50-MPI 西门子MPI转以太网通讯模块
    深入理解强化学习——强化学习的基础知识
    电商收付通,多服务商模式
  • 原文地址:https://blog.csdn.net/u014535256/article/details/128182988