Create outbound delivery
2011-04-24 14:26:59| 分类:
BAPI
| 标签:
|举报
|字号大中小 订阅
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.
*---ExtensionIn
ls_ext = 'My additional input'.
append ls_ext to lt_extin.
*---Synchronous RFC
call function 'BAPI_OUTB_DELIVERY_CREATE_SLS'
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.
评论这张
转发至微博
转发至微博
评论