1. BAPI_GOODSMVT_CREATE核心参数解析
第一次接触BAPI_GOODSMVT_CREATE时,我被它复杂的参数配置搞得晕头转向。后来在实际项目中踩过几次坑才发现,只要掌握两个核心参数就能解决80%的问题:GOODSMVT_CODE和MOVE_TYPE。这两个参数就像快递单上的"寄件类型"和"配送方式",决定了整个库存移动的业务逻辑。
GOODSMVT_CODE对应SAP标准事务代码,常见取值有:
- '01':MB01(采购订单收货)
- '02':MB31(生产订单收货)
- '03':MB1A(发货)
- '04':MB1B(库存转储)
- '05':MB1C(其他收货)
MOVE_TYPE则是具体的移动类型,比如:
- 101:标准采购收货
- 261:销售订单发货
- 321:库存状态转移
- 501:无采购订单入库
我遇到过最棘手的情况是客户要求使用自定义移动类型Z21处理生产退料。当时不知道GOODSMVT_CODE该填什么,后来发现可以通过T158B和T158G两张表查找映射关系。具体操作是先在T158B根据移动类型找到事务代码,再去T158G用事务代码反查GOODSMVT_CODE。这个方法帮我解决了90%的自定义类型配置问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 采购收货场景实战
采购收货是供应链系统最常用的功能之一。记得第一次对接第三方WMS系统时,对方开发人员总抱怨收货单据状态不对。排查后发现是MVT_IND参数没配置好——这个参数就像快递的"运输标识",决定了收货的业务属性。
标准采购收货的典型配置:
abap复制DATA(lv_goodsmvt_code) = '01'. "MB01
DATA(lw_item) = VALUE bapi2017_gm_item_create(
po_number = '4500000123' "采购订单号
po_item = '10' "行项目
move_type = '101' "移动类型
mvt_ind = 'B' "B-采购收货/F-生产收货
entry_qnt = 100 "数量
plant = '1000' "工
