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. WebService在ssm框架中的简单应用

    WebService的概念 Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配 ...

  2. CF C. Vladik and fractions——构造题

    题目 构造一组 $x, y, z$,使得对于给定的 $n$,满足 $\frac{1}{x}  + \frac{1}{y} + \frac{1}{z} =  \frac{2}{n}$. 分析: 样例二已 ...

  3. this 总结

    谁最终调用函数,this指向谁!!! ① this指向的,永远只可能是对象!   ② this指向谁,永远不取决于this写在哪!而是取决于函数在哪调用.   ③ this指向的对象,我们称之为函数的 ...

  4. 二十七. Keepalived热备 Keepalived+LVS 、 HAProxy服务器

    1.Keepalived高可用服务器 proxy:192.168.4.5(客户端主机) web1:192.168.4.100(Web服务器,部署Keepalived高可用软件) web2:192.16 ...

  5. webservice企业开发实例

    1. 2. 3.环境变量的配置 4.创建动态web工程-->版本2.5-->tomcat7.0 第一步:创建cxf项目 第二步:添加cxf的jar包 全部将jar包拷入lib目录下 第三步 ...

  6. 删除唯一性约束unique

    删除唯一性约束 语法如下: alter table tableName drop index key_name;#删除唯一性约束,实际就是删除索引 drop index key_name on tab ...

  7. Vue的学习--遇到的一些问题和解决方法(二)

    1.关于图片路径问题 1.关于图片路径问题 在.vue的html中可以直接使用相对路径,但是从浏览器后台可以看出,最后路径是自行做了替换的.如果需要在js文件中使用,则需要自己使用require进行替 ...

  8. FOI冬令营 Day1

    目录 T1.全连(fc) 传送门 Code  T2.原样输出(copy) 传送门 Code  T3.不同的缩写(diff) 传送门 Code  打算把省冬的题目放上来,主要是防止自己偷懒不订正 T1. ...

  9. 详解DLX及其应用

    什么是DLX? 让我们看看百度百科上的解释:在 计算机科学 中, Dancing Links ,舞蹈链, 也叫 DLX, 是由 Donald Knuth 提出的数据结构,目的是快速实现他的 X算法.X ...

  10. Mininet系列实验(五):Mininet设置带宽之简单性能测试

    1.实验目的 该实验通过Mininet学习python自定义拓扑实现,可在python脚本文件中设计任意想要的拓扑,简单方便,并通过设置交换机和主机之间链路的带宽.延迟及丢包率,测试主机之间的性能.在 ...