前言
在LSMW中,可通过调用business object method(bapi)方法实现批输入,在使用中发现,某些BO对象下的method不可选,原因是method未映射到ALE。
如在输入BUS2032时,仅能查看到两个方法
第一步:查看BO对象方法
T-Code:SOW1 输入相应BO类型后查看method 如下图销售订单中已创建名为ChangeFromData的方法,同时该方法关联了BAPI_SALESORDER_CHANGE
第二步:将方法映射到ALE(生成IDOC消息类型)
T-Code:BDBG 输入BO类型和方法后点击创建,如图生成一个ZSALES_CHANGE消息类型,选择包后确定 (此处较慢)。按个人理解,这是创建一个IDoc类型,创建IDoc段和outbound、inbound function函数
测试LSMW调用BAPI(IDOC)
第一步:SM59维护RFC目标逻辑系统
常规配置,连接类型选择3即可
第二步:维护IDOC进站处理 Inbound IDOC Processing
T-Code:LSMW Setting - Inbound IDOC Processing
分别维护 File port、Partn.Type、Partner NO
Edit Ports维护端口(文件类型下创建端口)
第三步:LSMW - Define Object Attributes
第四步:定义源字段 LSMW-3 Define Source Fields
如修改销售订单中交货冻结字段(BAPI_SALESORDER_CHANGE中需修改更新标识才会生效)
第五步:定义结构关系 LSMW-4 Define Structure Relations
第六步:定义字段映射和转换规则 LSMW-5 Define Field Mapping and Conversion Rules
第七步:WE20维护合作伙伴参数
合作伙伴类型:US
合作伙伴编号:LSMW
入站消息类型:ZSALES_CHANGE (BDBG创建时输入的消息类型)
处理代码:BAPI
此处对应前面IDOC进站处理中的合作伙伴编号和类型
其他
个人觉得是很不错的一个功能,可通过多种方法触发IDOC灵活运用
PS:WM模块中message type:SHP_OBDLV_CONFIRM_DECENTRAL