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. MyBatis_动态sql_foreach_mysql下foreach批量插入的两种方式

    方法1: 笔记要点出错分析与总结工程组织数据库组织0.重新修改Bean类    修改1.定义接口 //批量插入 public void addEmps(@Param("emps") ...

  2. web server

    嵌入式的:boa  thttpd wn 网站的: iis apache tomcat ngnix python 的  ruby的 自定的 windows  w3mfc c#自定义的1对1 webser ...

  3. Mybatis-Plus 插件学习

    官方指南 1.逻辑删除 在相应字段上添加注解 @TableLogic private Integer deleted; 说明: 使用mp自带方法删除和查找都会附带逻辑删除功能 (自己写的xml不会) ...

  4. 1. let与const

    1.ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. var a = []; for (var i = 0;i<10;i++) ...

  5. SVN工作区同步

    单击“团队同步”菜单项或“团队同步”视角的“团队”工具栏上的“同步”按钮后,“同步视图”中将显示SVN工作区同步.它提供了从远程检查本地副本的更改类型的概率. 这是“同步视图”中的 “SVN工作空间同 ...

  6. bootstrap Table 的使用方法

    然后添加css  找到bootstrap-table.min.css 添加进去 再添加JS Js添加时  按照顺序添加 然后初始化bootstrap-table <script type=&qu ...

  7. TensorFlow(四):手写数字识别

    一:数据集 采用MNIST数据集:-->官网 数据集被分成两部分:60000行的训练数据集和10000行的测试数据集. 其中每一张图片包含28*28个像素,我们把这个数组展开成一个向量,长度为2 ...

  8. surprise库官方文档分析(一)

    一:入门 1.基本用法 (1).自动交叉验证 Surprise有一套内置的 算法和数据集供您使用.在最简单的形式中,只需几行代码即可运行交叉验证程序: from surprise import SVD ...

  9. spring boot aop 切库实现读写分离

    项目结构: 主要代码 : 配置数据库 配置datasource 线程隔离: 已上传git gitee地址:https://gitee.com/xxoo0_297/springboot-aop.git

  10. 递归回溯生成和解决数独问题c/c++

    数独 程序地址https://github.com/papicheng/blog/tree/master/%E6%95%B0%E7%8B%AC 一.游戏规则介绍: 数独是源自18世纪瑞士的一种数学游戏 ...