同一个程序里调用多个BAPI需要注意的情况

我们调用bapi做了相关的业务操作后,通常都要在后面调用 BAPI_TRANSACTION_COMMIT来提交所做得更改

然而,有时候,在程序中需要调用多个不同的BAPI实现不同的功能,那么这个时候就容易出现问题了。最先调用的BAPI成功执行了,可是后续的BAPI就无法成功执行,当我们调试的时候,却没有错误,一切都能正常操作那么这个时候,我们就要考虑是 BAPI_TRANSACTION_COMMIT参数的问题了!

因为在一个bapi成功执行后,需要调用 BAPI_TRANSACTION_COMMIT来提交所做得更改,那么这个提交操作要等待一定的时间,我们调用的时候,通常 BAPI_TRANSACTION_COMMIT的WAIT参数是空的,那么就会导致commit work and wait不会执行,而是简单的commit work操作,这样后续的BAPI可能需要上一个bapi所作操作的数据,而恰巧这些数据还没有提交完成,就会导致以后的bapi都无法正常顺利的执行。所以我们只需要 BAPI_TRANSACTION_COMMIT中的参数wait赋值'X'。就可以保证后续的操作正常进行了。

展开阅读全文

没有更多推荐了,返回首页