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复制那点事
    全排列问题
    56. Merge Interval
    2. Add Two Numbers
    20. Valid Parentheses
    121. Best Time to Buy and Sell Stock
    120. Triangle
    96. Unique Binary Search Trees
    91. Decode Ways
    72. Edit Distance
  • 原文地址:https://www.cnblogs.com/rainysblog/p/6616844.html
Copyright © 2011-2022 走看看