增强:VA01~SAPMV45A~MM06E005~USEREXIT_CHECK_VBAK

Purpose:Sales Order AUARTQ  参考凭证类型 校验不合格的时候,不让保存VA01成功创建销售订单。

T-code: SE38

程序:SAPMV45A

增强:MM06E005

Form:USEREXIT_CHECK_VBAK

 

Businesses Design业务设计:

 

判断现在的操作是否是订单的创建:sy-tcode = ‘VA01’。只有当订单创建的时候才进行强制参考的检查;

读取自建表ZTSD001,当满足条件VKORG = XVBAK-VKORG

AND VTWEG = XVBAK-VTWEG

AND SPART = XVBAK-SPART

AND VKBUR = XVBAK-VKBUR

AND AUART = XVBAK-AUART.的数据存在时,将数据存入lt_ZTSD001,并进行强制参考的检查;当数据不存在时,则不用检查。

检查当前参考的单据类型是否符合LT_ZTSD001中可以参照的数据类型的要求。如果参照的类型不符合要求,则报错。

自建表:ZTSD001—销售订单参考报价单检查表

字段名 描述 类型 长度 主键 备注
MANDT 客户端 CLNT 3 Y  
VKORG 销售组织 CHAR 4 Y  
VTWEG 分销渠道 CHAR 2 Y  
SPART 产品组 CHAR 2 Y  
VKBUR 销售部门 CHAR 4 Y  
AUART 销售凭证类型 CHAR 4 Y  
AUARTQ 参考凭证类型 CHAR 4 Y  

数据示例:

1000,10,10,1010,YOR,YQOR

这行数据的意思是,对于1000销售组织10分销渠道10产品组1010销售办公室做的YOR类型的单据,必须参照YQOR类型的单据。

SAP ABAP Enhancement Sample Source Code Demo:

SELECT * FROM ZTSD001 INTO TABLE LT_ZTSD001
WHERE VKORG = XVBAK-VKORG
AND VTWEG = XVBAK-VTWEG
AND SPART = XVBAK-SPART
AND VKBUR = XVBAK-VKBUR
AND AUART = XVBAK-AUART.

IF SY-SUBRC = 0.
SELECT SINGLE * FROM VBAK INTO LW_VBAK WHERE VBELN = VBAK-VGBEL.
READ TABLE LT_ZTSD001 INTO LW_ZTSD001 WITH KEY AUARTQ = LW_VBAK-AUART.
IF SY-SUBRC NE 0.
MESSAGE ‘请参考报价单创建销售订单(Plese create SO ref to B order)!’ TYPE ‘E’.
ENDIF.
ENDIF.

我的微信公众号【 hot583 】 或者在这个链接联系我

本文链接 http://www.hot583.com/2022/06/22/mm06e005/

本文为作者原创,如果这篇文章对您有用,欢迎转载,

转载请务必注明来源《今日热点在看》http://www.hot583.com/

微信原文《全文完》

今日热点在看SAP HOT583