Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1346621
  • 博文数量: 932
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 10208
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-08 12:28
文章分类

全部博文(932)

文章存档

2021年(1)

2020年(134)

2019年(792)

2018年(5)

我的朋友

分类: 架构设计与优化

2019-05-05 10:11:52

要在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(
). ls_read-item = 'X'.
-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(). APPEND INITIAL LINE TO lt_so_items ASSIGNING FIELD-SYMBOL(). -ref_doc = -doc_number. -ref_item = -itm_number. -dlv_qty = -req_qty. -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的原创文章,请关注公众号"汪子熙":

阅读(780) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~