2011年做过一个日本项目,他们的要求是创建plan order;创建好后立刻去更改这个plan oder。
所以他们要求用到以下两个bapi.
BAPI_PLANNEDORDER_CREATE
BAPI_PLANNEDORDER_CHANGE,
程序编写的时候,只是做了一个简单的测试,没有进行批量测试。本以为大功告成的时候,却出现了几个让我抓狂的问题:
Error 1: plan order is not existing
Error 2: Plan order is locked by ..
想来想去,都不明白问题怎么会这样子。
明明在第一步就使用了创建BAPI了,那么order就应该会生成了啊。在调用的第二个BAPI的时候,就理该用到第一步生成的Order。
还有,我刚刚创建的order,怎么会被Lock住呢?别的程序也不可能这么快知道我创建的order。
想了半天时间,终于想通了,觉得这两个BAPI是通过异步更新的数据库的。也只有这种解释才符合现实。
原因找到了,但是怎么才能解决这个问题呢?
那时做为初学者的我,也只能请教一个假日本了。 只是他给我的方法也是挺让我无语的。
他让我反复去检查数据库表,反复地用wait。 这样子导致的结果就是这个程序跑得比蜗牛还慢。
曾经也想过在网上搜索一下有没有什么方法使得BAPI的异步更新变成同步更新。只是一直没有找到对应的解决办法。
今日偶尔看到一个帖子http://scn.s