使用BAPI:BAPI_BATCH_CREATE 创建批次时,能够保存成功,但是MCH1表和KSSK表中没有内部对象号。

无奈,查找源码。

最后在BAPI中调用的这个函数这里找到了问题。此处kzcla需要打一个标识‘1’。

SAP BAPI创建批次 未保存内部对象号_ABAP

往上查找kzcla,找到该字段修改的地方。

SAP BAPI创建批次 未保存内部对象号_内部对象号_02

上图所示,当batchcontrolfields-callcfc_cl EQ c_upper_x OR batchcontrolfields-callcfc_cl EQ c_lower_x.时,则修改 f_kzcla = ‘1’

通过调试得知,c_upper_x 是大写的‘X’,c_lower_x 是小写的‘x’,因此继续向上,发现 batchcontrolfields是传进来的值,因此找到了症结,

在调用BAPI_BATCH_CREATE时,传进这个值,并将batchcontrolfields-callcfc_cl = 'X'即可。

SAP BAPI创建批次 未保存内部对象号_ABAP_03

调用BAPI后发现可以在MCH1和KSSK中生成内部对象号CUOBJ_BM。