FI凭证的有效检查Validation/Substitution
来源:互联网 发布:淘宝花呗买充值卡 编辑:程序博客网 时间:2024/06/04 17:52
转:
凭证的有效检查
在HR,AP,AP,GL,Consolidation,Real Estate,Special Purpose Ledger等多模快都能发现有效性检查(Validation)配置,所谓Validation不过是在凭证保存前根据设置条件判断此凭证是否有效,再根据Validation设置的消息类型(关于消息请参考第例消息控制)决定凭证是否允许保存(顺利保存的),对稍微了解ABAP开发基础的用户是很容易理解的.
凭证Validation,Substitution和User Exit的使用保证了凭证能成功通过某些企业实际的自订复杂业务检测最后保存在数据库中.
***可使用Validation检测在记帐时某些cost center只能对应到具体某Functional Area(如上了Functional Area的话),某些费用类科目只能记到某具体
Cost center等.
比较实用的Validation IMG T-code有:OB28:AP/AR/GL Doc.|OAZ1:AM Posting|
GCVW:Global Validation(In SPL,Company Level)|GCVV:Local Validation(In SPL,
Company code Level).
下面以OB28为例,详细说明Validation的用法.(IMG Path如图7-1标号1)
[1]定义记帐有效检查.
[2]定义会计凭证退代.
建立Validation步骤:
下面以Line Validation STLINE只允许用户STONEF在5100(本位币HKD)记帐时本位货币金额不超过1000HKD为例子,详细介绍Validation的配置步骤.
***当然使用其他配置也能达到相同效果.
1.选择Callup Point建立Validation Name(如图7-2).
[1]1.在凭证抬头触发 2.凭证行项目触发 3.整个凭证触发,触发通常发生在用户按Enter键和保存之时.
[2]新建Validation时按F2进入详细画面(如图7-3)
[3]1表示激活,只有选择激活后Validation才真正起作用.
2.Validation建立步骤详解(如图7-3).
[1]新建Validation,如在此新建Validation要回到图7-2按New entries然后激活.
[2]新建Step,一个Step包含先决条件,检查和消息.图7-3 Step001表示的是在
Company code 5100(Local Currency HKD)下如果User是STONEF,如记帐本位币超过1000HKD,就弹出错误消息ZFIMSG 017(关于消息剖析请参考第例消息控制).
***Validation触发的条件是满足先决条件但是不满足检查条件.
[3]Rule可用在Validation,Substitution,Report Write Selection甚至ATP check,简单理解,经常用到的一些判断条件可建立成Rule,将Prerequisite和check建立俩Rule-ZRULE1(图7-4)和ZRULE2(图略.BSEG-DMBTR <= '1000.00'),和图7-2效果一样,不同的是此俩rule还可用在Substitution等中(请看第8例凭证的退代),可重复使用.
重复性的好处还表现在你只要修改rule(比如现在STONEF允许最大记帐金额是
2000),所有用到此rule的Validation,Substitution全部生效.
图7-5使用Rule和图7-2直接使用ABAP code效果一样.
Rule做为一个条件可用在定义其它Rule,比如ZRULE3包含ZRULE1 and其他条件.
[4]Header Validation只可选BKPF字段和只在凭证头回车或保存凭证触发.
[5]既然Item Validation先决条件可选BKPF和BSEG,但是Check只能选BSEG字段,否则不被触发.
***比如先决条件条件是BKPF-BUKRS,Check是BKPF-USNAM,很明显这是无效的Validation.
另一个问题是如有多个行项目满足了条件会弹出多条消息.
[6]整个凭证有效,就是在Doc Header,Item回车和保存都触发.
[7]先决条件条件(参照[2]).
[8]检查(参照[2]).
[9]SAP消息使用在多种地方,比如想打印传真PO需要建立一个相应消息,另外消息还用在处理程序例外上,在这里是指后者(更详细请参考第例消息控制).
如上图7-6.
1.E表示消息定义为错误类别,此时不可保证凭证,I,W类别只是给出信息和警告,允许凭证保存,如选A,则会退出当前Tcode操作.
2.就是Tcode:SE91定义的Message Class(图7-7).
3.在此选择了消息号017使用了俩参数(&),&表示在实际弹出消息时能使用实际值取代&.
4.消息变量.
图7-8表示用户STONEF在使用FB50手工记帐时,Local currency amount>1000
时出现的错误(使用ZSTLINE行Validation),出现的错误消息,由于凭证有俩行,此消息将弹出俩次.
1.ZSTLINE显然对USER STONEF操作所产生的任何会计凭证都有效,比如只想限制STONE在使用FB50记帐但是F-53付款时却允许超过1000HKD,请在先决条件上再加上Tcode FB50则Validationi就只对FB50有效.
2.想用Tcode比如FB50测试新建Validation,起码要求退出当前操作再进入,否则SAP会从缓冲中读数据认为还是上次的配置,结果拥护却认为配置失败,最保证的方法是从Validation IMG窗口使用/O FB50(或其它Tcode).
3.这种方法同样适用于任何其它相同情况的测试.
3.再谈建立Validation操作.(图7-9)
[1]删除Prerequisite和Check代码.
[2]合并字符字段
[3]比如对line Validation,BKFF,BSEG,SYST(如想By Tcode选SYST-TCODE做条件)三对象可使用.
[4]选择rule做Prerequisite和Check(参考图7-5).
[5]可使用User Exit做Prerequisite和Check.(参考第8例凭证的退代).
[6]一些常用逻辑表达式.
[7]通常使用的是Constant(常量).
1.读者也许有这样的疑问,Validation究竟是怎么工作的?很好,使用SE37在Function
FI_VALIDATION_HEADER和FI_VALIDATION_ITEM合适位置设置断点,就可知道更详细的程序逻辑.
另外,相关Table T001D|和相关程序GBTDMFI0|RGUGBR00,有兴趣的读者不妨研究一下.
2.另一个留给读者的疑问是,一个Validation可有多个Steps,不妨假设一Line Validation有俩Steps-STEP1和Step2,它们的Prerequisite都是:BKPF-BUKRS = 5100,但是Check却不同甚至是矛盾的,Step1 check是BSEG-DMBTR <=1000.而Step2-check却是BSEG-DMBTR > 1000,结果会如何?
- FI凭证的有效检查Validation/Substitution
- 关于FI凭证的字段状态
- ABAP&FI FI/CO接口:待更新的不一致的FI/CO凭证标题数据
- SAP Validation和Substitution
- 批量上传SAP FI凭证上的附加的Note
- FI--关于凭证的修改和冲销操作
- FI--关于凭证的修改和冲销操作
- FI--关于凭证的修改和冲销操作
- FI--关于凭证的修改和冲销操作
- FI--关于凭证的修改和冲销操作
- SAP FI模块-记账凭证FB01的BAPI
- MIRO中文本如何传入FI凭证的
- MIRO中文本如何传入FI凭证的
- FI 清帐,未清帐,客户凭证和供应商凭证以及总帐和明细帐的关系
- FI--关于FI凭证字段的可见强制输入的配置说明
- 调用BAPI创建FI凭证
- FI--关于财务凭证的行项目数的最大999的限制
- MB5B中FI凭证摘要是激活的/结果可能不正确 的错误
- C++运算符重载转换运算符
- crystal report 不能显示工具图标和图表的解决办法
- iis设置脚本
- 2.2 将类型构建到模块中
- Groovy + Grails 资源汇总(持续追加中......)
- FI凭证的有效检查Validation/Substitution
- 三天收录的网站
- VS2005 C++ 项目怎样添加“依赖”、“库目录”和“包含目录”
- 制作自己的XP开机登陆界面
- J2EE、CORBA、DNA三种主流中间件平台比较
- 基于Java的模板框架-Velocity(1)
- SoftGrid的网络资源
- New skills released!
- 简单的VC 操作XML 文件的的方法