REPORT zz_test_create_sls.
PARAMETERS: vbeln LIKE vbak-vbeln OBLIGATORY MEMORY ID aun.
DATA: lf_vbeln TYPE vbeln_vl,
lf_num TYPE vbnum,
ls_deli TYPE bapishpdelivnumb,
lt_deli TYPE TABLE OF bapishpdelivnumb,
lt_order TYPE TABLE OF bapidlvreftosalesorder,
ls_order TYPE bapidlvreftosalesorder,
ls_itm TYPE bapidlvitemcreated,
lt_itm TYPE TABLE OF bapidlvitemcreated,
ls_ext TYPE bapiparex,
lt_extin TYPE TABLE OF bapiparex,
lt_extout TYPE TABLE OF bapiparex,
ls_ret TYPE bapiret2,
lt_return TYPE TABLE OF bapiret2.
TYPES:BEGIN OF ty_vbap,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
kwmeng LIKE vbap-kwmeng,
meins LIKE vbap-meins,
END OF ty_vbap.
DATA:it_vbap TYPE TABLE OF ty_vbap.
DATA:ws_vbap TYPE ty_vbap.
* SalesOrderItems (here: complete sales order)
SELECT vbeln posnr kwmeng meins INTO TABLE it_vbap FROM vbap WHERE vbeln = vbeln.
LOOP AT it_vbap INTO ws_vbap.
ls_order-ref_doc = ws_vbap-vbeln.
ls_order-ref_item = ws_vbap-posnr.
ls_order-dlv_qty = ws_vbap-kwmeng.
ls_order-sales_unit = ws_vbap-meins.
APPEND ls_order TO lt_order.
ENDLOOP.
*ls_order-ref_doc = vbeln.
*append ls_order to lt_order.
* ExtensionIn
ls_ext = 'My additional input'.
APPEND ls_ext TO lt_extin.
* Synchronous RFC
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
* DESTINATION logsys
* EXPORTING
* SHIP_POINT =
* DUE_DATE =
* DEBUG_FLG =
IMPORTING
delivery = lf_vbeln
num_deliveries = lf_num
TABLES
sales_order_items = lt_order
extension_in = lt_extin
deliveries = lt_deli
created_items = lt_itm
extension_out = lt_extout
return = lt_return
.
WRITE: / 'Delivery:', lf_vbeln,
/ 'NumDeliveries:', lf_num,
/ 'Deliveries:'.
LOOP AT lt_deli INTO ls_deli.
WRITE ls_deli-deliv_numb.
ENDLOOP.
IF NOT lt_itm[] IS INITIAL.
WRITE: / 'CreatedItems:'.
LOOP AT lt_itm INTO ls_itm.
WRITE: / ls_itm-ref_doc,
ls_itm-ref_item,
ls_itm-deliv_numb,
ls_itm-deliv_item,
ls_itm-material,
ls_itm-dlv_qty,
ls_itm-sales_unit,
ls_itm-sales_unit_iso.
ENDLOOP.
ENDIF.
IF NOT lt_return[] IS INITIAL.
WRITE: / 'Return:'.
LOOP AT lt_return INTO ls_ret.
WRITE: / ls_ret-type, ls_ret-id, ls_ret-number,
ls_ret-message,
/.
ENDLOOP.
ENDIF.
IF NOT lt_extout[] IS INITIAL.
WRITE: / 'ExtensionOut:'.
LOOP AT lt_extout INTO ls_ext.
WRITE: / ls_ext.
ENDLOOP.
ENDIF.
* COMMIT WORK
IF NOT lf_vbeln IS INITIAL.
COMMIT WORK.
ENDIF.
阅读(10143) | 评论(0) | 转发(0) |