1. 程式人生 > >使用BAPISDORDER_GETDETAILEDLIST建立S/4HANA的Outbound Delivery

使用BAPISDORDER_GETDETAILEDLIST建立S/4HANA的Outbound Delivery

要在S/4HANA裡建立Outbound Delivery,首先要具有一個銷售訂單,ID為376,通過事務碼VA03檢視。

 

只用61行程式碼就能實現基於這個Sales Order去建立對應的outbound delivery:

 
REPORT zcreate_dn.

DATA:lv_ship_point        TYPE          bapidlvcreateheader-ship_point VALUE '0001',
     lv_due_date          TYPE datum VALUE '20181205'
, lv_delivery TYPE bapishpdelivnumb-deliv_numb, lt_so_items LIKE TABLE OF bapidlvreftosalesorder, ls_so_items LIKE LINE OF lt_so_items, lt_return TYPE TABLE OF bapiret2, ls_read TYPE order_view, lt_item TYPE TABLE OF bapisdit, lt_order_headers_out TYPE TABLE OF bapisdhd, lt_header TYPE TABLE OF sales_key, lt_bapisdtehd TYPE TABLE OF bapisdtehd, lt_bapitextli TYPE TABLE OF bapitextli, lt_bapiret2 LIKE bapiret2 OCCURS 0 WITH HEADER LINE. APPEND INITIAL LINE TO lt_header ASSIGNING FIELD-SYMBOL(<header>). ls_read-item = 'X'
. <header>-vbeln = '0000000376'. CALL FUNCTION 'BAPISDORDER_GETDETAILEDLIST' EXPORTING i_bapi_view = ls_read TABLES sales_documents = lt_header order_items_out = lt_item. LOOP AT lt_item ASSIGNING FIELD-SYMBOL(<item>). APPEND INITIAL LINE TO lt_so_items ASSIGNING FIELD-SYMBOL(<fill>). <fill>-ref_doc = <item>-doc_number. <fill>-ref_item = <item>-itm_number. <fill>-dlv_qty = <item>-req_qty. <fill>-sales_unit = 'EA'
. ENDLOOP. CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS' EXPORTING ship_point = lv_ship_point due_date = lv_due_date IMPORTING delivery = lv_delivery TABLES sales_order_items = lt_so_items return = lt_return. LOOP AT lt_return ASSIGNING FIELD-SYMBOL(<return>). WRITE:/ | Type: { <return>-type }: { <return>-message } | COLOR COL_NEGATIVE. ENDLOOP. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X' IMPORTING return = lt_bapiret2. LOOP AT lt_bapiret2 ASSIGNING <return>. WRITE:/ 'Message:', <return>-message COLOR COL_POSITIVE. ENDLOOP.

思路就是首先用函式BAPISDORDER_GETDETAILEDLIST把銷售訂單的行專案明細讀取出來,然後用BAPI_OUTB_DELIVERY_CREATE_SLS進行outbound delivery的建立。

執行report,顯示Outbound Delivery 80000205成功建立:

 

使用事務碼VL03N檢視:

 

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":