DATA:LT_RESULT LIKE TABLE OF TYP_RESULT .
DATA:LS_RESULT LIKE TYP_RESULT .
DATA:
LS_RETURN LIKE BAPIRET2,
LS_POITEM LIKE BAPIMEPOITEM,
LS_POITEMX LIKE BAPIMEPOITEMX ,
LT_RETURN LIKE TABLE OF BAPIRET2,
LT_POITEM LIKE TABLE OF BAPIMEPOITEM,
LT_POITEMX LIKE TABLE OF BAPIMEPOITEMX .
DATA:
LT_POCOND LIKE TABLE OF BAPIMEPOCOND ,
LS_POCOND LIKE BAPIMEPOCOND ,
LT_POCONDX LIKE TABLE OF BAPIMEPOCONDX ,
LS_POCONDX LIKE BAPIMEPOCONDX .
DATA:LV_MESSA TYPE STRING ,
LV_ALL_MESSA TYPE STRING .
DATA:LV_FLAG TYPE CHAR01 .
CLEAR:LT_POITEMX,LT_POITEM .
CLEAR:LT_POCOND ,LT_POCONDX .
CLEAR: LS_POITEM ,LS_POITEMX .
LS_POITEM-PO_ITEM = GS_RESULT-EBELP.
LS_POITEM-NET_PRICE = GS_RESULT-NEWPR * gs_result-menge / gs_result-PEINH.
APPEND LS_POITEM TO LT_POITEM.
LS_POITEMX-PO_ITEM = GS_RESULT-EBELP.
LS_POITEMX-NET_PRICE = 'X'.
APPEND LS_POITEMX TO LT_POITEMX.
CLEAR: LS_POCOND,LS_POCONDX .
LS_POCOND-ITM_NUMBER = GS_RESULT-EBELP ..
LS_POCOND-COND_TYPE = 'PB00' .
LS_POCOND-COND_VALUE = GS_RESULT-NEWPR * gs_result-menge / gs_result-PEINH .
LS_POCOND-CURRENCY = GS_RESULT-WAERS .
LS_POCOND-CHANGE_ID = 'U' ." (I -> insert), changed (U -> update), or deleted (D -> delete)
APPEND LS_POCOND TO LT_POCOND .
LS_POCONDX-ITM_NUMBER = GS_RESULT-EBELP .
LS_POCONDX-COND_TYPE = 'X' .
LS_POCONDX-COND_VALUE = 'X' .
LS_POCONDX-CURRENCY = 'X'.
LS_POCONDX-CHANGE_ID = 'X' ." (I -> insert), changed (U -> update), or deleted (D -> delete)
APPEND LS_POCONDX TO LT_POCONDX .
CLEAR LV_FLAG .
CLEAR LV_ALL_MESSA .
CLEAR LV_MESSA .
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
PURCHASEORDER = LS_RESULT-EBELN
* POHEADER =
* POHEADERX =
* POADDRVENDOR =
* TESTRUN =
* MEMORY_UNCOMPLETE =
* MEMORY_COMPLETE =
* POEXPIMPHEADER =
* POEXPIMPHEADERX =
* VERSIONS =
* NO_MESSAGING =
* NO_MESSAGE_REQ =
* NO_AUTHORITY =
* NO_PRICE_FROM_PO =
* PARK_UNCOMPLETE =
* PARK_COMPLETE =
* IMPORTING
* EXPHEADER =
* EXPPOEXPIMPHEADER =
TABLES
RETURN = LT_RETURN
* POITEM = LT_POITEM
* POITEMX = LT_POITEMX
* POADDRDELIVERY =
* POSCHEDULE =
* POSCHEDULEX =
* POACCOUNT =
* POACCOUNTPROFITSEGMENT =
* POACCOUNTX =
* POCONDHEADER =
* POCONDHEADERX =
POCOND = LT_POCOND
POCONDX = LT_POCONDX
* POLIMITS =
* POCONTRACTLIMITS =
* POSERVICES =
* POSRVACCESSVALUES =
* POSERVICESTEXT =
* EXTENSIONIN =
* EXTENSIONOUT =
* POEXPIMPITEM =
* POEXPIMPITEMX =
* POTEXTHEADER =
* POTEXTITEM =
* ALLVERSIONS =
* POPARTNER =
* POCOMPONENTS =
* POCOMPONENTSX =
* POSHIPPING =
* POSHIPPINGX =
* POSHIPPINGEXP =
* POHISTORY =
* POHISTORY_TOTALS =
* POCONFIRMATION =
* SERIALNUMBER =
* SERIALNUMBERX =
* INVPLANHEADER =
* INVPLANHEADERX =
* INVPLANITEM =
* INVPLANITEMX =
* POHISTORY_MA =
.
LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE CA 'EAX' .
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = LS_RETURN-ID
MSGNR = LS_RETURN-TYPE
MSGV1 = LS_RETURN-MESSAGE_V1
MSGV2 = LS_RETURN-MESSAGE_V2
MSGV3 = LS_RETURN-MESSAGE_V3
MSGV4 = LS_RETURN-MESSAGE_V4
IMPORTING
MESSAGE_TEXT_OUTPUT = LV_MESSA.
CONCATENATE LV_ALL_MESSA LV_MESSA INTO LV_ALL_MESSA SEPARATED BY '/' .
LV_FLAG = 'X' .
ENDLOOP .
IF LV_FLAG IS INITIAL .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
.
LOOP AT GT_RESULT INTO GS_RESULT WHERE EBELN = LS_RESULT-EBELN AND ZCHECK = 'X' .
GS_RESULT-ZFLAG = ICON_GREEN_LIGHT .
GS_RESULT-MESSAGE = '操作成功' .
MODIFY GT_RESULT FROM GS_RESULT .
ENDLOOP .
ELSE .
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
* IMPORTING
* RETURN =
ENDIF .