BAPI_SALESORDER_CREATEFROMDAT2提供参数无成本中心字段,所以需要用扩展字段实现。
BAPE_VBAK:
BAPE_VBAKX
VBAKKOZ
VBAKKOZX
封装扩展结构:
DATA:
LS_EXTENSION TYPE BAPIPAREX,
LT_EXTENSION TYPE TABLE OF BAPIPAREX.
DATA: LS_BAPE_VBAK TYPE BAPE_VBAK,
LS_BAPE_VBAKX TYPE BAPE_VBAKX.
CLEAR LS_BAPE_VBAK .
CLEAR LS_BAPE_VBAKX .
LS_BAPE_VBAK-KOSTL = LS_TEMP-KOSTL .
LS_BAPE_VBAKX-KOSTL = 'X' .
LS_EXTENSION-STRUCTURE = 'BAPE_VBAK' .
LS_EXTENSION+30 = LS_BAPE_VBAK .
APPEND LS_EXTENSION TO LT_EXTENSION .
LS_EXTENSION-STRUCTURE = 'BAPE_VBAKX' .
LS_EXTENSION+30 = LS_BAPE_VBAKX .
APPEND LS_EXTENSION TO LT_EXTENSION .
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
ORDER_HEADER_IN = LS_HEADER_IN
LOGIC_SWITCH = LS_LOGIC_SWITCH
" order_header_inx = ls_header_inx
TESTRUN = LV_TESTRUN
IMPORTING
SALESDOCUMENT = LV_VBELN
TABLES
RETURN = LT_RETURN
ORDER_ITEMS_IN = LT_ITEMS_IN
" order_items_inx = lt_items_inx
ORDER_PARTNERS = LT_PARTNERS
ORDER_SCHEDULES_IN = LT_SCHEDULES_IN
ORDER_CONDITIONS_IN = LT_CONDITION
* ORDER_CONDITIONS_INX = LT_CONDITIONX
EXTENSIONIN = LT_EXTENSION
ORDER_TEXT = LT_TEXT.