SAP Validation和Substitution

先来看看Validation的简单应用:当用户LI_J输入Item金额大于10000时,系统提示Error信息。
1 .1 .新建Validation (T-code:GGB0)
SAP Validation和Substitution_第1张图片
如图 1-1
[1].选择只在凭证头BKPF回车或保存时触发凭证的有效性检查。
[2].选择凭证头BKPF或行项目BSEG做先决条件,而CHECK时只能是行项目BSEG的有效性检查。
[3].选择在凭证头BKPF或行项目BSEG回车或保存时触发凭证的有效性检查。
1.2. 选择 Line item ,新建 Validation: ZCALI1
输入 Message ID (系统要求输入以 Z 开头的,实际上就是自定义的,本例中自定义 ZFI
SAP Validation和Substitution_第2张图片
1.3. 点击‘ step ’,新建 step 001
SAP Validation和Substitution_第3张图片
如图 1-3
[1].先决条件,即当什么情况下,系统才启用有效性检查,可以用Company Code, User ID, T-code等等作为先决条件。
[2].检查,即当先决条件满足的情况下,系统开始根据此处设定的检查条件进行有效性检查,不满足此处的设定,系统就提示message。
[3].消息,即当系统检查到输入的凭证满足设定的检查条件时,将要提示的信息(可自定义)。
1.4.双击Prerequest,输入先决条件:User = ‘LI_J’。
SAP Validation和Substitution_第4张图片
如图 1-4 ,输入先决条件有三种方式:
[1].表栏位,当选择Line Item方式时,系统允许选择凭证头BKPF,凭证行项目BSEG及系统表SYST的栏位值作为先决条件,当然这些栏位的值规则可以通过右边的运算符等输入。如果你够厉害,也可通过菜单改到Export Mode直接输入。
[2].规则,可以新建一个先决条件的规则(如河建就省了吧),其时输入规则也就跟[1]差不多,只不过建立规则后,其它的Validation都可以直接用了。
[3].出口,这个可以用于更复杂一点的应用,接下来会举例说明。
[4].就是我们的先决条件,即当用户是‘LI_J’时,系统启用有效性检查。
1.5.双击Check,输入Check条件:Amount in LC <= ‘10000.00’。
SAP Validation和Substitution_第5张图片
1.6. 双击 Message ,如图 1-6
[1].选择type:E,都知道是Error了吧,即不允许过的。
[2].number:001(自己定义的,你也可以用911,这样较吓人点)
SAP Validation和Substitution_第6张图片
这样一个简单的 Validation 就完成了。
1.7. 我们设定这个 Validation 的激活状态。 (OB28)
SAP Validation和Substitution_第7张图片
如图 1-7
[1].Callup Point,什么东东?简单来讲就是激活点,共三种:凭证头,凭证行项目和整个凭证,对应前面的设定,应为我们之前设定的是凭证行项目,所以这里选2。
[2].检查,选择我们之前新设定的Validation:ZVALI1。
[3].激活状态,共三种:0不激活(NND,忙活了半天,不激活玩什么?),1激活,2除批输入的激活。
1.8.保存后,输入凭证进行验证。(FB50,当然也可以用FI的其它T-code)
SAP Validation和Substitution_第8张图片
如图1-8,当用户LI_J输入金额[1]10001大于设定的10000时,系统做出错误提示,并不允许posting。
好了,现在有这样一种情况,供应商对同一笔费用的发票,隔三岔五的发一次过来,而我们粗心的入账人员呢有不去 review 一下,收到发票就入账,结果重复的付款给人家(你说这样的供应商也有,挺聪明,不管有意还是无意,蒙得到一次算一次,而这样的员工也有,也难怪,整天那么多付款,谁记得这个发票之前供应商有没有给过啊, NND )。现在老大发现了,你系统就不能管一下吗?我输入同样的供应商发票时给我检查一下嘛,这时简单的 Validation 就不好用了,解决的思路如下:
入账时将供应商发票输入到凭证头的 reference 栏位,系统 check 这个号码是否已存在,如果存在则提示错误信息给用户,以核查。 Validation 启用 exit check ,配置如下:
2.1. 新建Validation :ZVALI2  (T-code:GGB0),因 reference 在凭证头,所以我们选择在 Document Header 建立 Validation 即可。
SAP Validation和Substitution_第9张图片
2.2.点击‘step’,新建step:001
SAP Validation和Substitution_第10张图片
2.3. 双击 Prerequest ,输入先决条件: Company Code =  HK10 ’(当然还可以加更多的先决条件)。
SAP Validation和Substitution_第11张图片
2.4. 双击 Check ,输入检查条件,这里我们就选择 [1]exit:U100
SAP Validation和Substitution_第12张图片
2.5. 双击 Message ,如图 2-5
SAP Validation和Substitution_第13张图片
2.6. 我们设定这个 Validation 的激活状态。 (OB28)
SAP Validation和Substitution_第14张图片
至此,Validation设定好了,但我们的exit:U100在哪里呢?
2.7.接下来找到exit所用到的程序。(GCX2)
SAP Validation和Substitution_第15张图片
如图 2-7
[1].GBLR是for Validation的。
[2].GBLS是for Substitution的。
2.8.Copy  程序: RGGBR000 to ZRGGBR000 并编辑判断 reference 重复的代码。( SE38
SAP Validation和Substitution_第16张图片
找到程序中 FORM U100 输入以上 check 代码保存并激活。
2.9. 保存后,修改 exit 指定的程序为 ZRGGBR00 。( GCX2
SAP Validation和Substitution_第17张图片
2.10. 保存后,输入凭证进行验证。( FB60 ,当然也可以用 FI 的其它 T-code
SAP Validation和Substitution_第18张图片
因之前已book了一笔reference为755的发票了,所以系统提示错误信息并不能posting。
 
 
转载自: http://www.cio360.net/h/1784/336645-10872.html

你可能感兴趣的:(validation,gl,FI,替代,substitution)