MMSC 扩充物料库存地点

 当涉及到物料的库存地点时,系统通常会做校验,该物料是否扩充了库存地点,没有扩充则报错。为了不使这样的错误干扰到程序逻辑,通常会在涉及时,先查询MARD表,判断是否存在对应的库存地点。如果没有存在,则直接先扩充库存地点,再执行程序逻辑

1、前台扩充

MMSC

输入库存地点,点击保存

2、BAPI实现

2.1、扩充多个物料

调用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.
"--------------------@斌将军--------------------

2.2、扩充单个物料

调用BAPI:BAPI_MATERIAL_SAVEDATA

"--------------------@斌将军--------------------
DATA: ls_head   TYPE bapimathead,
      ls_stld   TYPE bapi_mard,
      ls_stldx  TYPE bapi_mardx,
      ls_return TYPE bapiret2.

CLEAR:ls_head,ls_stld,ls_stldx.

ls_head-material     = '000000000001100023'. " 物料编号
ls_head-storage_view = 'X'.          " 存储视图
"
ls_stld-plant    = 'P060'. " 工厂
ls_stld-stge_loc = '9201'. " 存储地点

ls_stldx-plant    = 'P060'. " 工厂
ls_stldx-stge_loc = '9201'. " 存储地点

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'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.
"--------------------@斌将军--------------------

定期更文,欢迎关注

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值