不知道业务怎么配置的,创建销售单时,一堆计划行类别,什么CN,DN。。。都有,但是审核后需要计划行变更为CP,这样在MD04才能看到需求。

原有逻辑是弄个后台程序,审核后调一下,更新一下计划行,这样是会有需求的。。。

但是,业务有个习惯喜欢VA02直接审,或者是交货后还来修改等等。。。这时候就需要在VA02里做增强。,

原本的开发还是调程序。。。这就产生了很多问题。后来我自己写增强审核的时候自动修改计划行类别,巴特,不产生需求。。。这特么鬼,后来各种找,各种DEBUG,找到根源了。。。

Now,来个增强,实现:MV45AFZZ  USEREXIT_SAVE_DOCUMENT_PREPARE

IF ( i_stonO = '20' AND i_stonN = '30' ).LOOP AT XVBEP INTO GX_VBEP.LY_I = SY-TABIX.CASE VBAK-AUART.WHEN 'ZOR' .IF GX_VBEP-ETTYP <> 'CP' AND GX_VBEP-ETTYP <> 'ZD'.GX_VBEP-ETTYP = 'CP'.IF SY-TCODE = 'VA01'.ELSEIF SY-TCODE = 'VA02'.GX_VBEP-UPDKZ = 'U'.GX_VBEP-BEDSD = 'X'.GX_VBEP-BDAALT = '05'.GX_VBEP-BDART = '05'.GX_VBEP-PLART = '0'.IF XVBBE[] IS INITIAL.GW_VBBE-MANDT = SY-MANDT.GW_VBBE-VBELN = GX_VBEP-VBELN.GW_VBBE-POSNR = GX_VBEP-POSNR.GW_VBBE-ETENR = GX_VBEP-ETENR.GW_VBBE-MBDAT = GX_VBEP-EDATU.GW_VBBE-VBTYP = 'C'.GW_VBBE-BDART = '05'.GW_VBBE-PLART = '0'.GW_VBBE-UPDKZ = 'I'.GW_VBBE-OMENG = GX_VBEP-LMENG.GW_VBBE-VMENG = GX_VBEP-BMENG.GW_VBBE-MEINS = GX_VBEP-VRKME.GW_VBBE-PZMNG = GX_VBEP-LMENG.GW_VBBE-AUART = XVBAK-AUART.GW_VBBE-KUNNR = XVBAK-KUNNR.READ TABLE XVBAP INTO GX_VBAP WITH KEY POSNR = GX_VBEP-POSNR.IF SY-SUBRC = 0.LY_J = SY-TABIX.GX_VBAP-SUMBD = 'A'.GX_VBAP-UPDKZ = 'U'.GX_VBAP-BEDUP = 'X'.MODIFY XVBAP FROM GX_VBAP INDEX LY_J TRANSPORTING SUMBD UPDKZ BEDUP.GW_VBBE-MATNR = GX_VBAP-MATNR.GW_VBBE-WERKS = GX_VBAP-WERKS.GW_VBBE-LGORT = GX_VBAP-LGORT.GW_VBBE-CHARG = GX_VBAP-CHARG.GW_VBBE-AWAHR = GX_VBAP-AWAHR.GW_VBBE-VPZUO = GX_VBAP-VPZUO.ENDIF.INSERT GW_VBBE INTO XVBBE INDEX GX_VBEP-ETENR.ENDIF.ENDIF.ENDIF.WHEN 'ZKB' .IF GX_VBEP-ETTYP <> 'E1'.GX_VBEP-ETTYP = 'E1'.IF SY-TCODE = 'VA01'.ELSEIF SY-TCODE = 'VA02'.GX_VBEP-UPDKZ = 'U'.GX_VBEP-BEDSD = 'X'.GX_VBEP-BDAALT = '05'.GX_VBEP-BDART = '05'.GX_VBEP-PLART = '0'.IF XVBBE[] IS INITIAL.GW_VBBE-MANDT = SY-MANDT.GW_VBBE-VBELN = GX_VBEP-VBELN.GW_VBBE-POSNR = GX_VBEP-POSNR.GW_VBBE-ETENR = GX_VBEP-ETENR.GW_VBBE-MBDAT = GX_VBEP-EDATU.GW_VBBE-VBTYP = 'C'.GW_VBBE-BDART = '05'.GW_VBBE-PLART = '0'.GW_VBBE-UPDKZ = 'I'.GW_VBBE-OMENG = GX_VBEP-LMENG.GW_VBBE-VMENG = GX_VBEP-BMENG.GW_VBBE-MEINS = GX_VBEP-VRKME.GW_VBBE-PZMNG = GX_VBEP-LMENG.GW_VBBE-AUART = XVBAK-AUART.GW_VBBE-KUNNR = XVBAK-KUNNR.READ TABLE XVBAP INTO GX_VBAP WITH KEY POSNR = GX_VBEP-POSNR.IF SY-SUBRC = 0.LY_J = SY-TABIX.GX_VBAP-SUMBD = 'A'.GX_VBAP-UPDKZ = 'U'.GX_VBAP-BEDUP = 'X'.MODIFY XVBAP FROM GX_VBAP INDEX LY_J TRANSPORTING SUMBD UPDKZ BEDUP.GW_VBBE-MATNR = GX_VBAP-MATNR.GW_VBBE-WERKS = GX_VBAP-WERKS.GW_VBBE-LGORT = GX_VBAP-LGORT.GW_VBBE-CHARG = GX_VBAP-CHARG.GW_VBBE-AWAHR = GX_VBAP-AWAHR.GW_VBBE-VPZUO = GX_VBAP-VPZUO.ENDIF.INSERT GW_VBBE INTO XVBBE INDEX GX_VBEP-ETENR.ENDIF.ENDIF.ENDIF.WHEN 'ZSP' .READ TABLE XVBAP INTO GX_VBAP WITH KEY POSNR = GX_VBEP-POSNR.IF SY-SUBRC = 0.IF GX_VBAP-PSTYV = 'ZSNN' AND GX_VBEP-ETTYP <> 'ZN'.GX_VBEP-ETTYP = 'ZN'.IF SY-TCODE = 'VA01'.ELSEIF SY-TCODE = 'VA02'.GX_VBEP-UPDKZ = 'U'.GX_VBEP-BEDSD = 'X'.GX_VBEP-BDAALT = '05'.GX_VBEP-BDART = '05'.GX_VBEP-PLART = '0'.IF XVBBE[] IS INITIAL.GW_VBBE-MANDT = SY-MANDT.GW_VBBE-VBELN = GX_VBEP-VBELN.GW_VBBE-POSNR = GX_VBEP-POSNR.GW_VBBE-ETENR = GX_VBEP-ETENR.GW_VBBE-MBDAT = GX_VBEP-EDATU.GW_VBBE-VBTYP = 'C'.GW_VBBE-BDART = '05'.GW_VBBE-PLART = '0'.GW_VBBE-UPDKZ = 'I'.GW_VBBE-OMENG = GX_VBEP-LMENG.GW_VBBE-VMENG = GX_VBEP-BMENG.GW_VBBE-MEINS = GX_VBEP-VRKME.GW_VBBE-PZMNG = GX_VBEP-LMENG.GW_VBBE-AUART = XVBAK-AUART.GW_VBBE-KUNNR = XVBAK-KUNNR.READ TABLE XVBAP INTO GX_VBAP WITH KEY POSNR = GX_VBEP-POSNR.IF SY-SUBRC = 0.LY_J = SY-TABIX.GX_VBAP-SUMBD = 'A'.GX_VBAP-UPDKZ = 'U'.GX_VBAP-BEDUP = 'X'.MODIFY XVBAP FROM GX_VBAP INDEX LY_J TRANSPORTING SUMBD UPDKZ BEDUP.GW_VBBE-MATNR = GX_VBAP-MATNR.GW_VBBE-WERKS = GX_VBAP-WERKS.GW_VBBE-LGORT = GX_VBAP-LGORT.GW_VBBE-CHARG = GX_VBAP-CHARG.GW_VBBE-AWAHR = GX_VBAP-AWAHR.GW_VBBE-VPZUO = GX_VBAP-VPZUO.ENDIF.INSERT GW_VBBE INTO XVBBE INDEX GX_VBEP-ETENR.ENDIF.ENDIF.ELSEIF GX_VBAP-PSTYV = 'ZSAN' AND GX_VBEP-ETTYP <> 'CP'.GX_VBEP-ETTYP = 'CP'.IF SY-TCODE = 'VA01'.ELSEIF SY-TCODE = 'VA02'.GX_VBEP-UPDKZ = 'U'.GX_VBEP-BEDSD = 'X'.GX_VBEP-BDAALT = '05'.GX_VBEP-BDART = '05'.GX_VBEP-PLART = '0'.IF XVBBE[] IS INITIAL.GW_VBBE-MANDT = SY-MANDT.GW_VBBE-VBELN = GX_VBEP-VBELN.GW_VBBE-POSNR = GX_VBEP-POSNR.GW_VBBE-ETENR = GX_VBEP-ETENR.GW_VBBE-MBDAT = GX_VBEP-EDATU.GW_VBBE-VBTYP = 'C'.GW_VBBE-BDART = '05'.GW_VBBE-PLART = '0'.GW_VBBE-UPDKZ = 'I'.GW_VBBE-OMENG = GX_VBEP-LMENG.GW_VBBE-VMENG = GX_VBEP-BMENG.GW_VBBE-MEINS = GX_VBEP-VRKME.GW_VBBE-PZMNG = GX_VBEP-LMENG.GW_VBBE-AUART = XVBAK-AUART.GW_VBBE-KUNNR = XVBAK-KUNNR.READ TABLE XVBAP INTO GX_VBAP WITH KEY POSNR = GX_VBEP-POSNR.IF SY-SUBRC = 0.LY_J = SY-TABIX.GX_VBAP-SUMBD = 'A'.GX_VBAP-UPDKZ = 'U'.GX_VBAP-BEDUP = 'X'.MODIFY XVBAP FROM GX_VBAP INDEX LY_J TRANSPORTING SUMBD UPDKZ BEDUP.GW_VBBE-MATNR = GX_VBAP-MATNR.GW_VBBE-WERKS = GX_VBAP-WERKS.GW_VBBE-LGORT = GX_VBAP-LGORT.GW_VBBE-CHARG = GX_VBAP-CHARG.GW_VBBE-AWAHR = GX_VBAP-AWAHR.GW_VBBE-VPZUO = GX_VBAP-VPZUO.ENDIF.INSERT GW_VBBE INTO XVBBE INDEX GX_VBEP-ETENR.ENDIF.ENDIF.ENDIF .ENDIF.WHEN OTHERS.ENDCASE.MODIFY XVBEP FROM GX_VBEP.ENDLOOP.ENDIF.

转载于:https://www.cnblogs.com/sapSB/p/5569636.html

SAP销售订单状态修改(审核) 计划行自动产生需求,产生MD04需求相关推荐

  1. SAP销售订单历史修改后台表

    SAP销售订单历史修改后台表 The change history will be stored into these tables only if the data element for the ...

  2. SAP 销售订单状态

    VBAK 是销售订单凭证(Sales document) 的抬头表,VBUK是销售订单凭证的状态表,包括订单的各种状态如交货状态,总体状态,开票状态等,但VBUK没有提供基于销售组织的字段,因此SAP ...

  3. SAP 销售订单无法在MD04显示

    在进行SAP相关MRP策略测试时发现,不管选择何种策略,创建销售订单后,MD04无法显示销售订单的信息.通过OVZG维护需求等级.OVZH检查需求类型,还是没有解决问题: 在今天在另一个105系统中进 ...

  4. 【ABAP】SAP销售订单定价值变更

    SAP销售订单定价值变更 大家在日常业务中是否碰到过下图这样的情况,增值税专用发票上的单价小数位有8位(因为这个价格是不含税单价,是在开发票时输入含税单价后系统自动算出来的),然后在SAP中做销售订单 ...

  5. sap 订单状态修改时间_SAP中对于获取订单的状态

    在SAP中对于如何获取订单的状态,提供了至少两个函数,分别是 STATUS_READ 和   STATUS_TEXT_EDIT.下面简单介绍这两个函数 1.STATUS_READ  改函数的实现原理大 ...

  6. [性能] SAP销售订单取数逻辑优化---索引表

    我也分享了许多篇性能优化的帖子,主要集中在sql.语法及合理的索引方面.我们在表上加索引确实能大幅提升性能,但是索引的数量.所需字段及利用率都是我们在新建索引时需要考虑的,对于大多数abaper而言, ...

  7. SAP 销售订单冻结无法交货问题

    1 报错 :作为信用检查结果,销售订单为交货而冻结 解决办法: (1) 事务码 VKM3 :将冻结的订单解冻. (2)打上√ 后,点击绿色小旗子,再点保存. 如果是信贷余额不足,需要先增加信贷额度,f ...

  8. SAP销售订单关联的生产成本核算

    销售订单相关的生产中的预先成本核算  需求等级(Requirement class)使您可以在销售订单中设立一状态,此状态需要一已创建的成本估算.如果成本状态(即将进行成本核算)为销售订单而设置,便不 ...

  9. SAP销售订单到外向发货

    1.客户物料信息记录 创建客户物料信息记录(VD51) 回车之后,进入下一屏,输入物料编号 VD53进行查看 2.销售凭证 SAP中的销售凭证就是销售订单(SO) 1)创建(VA01) 回车 输入物料 ...

最新文章

  1. recorder-list
  2. altert/html打印出来的是[object Object]
  3. MySQL之数据库对象查看工具mysqlshow
  4. python opencv创建图像_OpenCV-Python 展示图像(1)
  5. Linux 蓝牙读写,实战Linux Bluetooth编程(三) HCI层编程
  6. access如何保存小数点后_如何把示波器当记录仪用
  7. 矩形变弧度角_科普时光 | 下颌角手术需要咬肌切除吗?
  8. 【mysql union all limit的使用】
  9. 人工智能艺术:一场用算法固定创意的马拉松
  10. 微信小程序--瀑布流
  11. C语言六边形蜂巢数组,生活中的数学之奇妙的蜂窝构造
  12. 无法自动修复此计算机鼠标按不了机,win10系统罗技M558鼠标无法自动连接的修复方法...
  13. 小程序昵称突然变成了微信用户头像变成了默认
  14. 随便聊聊,关于大学,未来的规划
  15. 数据挖掘——航空公司客户价值分析(分析+建模)
  16. 电磁炉各主要元件名词,符号及功能解析
  17. Flutter淘宝App之首页聚划算倒计时的实现
  18. 网易云音乐再成功融资!2018年成数字音乐资本大年
  19. 支付账户跨行转账将被叫停 免费转账时代或终结
  20. 一份非常适合收藏的Android进阶面试题!附面试题答案

热门文章

  1. ZooKeeper官方文档学习笔记05-ZooKeeper的屏障(Barrier)和队列(Queue)教程
  2. 【网络安全工程师面试合集】—Web安全攻防技术演化
  3. git push报错 ! [remote rejected] master -> master (push declined due to email privacy restrictions)
  4. easyui tree设置选中节点的方法
  5. vba循环通过键盘某个按键按下退出循环_默纳克3000+最新系统小键盘的使用方法...
  6. protobuf协议_gRPC 使用 protobuf 构建微服务
  7. python中类的构成_Python类的构成元素
  8. linux查看服务器mib,Linux MIB目录的打开和查看
  9. java默认异常处理_spring boot 默认异常处理的实现
  10. P3:线性分类、损失函数与梯度下降