类似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相关推荐

  1. SAP SD 自定义销售订单审批状态

    自定义销售订单审批状态 销售订单可以在其抬头或者项目中定义审批状态,一般在抬头定义的话就相当于针对整单的审批,可以实现多级审批,每级审批设置能进行何种操作,这里就需要在IMG中定义审批状态参数文件. ...

  2. SAP SD——创建销售订单

    销售订单创建/更改/查看,VA01/VA02/VA03. 首先,输入事务码:VA01,选择自己想要创建的订单类型. 然后,输入售达方,敲击回车,会弹出显示框客户的销售范围,选择一个范围,然后输入采购订 ...

  3. 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代

    转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代 原文地址:SAP囚徒 - 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同作者:SAP囚徒 物品领用通常是库存管理的范畴,直 ...

  4. SAP SD基础知识之自动信用控制

    SAP SD基础知识之自动信用控制 一,信用检查可执行的时间点 使用系统设置来指定我们想什么时候执行信用检查:我们可能,例如,要求只在销售订单处理过程中执行检查. 只要相关的凭证被信用检查block了 ...

  5. php 自动收货’_PHP实现电商订单自动确认收货redis队列

    一.场景 之前做的电商平台,用户在收到货之后,大部分都不会主动的点击确认收货,导致给商家结款的时候,商家各种投诉,于是就根据需求,要做一个订单在发货之后的x天自动确认收货.所谓的订单自动确认收货,就是 ...

  6. PHP与redis队列实现电商订单自动确认收货

    一.场景 之前做的电商平台,用户在收到货之后,大部分都不会主动的点击确认收货,导致给商家结款的时候,商家各种投诉,于是就根据需求,要做一个订单在发货之后的x天自动确认收货.所谓的订单自动确认收货,就是 ...

  7. php自动收货,如何在PHP中实现一个订单自动确认收货的redis队列

    如何在PHP中实现一个订单自动确认收货的redis队列 发布时间:2020-12-14 15:45:55 来源:亿速云 阅读:65 作者:Leah 本篇文章为大家展示了如何在PHP中实现一个订单自动确 ...

  8. SAP S/4HANA销售订单创建时,会自动触发生产订单的创建

    这个自动触发的过程是怎么实现的? 使用下面的代码创建一个销售订单: DATA: ls_header TYPE bapisdhd1,ls_headerx TYPE bapisdhd1x,lt_bapir ...

  9. SAP S/4HANA销售订单创建时,会自动触发生产订单的创建 1

    这个自动触发的过程是怎么实现的? 使用下面的代码创建一个销售订单: DATA: ls_header TYPE bapisdhd1,ls_headerx TYPE bapisdhd1x,lt_bapir ...

  10. SAP 深入理解销售订单

    突出特点: □SD的订单输入和配置能力被一家独立的咨询公司评为"最佳等级". □SD的定价能力也被一家独立的咨询公司评为"世界级". □在最大限度地扩大你成功的 ...

最新文章

  1. 组合游戏系列5: 井字棋、五子棋AlphaGo Zero 算法实战
  2. ssd手 和方向检测
  3. 阿里云 apt-get mysql_阿里云Ubuntu 16.04 x64 装配Mysql 5.7
  4. 前端学习(2424):关于问题的解决方式
  5. mybatis学习(38):动态sql-foreach
  6. 分享30个新鲜PSD网站模板免费下载
  7. php基本语法 格式,PHP 基本语法格式
  8. python代码测试_Python入门学习系列——Python代码测试
  9. Java历程-初学篇 Day02变量,数据类型和运算符
  10. css窗口最大化,你如何使用css变换与jquery和地址窗口最大化不一致?
  11. Keil/MDK(0):使用过程中的一些设置
  12. 【转】妈妈告诉我的细节
  13. 学生考勤报表管理小程序
  14. matlab tic and toc,[转载]matlab中tic和toc(转)
  15. ASO优化中关键词设置是否需要逗号,aso关键词逗号隔开
  16. 比原链CEO朗豫:DeFi让用户真正理解区块链,意义重大
  17. 小蓝本 第一本《因式分解技巧》第四章 拆项与添项 笔记(第四天)
  18. 计算机存储单位全称KB/MB/GB/TB/PB/EB/ZB
  19. vs2017 调试子进程
  20. 服务器重启后,docker安装的mysql怎么重启

热门文章

  1. 解读SPSS多元方差分析中的多因素多变量的相互影响
  2. vue学习笔记二:HBuilder X框架搭建
  3. ppt滚动动画随机选题
  4. c语言函数平方根公式,c语言求平方根公式
  5. GIMP制作电子签名
  6. 大数据经典实验案例-WordCount原理详解和代码书写
  7. Mac如何创建快捷方式?
  8. android运行ios应用程序,Cider让你在安卓手机上运行iOS应用
  9. 将文件夹中的图片按照文件名进行标签分类
  10. 建筑CAD基础设计【2】