sap 订单状态修改时间_SAP销售订单状态修改(审核) 计划行自动产生需求,产生MD04需求...

本文详细介绍了在SAP系统中,如何根据订单状态(从20到30)的变化,自动修改计划行并产生MD04需求。通过特定的条件判断和数据操作,实现了在VA01和VA02事务代码下,不同订单类型的自动处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IF ( i_stonO = '20' AND i_stonN = '30').LOOP AT XVBEP INTOGX_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 FROMGX_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 FROMGX_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 FROMGX_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 FROMGX_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 FROMGX_VBEP.ENDLOOP.ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值