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.

 

转载于:https://www.cnblogs.com/rainysblog/p/6616844.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值