MMSC扩充仓位

扩充多个物料

调用BAPI:BAPI_MATERIAL_SAVEREPLICA

DATA:ls_return TYPE bapiret2,
     lt_head   TYPE TABLE OF bapie1matheader WITH HEADER LINE,
     lt_mard   TYPE TABLE OF bapie1mard WITH HEADER LINE,
     lt_mardx  TYPE TABLE OF bapie1mardx WITH HEADER LINE.
lt_head-function     = '009'.
lt_head-material     = 'HYM01'.
lt_head-storage_view = 'X'.
APPEND lt_head.
CLEAR lt_head.
lt_mard-function     = '009'.
lt_mard-material     =  'HYM01'.
lt_mard-plant        =  '1000'.
lt_mard-stge_loc     =  '1002'.
APPEND lt_mard.
CLEAR lt_mard.
lt_mardx-function     = '009'.
lt_mardx-material     =  'HYM01'.
lt_mardx-plant        =  '1000'.
lt_mardx-stge_loc     =  '1002'.
APPEND lt_mardx.
CLEAR lt_mardx.
CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
  EXPORTING
    noappllog            = 'X'
    nochangedoc          = ''
    testrun              = ''
    inpfldcheck          = ''
  IMPORTING
    return               = ls_return
  TABLES
    headdata             = lt_head
    storagelocationdata  = lt_mard
    storagelocationdatax = lt_mardx.
IF ls_return-type <> 'E'.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.

单个物料

  DATA: ls_head   TYPE bapimathead,
        ls_stld   TYPE bapi_mard,
        ls_stldx  TYPE bapi_mardx,
        ls_return TYPE bapiret2.

  BREAK yangtao.

  LOOP AT gt_out ASSIGNING FIELD-SYMBOL(<fs_out>).

    CLEAR:ls_head,ls_stld,ls_stldx.

    ls_head-material     = <fs_out>-matnr. " 物料编号
    ls_head-storage_view = 'X'.          " 存储视图



    ls_stld-plant    = <fs_out>-werks. " 工厂
    ls_stld-stge_loc = <fs_out>-lgort. " 存储地点

    ls_stldx-plant    =  <fs_out>-werks. " 工厂
    ls_stldx-stge_loc =  <fs_out>-lgort. " 存储地点

    CLEAR ls_return.
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata             = ls_head " 物料
        storagelocationdata  = ls_stld " 工厂&存储地点
        storagelocationdatax = ls_stldx " 工厂&存储地点
      IMPORTING
        return               = ls_return.
    IF ls_return-type CA 'AEX'.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      <fs_out>-bapi_mtype = 'E'.
      <fs_out>-bapi_msg   = ls_return-message.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.

      <fs_out>-bapi_mtype = 'S'.
      <fs_out>-bapi_msg   = '扩充成功'.
    ENDIF.

  ENDLOOP.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值