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. 【清北学堂】广州OI学习游记

    \(Day~0\) 早上\(9\)点多才爬起来,然后水了道题. 下午从[数据删除]出发,颠簸了将近\(5\)个小时终于抵达广州. 一出地铁站--卧槽这天,卧槽这风,要下雨的节奏? 没过两分钟倾盆大雨. ...

  2. python学习之正则表达式,StringIO模块,异常处理,搭建测试环境

    python正则表达式 引入一个强大的匹配功能来匹配字符串 import re 正则表达式的表示类型raw string类型(原生字符串类型) r'sa\\/sad/asd'用r转为raw strin ...

  3. 配置ubuntu18.04

    关于Ubuntu18.04的配置: 首先在装好系统后需要配置VMware Tools,这个会在虚拟机退出全屏的时候给一个帮助链接,在帮助链接中有详细的教程. 教程链接:https://docs.vmw ...

  4. UML之九种图

    UML说是九种图吧!其实是众说纷纭,不管有几种图,我们只要能够很好的运用这几张图就好,主要有用例图.类图.对象图.状态图.活动图.序列图.协作图.构件图和部署图,至于包图是否属于这九种图,我也理不清楚 ...

  5. vue 数组更新检测注意事项

  6. mysql中删除重复数据

    //首先我们需要知道我们重复的都有哪些数据, //第一步:进行对数据表进行分组,group by. //第二步:进行后通过having进行限制筛选,条数大于等于2的 //第三步:进行多表删除. //案 ...

  7. ubuntu下新立得(synaptic)软件包管理器安装

    1.从ubuntu下的软件中心(面板主页中输入soft即可找到)搜索安装synaptic后,打开新立得一闪就自动关了.解决办法为: 1.1命令行下卸载,命令行下重新安装: 卸载: #purge表示卸载 ...

  8. sql server 存储过程---游标的循环

    sqlserver中的循环遍历(普通循环和游标循环) sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student

  9. postgresql slow sql report 慢查询报告

    其实也不完全算PostgreSQL的技巧,应该算是SHELL技巧. 首先要配置好postgresql.conf,让PG记录下慢查询,并且日志固定格式,如下: log_destination = 'cs ...

  10. bzoj 1396/2865: 识别子串 后缀自动机+线段树

    水水的字符串题 ~ #include <map> #include <cstdio> #include <cstring> #include <algorit ...