*&---------------------------------------------------------------------*
*& Report YTEST7
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ytest7.
DATA:ls_order_header_in TYPE bapisdhd1,
lt_order_partners TYPE TABLE OF bapiparnr,
lt_order_items_in TYPE TABLE OF bapisditm,
lt_order_items_sched TYPE TABLE OF bapischdl,
lt_return TYPE TABLE OF bapiret2,
ls_return TYPE bapiret2.
DATA:lv_vbeln TYPE bapivbeln-vbeln.
CLEAR:ls_order_header_in.
ls_order_header_in = VALUE #( doc_type = 'TA' "订单类型
sales_org = '1100' "销售组织
distr_chan = '10' "分销渠道
division = '00' "产品组
).
REFRESH:lt_order_partners.
lt_order_partners = VALUE #( ( partn_role = 'AG' "合作伙伴职能
partn_numb = '0000100010' "合作伙伴编号
)
( partn_role = 'WE'
partn_numb = '0000100010'
) ).
REFRESH:lt_order_items_in.
lt_order_items_in = VALUE #( ( itm_number = '000010' "行项目
material = '000000021901000010' "物料编号
) ).
REFRESH:lt_order_items_sched.
lt_order_items_sched = VALUE #( ( itm_number = '000010' "行项目
req_qty = '1' "数量
) ).
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = ls_order_header_in
testrun = ''
IMPORTING
salesdocument = lv_vbeln
TABLES
return = lt_return
lt_order_items_in = lt_order_items_in
lt_order_partners = lt_order_partners
order_schedules_in = lt_order_items_sched.
LOOP AT lt_return ASSIGNING FIELD-SYMBOL(<fs_return>) WHERE type CA 'EAX'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.