1. 参考采购订单创建DN :

BAPI_OUTB_DELIVERY_CREATE_STO
FUNCTION zmmfm0202.
*"----------------------------------------------------------------------
*"*"本地接口:
*" EXPORTING
*" REFERENCE(O_RETURN) TYPE ZMMS0021
*" TABLES
*" IT_ITEM STRUCTURE ZMMS0185
*"----------------------------------------------------------------------
DATA:lt_stock_items TYPE TABLE OF bapidlvreftosto.
DATA:ls_stock_items TYPE bapidlvreftosto.
DATA:lt_created_items TYPE TABLE OF bapidlvitemcreated.
DATA:ls_created_items TYPE bapidlvitemcreated.
DATA:lv_delivery TYPE bapishpdelivnumb-deliv_numb.
DATA:lv_vstel TYPE vstel.
DATA:lv_ledat TYPE ledat.
DATA:lt_return TYPE TABLE OF bapiret2. LOOP AT it_item INTO DATA(ls_item).
ls_stock_items-ref_doc = ls_item-ebeln."参考凭证
ls_stock_items-ref_item = ls_item-ebelp."参考项
ls_stock_items-dlv_qty = ls_item-menge."数量
ls_stock_items-sales_unit = ls_item-meins."数量单位
APPEND ls_stock_items TO lt_stock_items. ls_created_items-ref_doc = ls_item-ebeln."参考凭证
ls_created_items-ref_item = ls_item-ebelp."参考项
ls_created_items-material = ls_item-matnr."物料编号
ls_created_items-material_long = ls_item-matnr."物料编号
ls_created_items-dlv_qty = ls_item-menge."数量
ls_created_items-sales_unit = ls_item-meins."数量单位
APPEND ls_created_items TO lt_created_items.
ENDLOOP. CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_STO'
EXPORTING
ship_point = lv_vstel
due_date = lv_ledat
IMPORTING
delivery = lv_delivery
TABLES
stock_trans_items = lt_stock_items
created_items = lt_created_items
return = lt_return. DELETE lt_return WHERE type = 'E' AND id = 'BAPI' AND number = ''. "20190628 需求
READ TABLE lt_return INTO DATA(ls_return) WITH KEY id = 'VLBAPI'
number = ''
type = 'I'.
IF sy-subrc = .
o_return-message = ls_return-message. "创建失败
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. o_return-type = 'E'.
CONCATENATE '交货单创建失败:' o_return-message INTO o_return-message.
ELSE.
LOOP AT lt_return INTO ls_return WHERE type = 'E'.
CONCATENATE o_return-message ls_return-message INTO o_return-message SEPARATED BY '/'.
ENDLOOP. IF sy-subrc = . "创建失败
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. o_return-type = 'E'.
CONCATENATE '交货单创建失败:' o_return-message INTO o_return-message. ELSE.
"创建成功
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'. o_return-zdjh = lv_delivery."交货单
o_return-type = 'S'.
o_return-message = '交货单创建成功'. ENDIF.
ENDIF.
ENDFUNCTION.

2. 参考销售订单创建DN :

BAPI_OUTB_DELIVERY_CREATE_SLS
FUNCTION zsdfm0032.
*"----------------------------------------------------------------------
*"*"本地接口:
*" EXPORTING
*" REFERENCE(O_RETURN) TYPE ZMMS0021
*" TABLES
*" IT_ITEM STRUCTURE ZSDS0011
*"----------------------------------------------------------------------
***********************************************
* Program : 参考SO创建DN 控制到行项目数量
*******************************************************************
* Modified Recorder :
* Date C#NO Author Content
* ----------- ------- ------------------ ---------------
* 修改日期 修改产生请求 修改人 修改内容描述
********************************************************************
DATA:lv_delivery TYPE bapishpdelivnumb-deliv_numb,
lv_num TYPE bapidlvcreateheader-num_deliveries.
DATA:lv_vstel TYPE vstel.
DATA:lv_ledat TYPE ledat.
DATA:lt_return TYPE TABLE OF bapiret2. DATA:lv_shippoint TYPE bapidlvcreateheader-ship_point,
lv_duedate TYPE bapidlvcreateheader-due_date.
DATA:lt_so_items LIKE TABLE OF bapidlvreftosalesorder,
ls_so_items LIKE bapidlvreftosalesorder. LOOP AT it_item INTO DATA(ls_item).
ls_so_items-ref_doc = ls_item-vbeln."参考凭证
ls_so_items-ref_item = ls_item-posnr."参考项
ls_so_items-dlv_qty = ls_item-menge."数量
ls_so_items-sales_unit = ls_item-meins."数量单位
APPEND ls_so_items TO lt_so_items.
CLEAR:ls_so_items. IF lv_vstel IS INITIAL.
SELECT SINGLE vstel INTO lv_vstel
FROM vbap
WHERE vbeln = ls_item-vbeln
AND posnr = ls_item-posnr.
ENDIF.
ENDLOOP. lv_shippoint = lv_vstel.
*---Call BAPI Function
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
EXPORTING
ship_point = lv_shippoint
due_date = sy-datum
IMPORTING
delivery = lv_delivery
num_deliveries = lv_num
TABLES
sales_order_items = lt_so_items
return = lt_return. LOOP AT lt_return INTO DATA(ls_return) WHERE type = 'A'
OR type = 'E'
OR type = 'X'.
o_return-type ='E'.
CONCATENATE o_return-message ls_return-message INTO o_return-message SEPARATED BY '/'.
EXIT.
ENDLOOP. IF o_return-type ='E'.
"创建失败
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE '交货单创建失败:' o_return-message INTO o_return-message.
ELSE.
"创建成功
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
o_return-zdjh = lv_delivery."交货单
o_return-type = 'S'.
o_return-message = '交货单创建成功'.
ENDIF. ENDFUNCTION.
 

DN创建的更多相关文章

  1. 参照UB单创建DN并过账

    *&---------------------------------------------------------------------* *& Form FRM_DN_POST ...

  2. 数据分析与展示——NumPy数据存取与函数

    NumPy库入门 NumPy数据存取和函数 数据的CSV文件存取 CSV文件 CSV(Comma-Separated Value,逗号分隔值)是一种常见的文件格式,用来存储批量数据. np.savet ...

  3. python 数据分析工具之 numpy pandas matplotlib

    作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...

  4. 图的封装(C++)

    一. 问题说明 1.问题的简单描述 将图和网的的创建和基本操作分封装到class 用来熟悉此种数据结构和基于这种数据结构上的基本算法 采用VS2010编译环境 2.工作安排 二. 源代码 1.文件st ...

  5. python数据分析及展示(一)

    一.IDE选择 Anaconda软件:开源免费,https://www.anaconda.com下载,根据系统进行安装.由于下载速度慢,可以去清华大学开源软件镜像站下载. Spyder软件设置:Too ...

  6. np.random的随机数函数

    np.random的随机数函数(1) 函数 说明 rand(d0,d1,..,dn) 根据d0‐dn创建随机数数组,浮点数, [0,1),均匀分布 randn(d0,d1,..,dn) 根据d0‐dn ...

  7. postgres表空间、模式、表和用户/角色之间的关系

    一. 角色(role)和用户(user)   1. role      postgres=# create role kanon password 'kanon';         #使用role创建 ...

  8. Oracle数据库---序列、索引、同义词

    --创建序列create sequence deptno_seqstart with 50increment by 10maxvalue 70cache 3; --为了方便演示,创建了一个和dept表 ...

  9. SAP翔子_ABAP_DEMO篇索引

    序号 描述 SAP翔子_ABAP_DEMO篇1 ABAP DEMO篇1 单层反查BOM SAP翔子_ABAP_DEMO篇2 ABAP DEMO篇2 删除工艺路线 SAP翔子_ABAP_DEMO篇3 A ...

随机推荐

  1. Using Microsoft Visual C++ DLLs with C++Builder

    Using Microsoft Visual C++ DLLs with C++Builder As powerful as C++Builder is, the majority of DLLs d ...

  2. C++——构造和析构函数

    现在学习进入第三阶段,对c++要有更深入的学习,关于构造函数和析构函数这一块需要总结一下,来深刻理解这两个函数的意义. 什么是构造函数和析构函数呢呢?听着就很高大上,但是要从心里藐视它.就像自然万物有 ...

  3. Jenkins构建自动化--实例一

    1.新建任务 2.配置任务 3.构建任务 5.构建完成后,可以点击任务名称查看结果

  4. 一、XML DOM、XMLDocument

    一.XML DOM概述 XML 文档大小写敏感.属性用引号括起来,每一个标记都要闭合. DOM是XML文档的内存中树状的表示形式. 继承关系图: XmlNode;//XML节点 ......XmlDo ...

  5. Git----常见工作管理总结

    1.工作流程模式: 首先,可以试图用git push origin branch-name推送自己的修改 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并 如果合并有冲突, ...

  6. 洛谷P1006 传纸条(多维DP)

    小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mm行nn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们 ...

  7. luogu 1712

    按区间长度降序排序维护区间指针 [l, r],第 l ~ r 条线段 表示当前区间可以满足条件那么 r 后移一定不是更优的因此 l 前移,使得 r 后移过程中取最小值更新 answer #includ ...

  8. Windows10+Jupyter notebook+添加核

    链接:https://blog.csdn.net/ZWX2445205419/article/details/80113472 1. 安装Anaconda   2. 创建虚拟环境   > con ...

  9. redis配置数据持久化---APPEND ONLY MODE

    Redis配置数据持久化---APPEND ONLY MODE 2016年04月01日 19:05:11 阅读数:9918 Redis可以实现数据的持久化存储,即将数据保存到磁盘上. Redis的持久 ...

  10. PowerShell中汉字与ASCII码相互转换

    function asc($param) { $rtn = '' $list = $param -split '' foreach ($char in $list) { if($char -ne '' ...