SAP-SD-ABAP-销售订单自动确认程序-AVAILABILITY_CHECK_S4-SD_BACKORDER_UPDATE
类似VA02-检查项目可用性功能
"DELTA_MANAGEMENT
DATA: l_atpdt LIKE atpdt.
DATA: p_yvbbe TYPE TABLE OF atp_vbbe_ext.
DATA: wa_yvbbe TYPE atp_vbbe_ext.
DATA: wa_vbbe TYPE atp_vbbe_ext.
"S4 ATP Check
DATA ls_atpca TYPE atpca.
DATA ls_atpcs TYPE atpcs.
DATA lt_atpcs TYPE TABLE OF atpcs.
DATA: p_mdvex TYPE TABLE OF mdve,
wa_mdvex TYPE mdve.
"SD_BACKORDER_UPDATE 更新手工确认
DATA: it_mdvu TYPE TABLE OF mdvu,
wa_mdvu TYPE mdvu.
DATA: it_return TYPE TABLE OF bapiret2,
wa_return TYPE bapiret2.
LOOP AT gt_data INTO gs_data.
CLEAR: p_yvbbe,wa_yvbbe.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE p_yvbbe FROM vbbe
WHERE vbeln = gs_data-vbeln
AND posnr = gs_data-posnr."把已确认的销售订单数量还给库存
READ TABLE p_yvbbe INTO wa_yvbbe WITH KEY vbeln = gs_data-vbeln
posnr = gs_data-posnr.
IF sy-subrc IS INITIAL.
ENDIF.
CLEAR: l_atpdt.
l_atpdt-atpap = 'SO'.
l_atpdt-atptk = 'VB'.
l_atpdt-oldav = 'X'.
l_atpdt-newav = 'X'.
l_atpdt-delst = 'C'.
CALL FUNCTION 'DELTA_MANAGEMENT'
EXPORTING
p_atpdt = l_atpdt
TABLES
p_vbbeox = p_yvbbe
p_vbbenx = p_yvbbe
EXCEPTIONS
OTHERS = 0.
CLEAR:ls_atpca.
ls_atpca-anwdg = '5'. "SO
ls_atpca-anwdg2 = '5'. "SO
ls_atpca-azerg = 'Z'.
ls_atpca-rdmod = 'A'. "总计记录
ls_atpca-msginit = 'D'. "未执行初始化
CLEAR:ls_atpcs,lt_atpcs.
"LS_ATPCS-MATNR = '0000000304**17012'. "物料
ls_atpcs-matnr = gs_data-matnr. "物料
"LS_ATPCS-WERKS = '100B'."工厂
ls_atpcs-werks = gs_data-werks."工厂
"LS_ATPCS-BERID = '100B'."MRP范围
ls_atpcs-berid = gs_data-werks."MRP范围
ls_atpcs-prreg = 'A'. "可用性检查规则 A - SOLS_ATPCS-CHMOD = '011'."TABLE T459-BDART + PLART
ls_atpcs-chmod = '011'.
ls_atpcs-delkz = 'VC'. "销售订单
"LS_ATPCS-DELNR = '1000003042'. "销售订单
ls_atpcs-delnr = gs_data-vbeln. "销售订单
"LS_ATPCS-DELPS = '000010'. "销售订单行项目
ls_atpcs-delps = gs_data-posnr. "销售订单行项目
"LS_ATPCS-DELET = '0001'. "销售订单计划行项目
ls_atpcs-delet = wa_yvbbe-etenr. "销售订单计划行项目
ls_atpcs-bdart = '01'."T459A-BEDAR+0(2)
ls_atpcs-plart = '1'. "T459A-BEDAR+2(1)
ls_atpcs-vbtyp = 'C'. "SO
"""LS_ATPCS-TZONE = 'UTC+8'. "时区
"LS_ATPCS-BDTER = '20210510'. "需求日
ls_atpcs-bdter = wa_yvbbe-mbdat. "需求日
ls_atpcs-bdmng = gs_data-kwmen. "需求数量
ls_atpcs-xline = '1'. "在ATPCS内表中的索引LS_ATPCS-XLINE = '0'.
* LS_ATPCS-AUFWG = '00'.
* LS_ATPCS-AUFST = '00'.
* LS_ATPCS-ALPRF = '00'.
ls_atpcs-umren = '1'.
ls_atpcs-umrez = '1'.
ls_atpcs-idxatp = '1'.
* LS_ATPCS-IDXPLN = '0'.
* LS_ATPCS-IDXALL = '0'.
* LS_ATPCS-MNTGA = '0'.
ls_atpcs-resmd = 'X'.
ls_atpcs-chkflg = 'X'.
ls_atpcs-enqflg = 'X'.
"LS_ATPCS-FORCE_DIA = 'X'.
ls_atpcs-sumbd = 'A'.
"""LS_ATPCS-MEINS = 'ST'. "物料基本单位
"""LS_ATPCS-WETZON = 'CHILE'. "时区
ls_atpcs-lfrel = 'X'.
ls_atpcs-kzazu = 'X'.
"""LS_ATPCS-GEWEI = 'KG'.
APPEND ls_atpcs TO lt_atpcs.
CALL FUNCTION 'AVAILABILITY_CHECK_S4'
TABLES
p_atpcsx = lt_atpcs
p_mdvex = p_mdvex "ATP的结果信息存在该表中* CHANGING
CHANGING
p_atpca = ls_atpca
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
CLEAR:wa_mdvex, it_mdvu.
READ TABLE p_mdvex INTO wa_mdvex INDEX 1.
IF sy-subrc IS INITIAL.
wa_mdvu-vbeln = gs_data-vbeln.
wa_mdvu-posnr = gs_data-posnr.
wa_mdvu-mbdat = wa_mdvex-dat01.
wa_mdvu-vmeng = wa_mdvex-mng02.
APPEND wa_mdvu TO it_mdvu.
ENDIF.
CLEAR: it_return.
CALL FUNCTION 'SD_BACKORDER_UPDATE'
* EXPORTING
* COMMIT_EXTERNAL = 'X'
* SD_READ_AND_SAVE = 'X'
* FIXMG_SET = ''
* NO_LOCK = ''
* P_CALL_ACTIVITY = 'V03R'
TABLES
kortab = it_mdvu
et_return = it_return.
CLEAR: wa_return.
READ TABLE it_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc IS INITIAL.
"失败
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
"成功
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDLOOP.
SAP-SD-ABAP-销售订单自动确认程序-AVAILABILITY_CHECK_S4-SD_BACKORDER_UPDATE相关推荐
- SAP SD 自定义销售订单审批状态
自定义销售订单审批状态 销售订单可以在其抬头或者项目中定义审批状态,一般在抬头定义的话就相当于针对整单的审批,可以实现多级审批,每级审批设置能进行何种操作,这里就需要在IMG中定义审批状态参数文件. ...
- SAP SD——创建销售订单
销售订单创建/更改/查看,VA01/VA02/VA03. 首先,输入事务码:VA01,选择自己想要创建的订单类型. 然后,输入售达方,敲击回车,会弹出显示框客户的销售范围,选择一个范围,然后输入采购订 ...
- 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代
转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代 原文地址:SAP囚徒 - 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同作者:SAP囚徒 物品领用通常是库存管理的范畴,直 ...
- SAP SD基础知识之自动信用控制
SAP SD基础知识之自动信用控制 一,信用检查可执行的时间点 使用系统设置来指定我们想什么时候执行信用检查:我们可能,例如,要求只在销售订单处理过程中执行检查. 只要相关的凭证被信用检查block了 ...
- php 自动收货’_PHP实现电商订单自动确认收货redis队列
一.场景 之前做的电商平台,用户在收到货之后,大部分都不会主动的点击确认收货,导致给商家结款的时候,商家各种投诉,于是就根据需求,要做一个订单在发货之后的x天自动确认收货.所谓的订单自动确认收货,就是 ...
- PHP与redis队列实现电商订单自动确认收货
一.场景 之前做的电商平台,用户在收到货之后,大部分都不会主动的点击确认收货,导致给商家结款的时候,商家各种投诉,于是就根据需求,要做一个订单在发货之后的x天自动确认收货.所谓的订单自动确认收货,就是 ...
- php自动收货,如何在PHP中实现一个订单自动确认收货的redis队列
如何在PHP中实现一个订单自动确认收货的redis队列 发布时间:2020-12-14 15:45:55 来源:亿速云 阅读:65 作者:Leah 本篇文章为大家展示了如何在PHP中实现一个订单自动确 ...
- SAP S/4HANA销售订单创建时,会自动触发生产订单的创建
这个自动触发的过程是怎么实现的? 使用下面的代码创建一个销售订单: DATA: ls_header TYPE bapisdhd1,ls_headerx TYPE bapisdhd1x,lt_bapir ...
- SAP S/4HANA销售订单创建时,会自动触发生产订单的创建 1
这个自动触发的过程是怎么实现的? 使用下面的代码创建一个销售订单: DATA: ls_header TYPE bapisdhd1,ls_headerx TYPE bapisdhd1x,lt_bapir ...
- SAP 深入理解销售订单
突出特点: □SD的订单输入和配置能力被一家独立的咨询公司评为"最佳等级". □SD的定价能力也被一家独立的咨询公司评为"世界级". □在最大限度地扩大你成功的 ...
最新文章
- 组合游戏系列5: 井字棋、五子棋AlphaGo Zero 算法实战
- ssd手 和方向检测
- 阿里云 apt-get mysql_阿里云Ubuntu 16.04 x64 装配Mysql 5.7
- 前端学习(2424):关于问题的解决方式
- mybatis学习(38):动态sql-foreach
- 分享30个新鲜PSD网站模板免费下载
- php基本语法 格式,PHP 基本语法格式
- python代码测试_Python入门学习系列——Python代码测试
- Java历程-初学篇 Day02变量,数据类型和运算符
- css窗口最大化,你如何使用css变换与jquery和地址窗口最大化不一致?
- Keil/MDK(0):使用过程中的一些设置
- 【转】妈妈告诉我的细节
- 学生考勤报表管理小程序
- matlab tic and toc,[转载]matlab中tic和toc(转)
- ASO优化中关键词设置是否需要逗号,aso关键词逗号隔开
- 比原链CEO朗豫:DeFi让用户真正理解区块链,意义重大
- 小蓝本 第一本《因式分解技巧》第四章 拆项与添项 笔记(第四天)
- 计算机存储单位全称KB/MB/GB/TB/PB/EB/ZB
- vs2017 调试子进程
- 服务器重启后,docker安装的mysql怎么重启