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/
微信原文《全文完》