DATA: MY_POHEADER LIKE BAPIMEPOHEADER,
MY_POHEADERX LIKE BAPIMEPOHEADERX,
MY_POITEM LIKE BAPIMEPOITEM Occurs 0 With header line,
MY_POITEMX LIKE BAPIMEPOITEMX Occurs 0 With header line,
MY_POSCHEDULE LIKE BAPIMEPOSCHEDULE Occurs 0 With header line,
MY_POSCHEDULEX LIKE BAPIMEPOSCHEDULX Occurs 0 With header line,
MY_POCOND LIKE BAPIMEPOCOND Occurs 0 With header line,
MY_POCONDX LIKE BAPIMEPOCONDX Occurs 0 With header line,
MY_POPARTER LIKE BAPIEKKOP Occurs 0 With header line,
MY_EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER,
MY_EXPHeader LIKE BAPIMEPOHEADER,
MY_Return LIKE BAPIRET2 Occurs 0 With header line.
*&--------------------------------------------------------------------*
MY_POHEADER-COMP_CODE = '1000'.
MY_POHEADER-DOC_TYPE = 'NB'.
MY_POHEADER-ITEM_INTVL = '00010'.
MY_POHEADER-VENDOR = '0000050026'.
MY_POHEADER-PMNTTRMS = 'GW04'.
MY_POHEADER-PURCH_ORG = 'ZX1'."'1100'.
MY_POHEADER-PUR_GROUP = '003'.
MY_POHEADER-CURRENCY = 'CNY'.
*&---------------------------------------------------------------------*
MY_POHEADERX-COMP_CODE = 'X'.
MY_POHEADERX-DOC_TYPE = 'X'.
MY_POHEADERX-ITEM_INTVL = 'X'.
MY_POHEADERX-VENDOR = 'X'.
MY_POHEADERX-PMNTTRMS = 'X'.
MY_POHEADERX-PURCH_ORG = 'X'.
MY_POHEADERX-PUR_GROUP = 'X'.
*&----------------------------------------------------------------------*
Clear MY_POITEM.
MY_POITEM-PO_ITEM = '00010'.
MY_POITEM-MATERIAL = 'SY00-ZZ01-003'."'000000000001101979'.
MY_POITEM-PLANT = 'SY00'."'1101'.
MY_POITEM-STGE_LOC = '1011'.
MY_POITEM-QUANTITY = 15.
*MY_POITEM-PO_UNIT = 'EA'.
APPEND MY_POITEM.
*&---------------------------------------------------------------------*
Clear MY_POITEMX.
MY_POITEMX-PO_ITEM = '00010'.
MY_POITEMX-MATERIAL = 'X'.
MY_POITEMX-PLANT = 'X'.
MY_POITEMX-STGE_LOC = 'X'.
MY_POITEMX-QUANTITY = 'X'.
APPEND MY_POITEMX.
*&---------------------------------------------------------------------*
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = MY_POHEADER
POHEADERX = MY_POHEADERX
IMPORTING
EXPPURCHASEORDER = MY_EXPPURCHASEORDER
TABLES
POITEM = MY_POITEM
POITEMX = MY_POITEMX
Return = MY_Return.
*&-------------------------------------------------------------------------*.
READ TABLE my_RETUrN WITH KEY TYPE = 'E'.
*
IF SY-SUBRC <> 0 ."AND NOT LV_MTDOC IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
* P_MBLNR = LV_MTDOC.
* PERFORM UPLOAD_100.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
.
* MESSAGE I003 WITH LT_RETUN-MESSAGE.
ENDIF.
*IF SY-SUBRC NE 0.
* Write '测试过程有问题'.
*ELSE.
Write: / MY_EXPPURCHASEORDER.
ULine.
Loop at My_Return.
Write: / MY_Return-Type,MY_Return-ID,MY_Return-NUMBER,MY_Return-Message,MY_Return-Log_No,
MY_Return-Log_Msg_No,MY_Return-Parameter,MY_Return-Row,MY_Return-Field,MY_Return-System.
EndLoop.
Uline.
*endif.
MY_POHEADERX LIKE BAPIMEPOHEADERX,
MY_POITEM LIKE BAPIMEPOITEM Occurs 0 With header line,
MY_POITEMX LIKE BAPIMEPOITEMX Occurs 0 With header line,
MY_POSCHEDULE LIKE BAPIMEPOSCHEDULE Occurs 0 With header line,
MY_POSCHEDULEX LIKE BAPIMEPOSCHEDULX Occurs 0 With header line,
MY_POCOND LIKE BAPIMEPOCOND Occurs 0 With header line,
MY_POCONDX LIKE BAPIMEPOCONDX Occurs 0 With header line,
MY_POPARTER LIKE BAPIEKKOP Occurs 0 With header line,
MY_EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER,
MY_EXPHeader LIKE BAPIMEPOHEADER,
MY_Return LIKE BAPIRET2 Occurs 0 With header line.
*&--------------------------------------------------------------------*
MY_POHEADER-COMP_CODE = '1000'.
MY_POHEADER-DOC_TYPE = 'NB'.
MY_POHEADER-ITEM_INTVL = '00010'.
MY_POHEADER-VENDOR = '0000050026'.
MY_POHEADER-PMNTTRMS = 'GW04'.
MY_POHEADER-PURCH_ORG = 'ZX1'."'1100'.
MY_POHEADER-PUR_GROUP = '003'.
MY_POHEADER-CURRENCY = 'CNY'.
*&---------------------------------------------------------------------*
MY_POHEADERX-COMP_CODE = 'X'.
MY_POHEADERX-DOC_TYPE = 'X'.
MY_POHEADERX-ITEM_INTVL = 'X'.
MY_POHEADERX-VENDOR = 'X'.
MY_POHEADERX-PMNTTRMS = 'X'.
MY_POHEADERX-PURCH_ORG = 'X'.
MY_POHEADERX-PUR_GROUP = 'X'.
*&----------------------------------------------------------------------*
Clear MY_POITEM.
MY_POITEM-PO_ITEM = '00010'.
MY_POITEM-MATERIAL = 'SY00-ZZ01-003'."'000000000001101979'.
MY_POITEM-PLANT = 'SY00'."'1101'.
MY_POITEM-STGE_LOC = '1011'.
MY_POITEM-QUANTITY = 15.
*MY_POITEM-PO_UNIT = 'EA'.
APPEND MY_POITEM.
*&---------------------------------------------------------------------*
Clear MY_POITEMX.
MY_POITEMX-PO_ITEM = '00010'.
MY_POITEMX-MATERIAL = 'X'.
MY_POITEMX-PLANT = 'X'.
MY_POITEMX-STGE_LOC = 'X'.
MY_POITEMX-QUANTITY = 'X'.
APPEND MY_POITEMX.
*&---------------------------------------------------------------------*
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = MY_POHEADER
POHEADERX = MY_POHEADERX
IMPORTING
EXPPURCHASEORDER = MY_EXPPURCHASEORDER
TABLES
POITEM = MY_POITEM
POITEMX = MY_POITEMX
Return = MY_Return.
*&-------------------------------------------------------------------------*.
READ TABLE my_RETUrN WITH KEY TYPE = 'E'.
*
IF SY-SUBRC <> 0 ."AND NOT LV_MTDOC IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
* P_MBLNR = LV_MTDOC.
* PERFORM UPLOAD_100.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
.
* MESSAGE I003 WITH LT_RETUN-MESSAGE.
ENDIF.
*IF SY-SUBRC NE 0.
* Write '测试过程有问题'.
*ELSE.
Write: / MY_EXPPURCHASEORDER.
ULine.
Loop at My_Return.
Write: / MY_Return-Type,MY_Return-ID,MY_Return-NUMBER,MY_Return-Message,MY_Return-Log_No,
MY_Return-Log_Msg_No,MY_Return-Parameter,MY_Return-Row,MY_Return-Field,MY_Return-System.
EndLoop.
Uline.
*endif.