Skip to Content
0
Former Member
Aug 27, 2006 at 07:03 AM

BAPI_PO_CREATE1 multiple schedule lines cann't create ECC500

242 Views

Dear all:

I want to use BAPI_PO_CREATE1 to create more than one purchase order schedule item for a purchase order item .However, the system either posts the first purchase order schedule line or the BAPI terminates the posting with an error message. I have found SAP NOTES (828582) try to solve the problem . But it was no use.

My SAP system component information is SAP_APPL 500 0012 SAPKH50012 .

I attach test program as follows:

REPORT ZPO_CREATE.

DATA: HEADER LIKE BAPIMEPOHEADER,

HEADERX LIKE BAPIMEPOHEADERX,

EXPHEADER LIKE BAPIMEPOHEADER,

TESTRUN LIKE BAPIFLAG-BAPIFLAG,

ITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,

ITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,

POSCHEDULE LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,

POSCHEDULEX LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE,

POTEXTHEADER LIKE BAPIMEPOTEXTHEADER OCCURS 0 WITH HEADER LINE,

POTEXTITEM LIKE BAPIMEPOTEXT OCCURS 0 WITH HEADER LINE,

RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.

START-OF-SELECTION.

*<<<< HEADER

HEADER-COMP_CODE = '1000'.

HEADER-DOC_TYPE = 'NB'.

HEADER-CREAT_DATE = SY-DATUM.

HEADER-CREATED_BY = SY-UNAME.

HEADER-VENDOR = '0000000063'.

HEADER-LANGU = SY-LANGU.

HEADER-PURCH_ORG = '1000'.

HEADER-PUR_GROUP = '100'.

HEADER-CURRENCY = 'RMB'.

HEADER-DOC_DATE = SY-DATUM.

HEADERX-COMP_CODE = 'X'.

HEADERX-DOC_TYPE = 'X'.

HEADERX-CREAT_DATE = 'X'.

HEADERX-CREATED_BY = 'X'.

HEADERX-VENDOR = 'X'.

HEADERX-LANGU = 'X'.

HEADERX-PURCH_ORG = 'X'.

HEADERX-PUR_GROUP = 'X'.

HEADERX-CURRENCY = 'X'.

HEADERX-DOC_DATE = 'X'.

  • <<<< ITEM

CLEAR ITEM.

ITEM-PO_ITEM = '00010'.

ITEM-MATERIAL = 'K01060'.

ITEM-PLANT = '1000'.

ITEM-QUANTITY = 20.

ITEM-PO_UNIT = 'LIN'.

ITEM-NET_PRICE = 310.

ITEM-TAX_CODE = 'J2'.

ITEM-PO_PRICE = 1.

ITEM-FINAL_INV = 'X'.

ITEM-IR_IND = 'X'.

APPEND ITEM.

ITEMX-PO_ITEM = '00010'.

ITEMX-MATERIAL = 'X'.

ITEMX-PLANT = 'X'.

ITEMX-QUANTITY = 'X'.

ITEMX-PO_UNIT = 'X'.

ITEMX-NET_PRICE = 'X'.

ITEMX-TAX_CODE = 'X'.

ITEMx-PO_PRICE = 'X'.

ITEMX-FINAL_INV = 'X'.

ITEMX-IR_IND = 'X'.

APPEND ITEMX.

**************schedule lines doesn't effect or make error when post po

POSCHEDULE-PO_ITEM = 10 .

POSCHEDULE-SCHED_LINE = 1.

POSCHEDULE-DELIVERY_DATE = SY-DATUM .

POSCHEDULE-QUANTITY = 5 .

APPEND POSCHEDULE.

POSCHEDULE-PO_ITEM = 10 .

POSCHEDULE-SCHED_LINE = 2 .

POSCHEDULE-DELIVERY_DATE = SY-DATUM .

POSCHEDULE-QUANTITY = 15 .

APPEND POSCHEDULE.

POSCHEDULEX-PO_ITEM = 10 .

POSCHEDULEX-SCHED_LINE = 1.

POSCHEDULEX-DELIVERY_DATE = 'X' .

POSCHEDULEX-QUANTITY = 'X' .

APPEND POSCHEDULEX.

POSCHEDULEX-PO_ITEM = 10 .

POSCHEDULEX-SCHED_LINE = 2.

POSCHEDULEX-DELIVERY_DATE = 'X' .

POSCHEDULEX-QUANTITY = 'X' .

APPEND POSCHEDULEX.

CALL FUNCTION 'BAPI_PO_CREATE1'

EXPORTING

POHEADER = HEADER

POHEADERX = HEADERX

NO_PRICE_FROM_PO = 'X'

IMPORTING

EXPHEADER = EXPHEADER

TABLES

RETURN = RETURN

POITEM = ITEM

POITEMX = ITEMX

POSCHEDULE = POSCHEDULE

POSCHEDULEX = POSCHEDULEX

.

LOOP AT RETURN .

WRITE : / RETURN-TYPE,

RETURN-ID,

RETURN-NUMBER,

RETURN-MESSAGE.

CLEAR RETURN.

ENDLOOP.

IF NOT EXPHEADER IS INITIAL.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

ENDIF.

I am full of grateful for you can solve my problem . Thanks a lot!

Best regards.

Daniel fu 2006-08-27