使用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查看:

相关文章
|
7月前
|
负载均衡 前端开发 网络协议
使用 Azure SNAT 为 SAP Commerce Cloud 的 outbound connection 进行端口映射
使用 Azure SNAT 为 SAP Commerce Cloud 的 outbound connection 进行端口映射
30 0
SAP WM 高阶之2-Step Picking for Outbound Delivery
SAP WM 高阶之2-Step Picking for Outbound Delivery
SAP WM 高阶之2-Step Picking for Outbound Delivery
SAP MM 如何看一个Inbound Delivery单据相关的IDoc?
SAP MM 如何看一个Inbound Delivery单据相关的IDoc?
SAP MM 如何看一个Inbound Delivery单据相关的IDoc?
使用BAPISDORDER_GETDETAILEDLIST创建S/4HANA的Outbound Delivery
要在S/4HANA里创建Outbound Delivery,首先要具有一个销售订单,ID为376,通过事务码VA03查看。
一段在SAP C4C里触发S4HANA outbound Delivery的ABSL代码
一段在SAP C4C里触发S4HANA outbound Delivery的ABSL代码
OData Console in C4C and Gateway Client in CRM Fiori
C4C Work center Administrator-&gt;OData service explorer:
169 0
OData Console in C4C and Gateway Client in CRM Fiori
使用SAP云平台的destination消费Internet上的OData service
使用SAP云平台的destination消费Internet上的OData service
115 0
使用SAP云平台的destination消费Internet上的OData service
使用S/4HANA里的Smart Business消费通过CDS view暴露的OData服务
In my previous blog Build Chart and Table representation via Analytics Path Framework
使用S/4HANA里的Smart Business消费通过CDS view暴露的OData服务
|
中间件
使用SAP CRM中间件从ERP下载Customer的错误消息:Distribution channel is not allowed for sales organization
使用SAP CRM中间件从ERP下载Customer的错误消息:Distribution channel is not allowed for sales organization
136 0
使用SAP CRM中间件从ERP下载Customer的错误消息:Distribution channel is not allowed for sales organization
使用SAP XIF Adapter发送IDoc数据
使用SAP XIF Adapter发送IDoc数据
112 0
使用SAP XIF Adapter发送IDoc数据