使用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的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2284625/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用函式BAPISDORDER_GETDETAILEDLIST讀取S/4HANA中Sales Order行專案資料函式APIAI
- 使用ABAP程式碼建立S/4HANA裡的Sales Order
- 一段在C4C裡觸發S4HANA outbound Delivery的ABSL程式碼
- Output Type SPER Delete Inbound Delivery After We Reverse PGI for STO' outbounddelete
- 使用 csv 匯入的方式在 SAP S/4HANA 裡建立 employee 資料
- S/4HANA服務訂單Service Order的批量建立
- 為什麼S/4HANA的銷售訂單建立會觸發生產訂單的建立
- SAP S/4HANA銷售訂單建立時,會自動觸發生產訂單的建立
- SAP S/4HANA擴充套件欄位建立過程的單步除錯套件除錯
- 為什麼S/4HANA的生產訂單建立後會自動release
- SAP S/4HANA生產訂單建立時使用的工廠資料是從什麼地方帶出來的
- SAP S/4HANA使用ABAP獲得生產訂單的狀態
- 給某個 SAP S/4HANA 使用者分配 Business Role
- S/4HANA中的銷售計劃管理
- SAP HANA,S/4HANA 和 SAP BTP 的辨析
- SAP S/4HANA中的採購簡化
- 使用ABAP程式碼返回S/4HANA Material上維護的Attachment明細
- SAP S/4HANA裡如何建立Customer主資料以及執行後續處理
- 如何使用Key User Tool擴充套件SAP S/4HANA Fiori UI套件UI
- 如何在 SAP BTP 上使用 Integration Suite 消費 S/4HANA Cloud APIUICloudAPI
- SAP S/4HANA key user tool extensibility原理
- SAP S/4HANA 2020安裝實錄
- SAP S/4HANA OData Mock Service 介紹Mock
- 打通C/4HANA和S/4HANA的一個原型開發:智慧服務創新案例原型
- SAP S/4HANA Cross Selling機制介紹ROS
- SAP S/4HANA Cloud SDK 入門介紹Cloud
- Output type SPED trigger inbound delivery after PGI for inter-company STO's outb
- S/4HANA for Customer Management裡的搜尋分頁處理
- SAP S/4HANA系統上所有可以用來建立擴充套件欄位的業務上下文套件
- 使用 Azure SNAT 為 SAP Commerce Cloud 的 outbound connection 進行埠對映Cloud
- SAP S/4HANA extensibility擴充套件原理介紹套件
- SAP Cloud for Customer 如何直接消費S/4HANA APICloudAPI
- SAP S/4HANA Material Fiori應用的搜尋實現原理
- SAP S/4HANA裡extension include view和extension view的區別View
- SAP S/4HANA Customer Management(CRM)模組的Partner模型設計模型
- 哲訊分享:你不知道的SAP S/4HANA Cloud功能!Cloud
- SAP S/4HANA New Simplified Data Model (NSDM) 模型介紹模型
- Generate Distribution Model from SAP ERP to SAP EWM in SAP S/4Hana