SD--根据订单创建出库单(相关的函数列表的介绍系列篇(2))

本文提供了一个使用ABAP编程语言创建出库单的示例代码。该代码通过调用BAPI_OUTB_DELIVERY_CREATE_SLS和WS_DELIVERY_UPDATE函数模块,实现了从销售订单创建出库单的功能。

创建订单样例代码参见:http://blog.youkuaiyun.com/CompassButton/archive/2007/05/09/1601712.aspx 

可以根据一个订单或者部分订单项来创建出库单,代码如下:
* Populating the item data
lx_sales_item-ref_doc = l_vbeln.
lx_sales_item-ref_item = c_000010.
lx_sales_item-dlv_qty = fp_l_quantity.
lx_sales_item-sales_unit = fp_afpo-meins.

APPEND lx_sales_item TO li_sales_item.

* Function Module to create delivery
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
EXPORTING
ship_point = l_vstel
IMPORTING
delivery = fp_l_delivery
TABLES
sales_order_items = li_sales_item
return = li_return1.

IF fp_l_delivery IS INITIAL.
* Error message Delivery not created
MESSAGE e049
ENDIF.

lx_vbkok-vbeln_vl = fp_l_delivery.
lx_vbkok-vbtyp_vl = c_vbtype_j .
lx_vbkok-vbeln = fp_l_delivery.
lx_vbkok-wabuc = c_wabuc_x.

lx_vbpok-vbeln_vl = fp_l_delivery.
lx_vbpok-posnr_vl = c_posnr.
lx_vbpok-vbeln = fp_l_delivery.
lx_vbpok-posnn = c_posnr.
lx_vbpok-matnr = fp_afpo-matnr.
lx_vbpok-charg = fp_afpo-charg.
lx_vbpok-werks = fp_afpo-dwerk.
lx_vbpok-taqui = c_wabuc_x.
lx_vbpok-pikmg = fp_l_quantity.
APPEND lx_vbpok TO li_vbpok.

* Clearing the implicit lock that mb_create_goods_mvt has. That
* prevents it from bieng called more then once within same LUW.
PERFORM clear_xcommit IN PROGRAM saplmbwl.

* FM to perform picking,confirmation W-M status and PGI.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
vbkok_wa = lx_vbkok
synchron = c_xfeld_x
delivery = fp_l_delivery
update_picking = c_xfeld_x
nicht_sperren = c_no_sp_x
if_database_update = c_data_1
if_error_messages_send_0 = c_xfeld_x
TABLES
vbpok_tab = li_vbpok
prot = li_prott.
* Checking if any error in PGI
READ TABLE li_prott WITH KEY MSGTY = c_e TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
MESSAGE e046 WITH fp_l_delivery.
ENDIF.
READ TABLE li_prott WITH KEY MSGTY = c_a TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
MESSAGE e046 WITH fp_l_delivery.
ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值