0
点赞
收藏
分享

微信扫一扫

创建外向交货单BAPI_OUTB_DELIVERY…

柠檬果然酸 2022-06-13 阅读 58

REPORT  

zlm_test_024.

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.


举报

相关推荐

0 条评论