BAPI_GOODSMVT_CREATE的RETURN参数返回行为是怎样的
BAPI_GOODSMVT_CREATE中RETURN参数的设计逻辑说明 标准设计规则
BAPI_GOODSMVT_CREATE的RETURN是SAP BAPI标准的消息返回内表,参考结构为BAPIRET2,按照标准设计逻辑,它会返回执行过程中所有类型的消息,包括:
E类:错误消息(过账失败时必然返回)W类:警告消息(过账存在校验提示但不阻断过账时返回)S类:成功消息(过账成功时按系统逻辑决定是否返回)I类:信息类提示消息
成功过账时RETURN为空的原因
过账成功场景下RETURN无返回值不是程序异常,属于系统逻辑差异导致的正常现象:
- 部分ECC低版本、特定S/4HANA支持包的标准程序逻辑中,当货物移动过账全程无任何警告、信息类提示,完全校验通过时,不会主动往
RETURN表写入成功类消息,此时RETURN就是空内表。
过账成功的正确判断方式
不要仅通过
RETURN参数是否有值判断过账结果,这是使用该BAPI的常见误区。
只要BAPI返回的MATERIALDOCUMENT(物料凭证号)、MATDOCUMENTYEAR(物料凭证年度)两个字段均有非空有效值,就代表过账已经成功落库,和RETURN是否返回消息没有必然关联。
可选优化方案
如果业务逻辑要求过账成功后必须拿到明确的成功消息,可以在确认两个凭证字段都返回有效值后,手动往RETURN内表插入一条类型为S的标准消息:消息类为M7,消息号为001,消息文本为「物料凭证 & & 已创建」,把返回的凭证号、年度填入消息占位符即可。
内容的提问来源于stack exchange,提问作者Saronee Das
相关产品推荐
相关产品推荐

