BAPI_OUTB_DELIVERY_CREATE_SLS、BAPI_OUTB_DELIVERY_CONFIRM_DEC 创建交货单,交货单过账
FUNCTION zsd_dn_create1.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(SODATE) TYPE ZDATE
*" EXPORTING
*" VALUE(LV_DELIVERY) TYPE LIPS-VBELN
*" TABLES
*" CREATE_DN STRUCTURE ZMMT_DN_CREAT1
*" GT_RETURN STRUCTURE BAPIRET2 OPTIONAL
*"---------------------------------------------------------------------- DATA: p_date LIKE sy-datum.
DATA: lt_vbap TYPE TABLE OF zmmt_dn_creat1.
DATA: ls_vbap TYPE zmmt_dn_creat1. DATA:lt_vbap_temp TYPE TABLE OF zmmt_dn_creat1.
DATA:ls_vbap_temp TYPE zmmt_dn_creat1. DATA:lt_sales_order_items TYPE TABLE OF bapidlvreftosalesorder.
DATA:ls_sales_order_items TYPE bapidlvreftosalesorder. DATA: ls_header_data TYPE bapiobdlvhdrcon.
DATA: ls_header_control TYPE bapiobdlvhdrctrlcon. DATA: lt_header_deadlines TYPE TABLE OF bapidlvdeadln .
DATA: ls_header_deadlines TYPE bapidlvdeadln . DATA: BEGIN OF gt_lgort OCCURS 0,
vbeln TYPE vbeln,
posnr TYPE vbelp,
lgort TYPE lgort_d,
charg TYPE charg_d,
spe_alternate TYPE lips-spe_alternate,
budat TYPE budat,
END OF gt_lgort. DATA: l_aufnr TYPE aufnr.
DATA: l_lgort TYPE lgort_d.
DATA: l_charg TYPE charg_d.
DATA: clabs TYPE mchb-clabs.
DATA: gs_return TYPE bapiret2.
DATA: gv_message TYPE char200.
DATA: text1(6) TYPE c.
DATA: text2(2) TYPE c.
DATA: zvrkme TYPE vbap-vrkme. * CLEAR:text1,text2.
p_date = sodate. lt_vbap = create_dn[].
lt_vbap_temp = lt_vbap. SORT lt_vbap_temp BY vbeln.
DELETE ADJACENT DUPLICATES FROM lt_vbap_temp COMPARING vbeln. CALL FUNCTION 'FRE_CONVERT_DATE_TO_TIMESTMP'
EXPORTING
ip_start_date = p_date
ip_time_zone = 'UTC'
IMPORTING
ep_start_date = ls_header_deadlines-timestamp_utc.
ls_header_deadlines-timetype = 'WSHDRWADTI'. LOOP AT lt_vbap_temp INTO ls_vbap_temp. CLEAR: lt_sales_order_items,ls_sales_order_items,gt_lgort[],gt_lgort,zvrkme.
LOOP AT lt_vbap INTO ls_vbap WHERE vbeln = ls_vbap_temp-vbeln.
CLEAR ls_sales_order_items.
ls_sales_order_items-ref_doc = ls_vbap-vbeln.
ls_sales_order_items-ref_item = ls_vbap-posnr.
ls_sales_order_items-dlv_qty = ls_vbap-kwmeng.
SELECT SINGLE vrkme INTO zvrkme FROM vbap WHERE vbap~vbeln = ls_vbap-vbeln and vbap~POSNR = ls_vbap-POSNR.
ls_sales_order_items-sales_unit = zvrkme.
APPEND ls_sales_order_items TO lt_sales_order_items. gt_lgort-vbeln = ls_vbap-vbeln.
gt_lgort-posnr = ls_vbap-posnr.
gt_lgort-lgort = ls_vbap-lgort.
gt_lgort-budat = p_date.
CLEAR: l_aufnr,l_lgort,l_charg,zvrkme.
gt_lgort-charg = ls_vbap-charg. APPEND gt_lgort.
ENDLOOP. EXPORT itab = gt_lgort TO MEMORY ID 'GT_LGORT'. CLEAR:lv_delivery,gt_return.
***创建交货单
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'
IMPORTING
delivery = lv_delivery
TABLES
sales_order_items = lt_sales_order_items
* SERIAL_NUMBERS =
* EXTENSION_IN =
* DELIVERIES =
* CREATED_ITEMS =
* EXTENSION_OUT =
return = gt_return. IF lv_delivery IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'. CLEAR:ls_header_data, ls_header_control.
ls_header_data-deliv_numb = lv_delivery .
ls_header_control-deliv_numb = lv_delivery .
ls_header_control-post_gi_flg = 'X'.
ls_header_control-volume_flg = 'X'. CLEAR:lt_header_deadlines, ls_header_deadlines-deliv_numb.
ls_header_deadlines-deliv_numb = lv_delivery. APPEND ls_header_deadlines TO lt_header_deadlines. ***交货单发货过账
CLEAR:gt_return. CALL FUNCTION 'BAPI_OUTB_DELIVERY_CONFIRM_DEC'
EXPORTING
header_data = ls_header_data
header_control = ls_header_control
delivery = lv_delivery
TABLES
header_deadlines = lt_header_deadlines
return = gt_return. LOOP AT gt_return INTO gs_return WHERE type = 'A' OR type = 'E'.
ENDLOOP.
IF gs_return IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
*************************************************删除没有交货成功的交货单
DATA: wa_hdata LIKE bapiobdlvhdrchg,
wa_hcont LIKE bapiobdlvhdrctrlchg,
d_delivy LIKE bapiobdlvhdrchg-deliv_numb,
it_bapiret2 LIKE bapiret2 OCCURS 0 WITH HEADER LINE. wa_hdata-deliv_numb = lv_delivery.
wa_hcont-deliv_numb = lv_delivery.
wa_hcont-DLV_DEL = 'X'.
d_delivy = lv_delivery.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = wa_hdata
header_control = wa_hcont
delivery = d_delivy
TABLES
return = it_bapiret2.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
*************************************************删除没有交货成功的交货单
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
ENDLOOP. ENDFUNCTION.
BAPI_OUTB_DELIVERY_CREATE_SLS、BAPI_OUTB_DELIVERY_CONFIRM_DEC 创建交货单,交货单过账的更多相关文章
- ABAP 订单-交货单-发货过账自动完成 案例
*&---------------------------------------------------------------------* *& Report ZSDR006 ...
- 『诡异的』VL10B创建外向交货单出错解决全过程
一直觉得SAP STO的业务模式配置起来还是挺简单的,无非就是关联一下采购单与交货单的关系,以及相应工厂的装运数据,其他像主数据的设置也没有什么特别的.相比ICS模式,它少了IDOC的配置,所以还是很 ...
- SAP MM 同一个序列号可以被多次用在交货单发货过账?
SAP MM 同一个序列号可以被多次用在交货单发货过账? 如下公司间转储订单,从公司代码CSAS转入公司代码HKCS, 物料有启用序列号管理. 转储数量为5 PC.该STO单据共计有2个外向交货单 8 ...
- 【MM系列】SAP 根据采购订单创建外向交货单的BAPI
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 根据采购订单创建外向交货单的 ...
- 参照UB单创建DN并过账
*&---------------------------------------------------------------------* *& Form FRM_DN_POST ...
- 创建内向交货单 BBP_INB_DELIVERY_CREATE
DATA:DEL_HEADER TYPE BBP_INBD_L. DATA:DEL_TAB TYPE TABLE OF BBP_INBD_D WITH HEADER LINE. DATA:DEL_RE ...
- 创建交货单/外向交货BAPI_OUTB_DELIVERY_CREATE_SLS/STO
FUNCTION Z_SD_CREATE_DN. *"-------------------------------------------------------------------- ...
- SAP MM 公司间STO里交货单PGI之后自动触发内向交货单功能的实现
SAP MM 公司间STO里交货单PGI之后自动触发内向交货单功能的实现 笔者所在的项目上的公司间STO的流程里,发货公司在做PGI之后系统自动触发收货公司的内向交货单.这个功能是通过交货单的Outp ...
- 根据采购/销售订单创建STO/SO
FUNCTION Z_SD_CREATE_DN. *"-------------------------------------------------------------------- ...
- BAPI
MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...
随机推荐
- [SDR] GNU Radio 系列教程 —— GNU Radio RX PDU (接收据包操作)的基础知识(超全)
目录 1 接收概述 2 相关块介绍 2.1 相关性估计器(Correlation Estimator) 2.2 多相时钟同步(Polyphase Clock Sync) 2.3 线性均衡器(Linea ...
- HTTP内容编码和HTTP压缩的区别
HTTP压缩,在HTTP协议中,其实是内容编码的一种. 在http协议中,可以对内容(也就是body部分)进行编码, 可以采用gzip这样的编码. 从而达到压缩的目的. 也可以使用其他的编码把内容搅乱 ...
- kubernetes 容器编排系统
前言 docker解决了打包和隔离的问题,但是在docker集群中我们需要解决更多的问题,如调度(容器在哪运行).生命周期及健康状况(确保容器在无错的情况下运行).服务发现(容器所处位置,和容器通信) ...
- 远程服务器画面GUI传输到本地显示
远程服务器画面GUI传输到本地显示 这篇文章主要介绍远程服务器(Ubuntu系统)的GUI画面传输到本地(本地Ubuntu或者Windows)显示的方法. 远程Ubuntu系统 --> 本地Wi ...
- BFS 2025/1/16
BFS Basic 主要特点:空间复杂度较高,基于队列 经常用于求最优解的搜索题 经典模型:连通块,最短迷宫路径,曼哈顿距离 Question 01 [ACP2056 山峰与山谷] 主体是广搜模板 难 ...
- 【软件】解决奥林巴斯生物显微镜软件OlyVIA提示“不支持您使用的操作系统”安装中止的问题
[软件]解决奥林巴斯生物显微镜软件OlyVIA提示"不支持您使用的操作系统"安装中止的问题 零.问题 资源在文末 问题如下,从奥林巴斯生物显微镜软件官网下载地址:https://l ...
- cxGrid布局的保存和恢复
//恢复布局IniFileName := ExtractFilePath(Application.ExeName) + 'Layout/' + Self.Name + '.ini';if FileEx ...
- java 限流
题记 在高并发的分布式系统中,我们都需要考虑接口并发量突增时造成的严重后果,后端服务的高压力严重甚至会导致系统宕机.为避免这种问题,我们都会为接口添加限流.降级.熔断等能力,从而使接口更为健壮. 限流 ...
- eolinker响应预处理/规则校验:js正则写法注意事项
JS的正则表达式的写法,需要对原有正则表达式进行适当加工才可正常使用 如:(正则表达式规则取到"/did1280064/Login") 常规的正则表达式为"did(\d+ ...
- 题解:CF361B Levko and Permutation
前置芝士--最大公约数 - OI Wiki 题目其实很简单,我们可以知道一些最大公约数的性质: 有一个数 xxx,则: gcd(x,x−1)=1gcd(1,x)=1\gcd(x,x-1)=1 \\ ...