1,问题描述
项目里使用了ADSUBCON,在调用BAPI_GOODSMVT_CREATE创建带subcontractor行项目的物料移动凭证时,发现主行项目中的批次赋值错误。
错误截图:
看到第一行,也就是物料移动类型是101的行项目上的批次是1208221560,实际调用bapi时的输入批次是另外一个1906050181,但是创建出来的物料凭证却不同,而且bapi返回消息中也没有提示任何信息。
预想结果:
2,问题分析
业务顾问一头雾水,所以只能搬出debug大法,此处略去10000000个字。。。。经过debug发现了一段标准SAP代码中的注释,
include:MM07MFS0_SEGMENTDATEN_EK_SETZE中
1
2
3
4
5
|
* EHP604 ADSUB GM080421
* in case of goods receipt for a recursive A&D subcon PO in MIGO
* charge and valuation type of the main item can be changed
* also if corresponding values are given in the PO
* new values should not be overwritten with values from the PO
|
翻译过来就是,用tcode MIGO根据带subcon的采购订单创建物料凭证时,主行项目中的批次号和评估类型是不能被PO带过来的值覆盖,反言之,就是不使用MIGO创建物料凭证时PO中的批次和评估类型的优先级就高,会覆盖bapi输入参数里的值!!!
这时再查看一下对应的PO批次,
MIGO中找到物料凭证中的PO
ME23n找到PO中的批次,果然和BAPI输入的不一致。
以上。