‎2010 May 14 6:13 AM
Dear All
Assume PR 1100001, : I want to generate two PO from the pr as shown below.
But PR`s item 2 will be locked when PO 1 generated from the PR items 1.
I want to unlockPR`s item 2 before call function "bapi_po_creat1" . It seems that function 'DEQUEUE_EMEBANE' not work.
Please give me hand . Thanks.
PR no items NO
1100001 00001 PO 1
1100001 00002 PO2
DO 3 times.
REFRESH F_RETURN.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = IT_POHDR
POHEADERX = IT_POHDRX
IMPORTING
EXPPURCHASEORDER = F_EBELN
TABLES
POITEM = IT_POITM
POITEMX = IT_POITMX
POSCHEDULE = IT_POSCH
POSCHEDULEX = IT_POSCHX
POPARTNER = IT_PARTNER
POTEXTHEADER = IT_HEADTEXT
RETURN = F_RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
COMMIT WORK.
SORT F_RETURN BY TYPE ID NUMBER.
READ TABLE F_RETURN WITH KEY TYPE = 'E'
ID = 'ME'
NUMBER = '006'
BINARY SEARCH.
IF SY-SUBRC = 0.
LOOP AT ILOG_TMP.
CALL FUNCTION 'DEQUEUE_EMEBANE'
EXPORTING
MODE_EBAN = 'E'
MANDT = SY-MANDT
BANFN = ILOG_TMP-BANFN
BNFPO = ILOG_TMP-BNFPO.
ENDLOOP.
WAIT UP TO 10 SECONDS.
ELSE.
EXIT.
ENDIF.
ENDDO.
‎2010 May 14 6:30 AM
Not necessary to use 'DEQUEUE_EMEBANE'
just try below code
DO 3 times.
REFRESH F_RETURN.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = IT_POHDR
POHEADERX = IT_POHDRX
IMPORTING
EXPPURCHASEORDER = F_EBELN
TABLES
POITEM = IT_POITM
POITEMX = IT_POITMX
POSCHEDULE = IT_POSCH
POSCHEDULEX = IT_POSCHX
POPARTNER = IT_PARTNER
POTEXTHEADER = IT_HEADTEXT
RETURN = F_RETURN.
SORT F_RETURN BY TYPE ID NUMBER.
READ TABLE F_RETURN WITH KEY TYPE = 'E'
ID = 'ME'
NUMBER = '006'
BINARY SEARCH.
IF SY-SUBRC = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
RETURN = RET.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = bapireturn2.
ENDIF.
ENDDO.
‎2010 May 14 7:12 AM
Dear Kiran
Thanks you very much.
You are right. Not necessary to use 'DEQUEUE_EMEBANE' , It is so funny why Not necessary to use 'DEQUEUE_EMEBANE' ?
Do you konw? thanks.
‎2010 Jun 13 10:41 AM