‎2007 Sep 04 6:53 AM
Hi all,
We have a program, first to call BAPI_GOODSMVT_CREATE movement type=303, then execute BAPI_TRANSACTION_COMMIT. It's OK, but next, we call BAPI_GOODSMVT_CREATE using movement 305, the function return error message as following:PL Stock in transfer exceeded by 1 EAC : W78E58B-40 A23P, but open new session call mb1b is work. Don't know why 303 and 305 can't work together? Did anyone know how to solve this problem? Thanks!
‎2007 Sep 04 10:03 AM
Hi,
Please put 2 second's wait between both the call.(303 and 305).
And let me know if it is working or not.
Regards,
Saroj
‎2007 Sep 04 10:40 AM
Hi,
We try to wait over 100 seconds and also try dequeue_all, but dont' work.
It seem like can't get plant stock with do 305 movement. But using MM03 check, there are always have correct quantity at plant stock.
After BAPI_GOODSMVT_CREATE fail, we using MB1B is all done.
Don't know why 303+305 is fail?
‎2012 Apr 21 8:02 AM
Dear Former Member,
Instead of BAPI_TRANSACTION_COMMIT go for COMMIT WORK AND WAIT.
This will wait for next step to execute until the previous process is not executed.
no need to go for dequeue_all.
With Regards,
Akshay
‎2012 Apr 21 8:28 AM
Hi,
If you feel this a technical problem use function 'C14Z_WAIT_ON_COMMIT' after BAPI.. and commit BAPI.
Otherwise consult functional person.
Regards,
Phani.
‎2012 Apr 21 4:47 PM
Hi Kate
The problem you faced to has a simple solution. Before calling every BAPI which causes asynchronous updates insert 'SET UPDATE TASK LOCAL' statement. It turns on local update mode upto next COMMIT statement. That is, all the updates will take place synchronously in the same task and after next COMMIT .
SET UPDATE TASK LOCAL.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
......
COMMIT WORK.
Try this & let me know.
Regards,
Pushkar
‎2012 Apr 21 5:22 PM