用BAPI複製SAP銷售訂單
最近在研究BAPI
發現有個Function可以達到引用參考的功能
就是
CALL FUNCTION 'BAPI_SALESDOCUMENT_COPY'
EXPORTING
salesdocument = VBELN
documenttype = 'ZRX' "==訂單類型
IMPORTING
SALESDOCUMENT_EX = VBELN_O
TABLES
RETURN = I_RET.
執行後要馬上執行COMMIT WORK才會生效
否則該訂單會佔用一個號碼但va03會無法顯示該訂單
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = I_RET.
但仍然有些表頭的部份需要更改=
『比方說有些是預設需要人工輸入的』如該訂單有效截止日
要先用VBAK讀出該舊訂單相關資料後
再用BAPI_SALESORDER_CHANGE寫回去新訂單
比方說該訂單有效日期是預設人工輸入的
header-updateflag = 'U'.
HEADER-QT_VALID_T = 'X'.
header_v-QT_VALID_T = '20100501'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = VBALN_O
ORDER_HEADER_IN = header_v
ORDER_HEADER_INX = header
BEHAVE_WHEN_ERROR = space
TABLES
RETURN = I_RET.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = I_RET.
該BAPI_SALESORDER_CHANGE能夠更改訂單交易上的任何一個欄位資料
從表頭到項目以及條件價格都可以透過這邊來更改