zoukankan      html  css  js  c++  java
  • ABAP-创建货源清单

    CALL FUNCTION 'ME_DIRECT_INPUT_SOURCE_LIST'

    *&---------------------------------------------------------------------*
    *& Report  YTST_USE_019_003
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*
    
    REPORT YTST_FF_006.
    
    TABLES:MARA,
           EORD.
    
    DATA:GT_EORDU TYPE STANDARD TABLE OF EORDU,
         WA_EORDU TYPE EORDU,
         GT_XEORD TYPE STANDARD TABLE OF EORDU.
    DATA:GT_EORD TYPE STANDARD TABLE OF EORD,
         WA_EORD TYPE EORD.
    
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
    
    SELECT-OPTIONS:S_MATNR FOR MARA-MATNR MODIF ID WH NO INTERVALS NO-EXTENSION,
                   S_WERKS FOR EORD-WERKS MODIF ID WH NO INTERVALS NO-EXTENSION,
                   S_LIFNR FOR EORD-LIFNR MODIF ID WH NO INTERVALS NO-EXTENSION.
    PARAMETER:P_VDATU LIKE EORD-VDATU.
    *PARAMETER:P_LIFNR LIKE EORD-LIFNR.
    
    SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004.
    PARAMETER:RB_CJ RADIOBUTTON GROUP G2 DEFAULT 'X',
              RB_XG RADIOBUTTON GROUP G2.
    SELECTION-SCREEN END OF BLOCK B4.
    
    SELECTION-SCREEN END OF BLOCK B3.
    
    DATA:L_ERR  TYPE STRING,
         L_TEXT TYPE STRING.
    
    IF RB_CJ EQ 'X'.
    *&创建货源清单
      WA_EORDU-MATNR = S_MATNR-LOW.
      WA_EORDU-WERKS = S_WERKS-LOW.
      WA_EORDU-LIFNR = S_LIFNR-LOW.
      WA_EORDU-EKORG = 'P001'.
      WA_EORDU-VDATU = P_VDATU.
      WA_EORDU-BDATU = '99991231'.
      WA_EORDU-FLIFN = 'X'.
      WA_EORDU-KZ = 'I'.
      SELECT SINGLE MEINS
               INTO WA_EORDU-MEINS
               FROM EINA
              WHERE MATNR EQ S_MATNR-LOW
                AND LIFNR EQ S_LIFNR-LOW.
      APPEND WA_EORDU TO GT_EORDU.
    
    
    *  CALL FUNCTION 'ME_DIRECT_INPUT_SOURCE_LIST'
    *    EXPORTING
    *      I_MATNR =
    *      I_WERKS =
    **     I_MT06E =
    **     I_NO_MATERIAL_READ       =
    **     ACTIVITY                 = 'V'
    **     I_VORGA =
    **     I_LOGSY =
    *    TABLES
    *      T_EORD  =
    **   EXCEPTIONS
    **     PLANT_MISSING            = 1
    **     MATERIAL_MISSING         = 2
    **     OTHERS  = 3
    *    .
    *  IF SY-SUBRC <> 0.
    ** Implement suitable error handling here
    *  ENDIF.
    *
    *CALL FUNCTION 'ME_DIRECT_INPUT_INFORECORD'
    *  EXPORTING
    **   ACTIVITY               = 'V'
    *    I_EINA                 =
    **   I_EINE                 =
    **   O_EINA                 =
    **   O_EINE                 =
    **   I_NO_SUPPOSE           =
    **   I_VORGA                =
    **   I_SKIP_NR_CHECK        =
    ** IMPORTING
    **   E_EINA                 =
    **   E_EINE                 =
    ** TABLES
    **   T_HEAD                 =
    **   T_LINE                 =
    ** EXCEPTIONS
    **   TEXTNAME_INVALID       = 1
    **   OTHERS                 = 2
    *          .
    *IF SY-SUBRC <> 0.
    ** Implement suitable error handling here
    *ENDIF.
    
    
    
      CALL FUNCTION 'ME_DIRECT_INPUT_SOURCE_LIST'
        EXPORTING
          I_MATNR          = S_MATNR-LOW
          I_WERKS          = S_WERKS-LOW
        TABLES
          T_EORD           = GT_EORDU
        EXCEPTIONS
          PLANT_MISSING    = 1
          MATERIAL_MISSING = 2
          ERROR_MESSAGE    = 4
          OTHERS           = 3.
    
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
        INTO L_TEXT.
        L_ERR = 'FAIL'.
    *    CONTINUE.
      ELSE.
        CALL FUNCTION 'ME_POST_SOURCE_LIST_NEW'
          EXPORTING
            I_MATNR = S_MATNR-LOW.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          L_ERR = 'FAIL'.
    *      CONTINUE.
        ENDIF.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT = 'X'.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          L_ERR = 'FAIL'.
    *   CONTINUE.
        ENDIF.
    
        IF L_ERR NE 'FAIL'.
          L_ERR = '创建货源清单成功'.
        ENDIF.
    
      ENDIF.
    ELSE.
    *&修改货源清单
      SELECT *
        INTO TABLE GT_EORD
        FROM EORD
         WHERE MATNR EQ S_MATNR-LOW
        AND WERKS EQ S_WERKS-LOW.
    
    *  WA_EORDU-MATNR = S_MATNR-LOW.
    *  WA_EORDU-WERKS = S_WERKS-LOW.
    *  WA_EORDU-LIFNR = S_LIFNR-LOW.
    *  WA_EORDU-EKORG = 'P001'.
    *  WA_EORDU-VDATU = P_VDATU.
    *  WA_EORDU-BDATU = '99991231'.
    *  WA_EORDU-FLIFN = 'X'.
    *  WA_EORDU-KZ = 'I'.
    *  SELECT SINGLE MEINS
    *           INTO WA_EORDU-MEINS
    *           FROM EINA
    *          WHERE MATNR EQ S_MATNR-LOW
    *            AND LIFNR EQ S_LIFNR-LOW.
    *  APPEND WA_EORDU TO GT_EORD.
    
      MOVE-CORRESPONDING GT_EORD TO GT_XEORD.
      LOOP AT GT_XEORD INTO WA_EORDU.
        WA_EORDU-LIFNR =  S_LIFNR-LOW.
        WA_EORDU-VDATU = P_VDATU.
        WA_EORDU-KZ = 'I'.
        MODIFY GT_XEORD FROM WA_EORDU TRANSPORTING LIFNR VDATU.
      ENDLOOP.
    
    *  CALL FUNCTION 'ME_UPDATE_SOURCES_OF_SUPPLY'
    **   EXPORTING
    **     DOCUMENT_NUMBER        = ' '
    **     I_CHANGEDOCUMENT       =
    *    TABLES
    *      XEORD                  =
    *      YEORD                  =
    *
      CALL FUNCTION 'ME_UPDATE_SOURCES_OF_SUPPLY'
        TABLES
          XEORD = GT_XEORD
          YEORD = GT_EORD.
      IF SY-SUBRC = 0.
        COMMIT WORK AND WAIT.
        L_ERR = 'SUCCESS'.
      ELSE.
        ROLLBACK WORK.
        L_ERR = 'FAIL'.
      ENDIF.
    ENDIF.
    
    WRITE:L_ERR,
          L_TEXT.
  • 相关阅读:
    MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!
    市值TOP10,人类进化及中美坐标
    倒序切片
    对list进行切片
    Python之定义可变参数
    Python之递归函数
    Python之“可变”的tuple
    Python之创建单元素tuple
    Python中Unicode字符串
    Pycharm配置autopep8让Python代码更符合pep8规范
  • 原文地址:https://www.cnblogs.com/rainysblog/p/6616844.html
Copyright © 2011-2022 走看看