validation 不生效_022 【基础配置】校验Validation及替代Substitution

2685ec2a85711987176af787bd2804a3.png

作者:Roxy(网名)

声明:本文章仅用于SAP软件的应用与学习,不代表SAP公司。(注:文中所示截图来源SAP软件,相应著作权归SAP所有。)

  • 校验/有效性检查Validation

Validation的作用:在凭证保存前根据设置条件判断此凭证是否有效,再根据Validation设置的消息类型决定凭证是否允许保存

以下为举例:财务凭证中Doc.HeaderText区域输入了日期信息,要求对于公司代码FSIP,凭证类型Z2的凭证,FB02更改凭证时只能按照DD.MM.YYYY的格式更改日期,而不能改成其它的日期格式或者字符。

78dbeca6301000d58030aa971318442d.png

  • Define Validation定义校验:GGB0

ecedecdcb64b3d6b6dbb7215f10e3b28.png

选中Document header 或Line Item或Complete document点创建Validation, 再选中Validation点创建Step.

Document header 或Line Item或Complete document的选择:如果只涉及到凭证头处的字段,比如要求Doc. Header Text不能为空,则选Document header;如果只涉及到行项目,比如要求科目4036000必须输成本中心或利润中心,则选Line Item;如果均有涉及,比如要求凭证类型为KR且供应商为XXXX时,Text不能为空,则选Complete document

以第二个line item validation为例:

57989cd3af8fc383e27c2082f193c220.png

去BSEG table选G/L 字段,点右边 =,再点Constant常量,选择科目4036000,意思是Validation的前提是凭证的行项目输入了科目4036000

bc13a3e02ebc81a9b90e2b1e40b30281.png

同上,Check处的意思是:要求成本中心非空或者利润中心非空,即二者至少要填写一个

在创建complete document的validation时,BSEG中的一些字段如vendor, G/L是灰显,此时需要让ABAP写user exit,check处的条件选择此user exit(下面的Exits tab而不是Table Fields tab)

5ad384451c446ed1601901f6fc4bb316.png

Message处填写若Check中的条件不满足时,系统显示的信息,Message type E表示Error,点Message class旁边的铅笔维护message text

18f9ecff23328882ebfeb4cb4a1ac911.png

如果要更改Message Class,比如当前的message class是本地的,需要更改成一个可以传输到Quality或 Production的message class,则在上图界面中点菜单Goto>>Message class

71c338acbba5a78707e744bbd2dda64c.png

菜单Message class>>Create创建新的message class。

之后在最初的GGB0界面选中Line item,点菜单Environment>>Change message class

16a92b10b16532f5a0677846fd01cce5.png

  • Define Validations for Posting定义记账凭证校验:OB28/OKC7

OB28是FI的校验,OKC7是CO的校验

d17e1ef133aa4d57372590b2484c5970.png

Call up point 1为凭证头,2为行项目,3为整个凭证;最后一项1表示激活

  • 传输:OB28/GCT9

要传输两次

b4eee055b380729ce42b1dabf15760dc.png

双击进去

526606789000330791c76883b006983f.png

GCT9传输:

3d65ba7c1332240a71514dc0fd73ec17.png
  • 替代Substitution:OBBH/GGB1

替代同校验相似,校验做的是有效性检查,而替代则是把某个字段替换成期望值。 GGB1是总的维护各处替代规则的地方;OBBH为分配和激活Finainal Accounting替代的地方;其他如0KEL为销售订单中利润中心替代激活;OBBZ为Functional Area替代激活等   【例】F.13自动清账时,若GR/IR借贷方金额有差异,则要产生清账差异——借:费用(清账差异)              贷:GR/IR 一般来讲费用过账的成本对象如获利能力分析段是与GR/IR一致的,比如过账到同一个利润中心,假设需要将所有的此类费用过账到某个特定利润中心以便后期统一处理,这时就需要替代了。 03c710f06635238ecb08f6055191c368.png 如上图,当条件满足“公司代码为FSIP的清账操作(TCODE: FB1S),过账到科目4036990(清账差异科目)”时,将利润中心替代为138010。 关于原因代码的替代:替代程序中默认是找不到原因代码字段的,需要SM30>>更改表VWTYGB01,去掉Exclude中的X—— a2c2591f5e050420f2ff3d2a5e07ee1b.png 89f1299f951c5b0e1105df20dfeed5b8.png 去掉BSEG-RSTGR的勾 7b01c3f1cdd814dc2d00d2f30e39516f.png 值得注意的是Line Item下的替代FI_01, FI_02, FI_03等应按照公司代码分类,因为,如下图,一个公司代码在一个level上只能有一个替代被激活。 0715bfc5ab5331158a3717b2ecbb64ec.png
  • 传输:GCT0

  971d0cdefa479539403012b68c7efc35.png
  • 校验、替代与字段状态组间优先级

首先,若字段状态组为必输,校验没什么意义,替代也不会起作用。 若字段状态组为可选和隐藏,校验都会生效,但若字段状态组隐藏,录入凭证时即使有校验的错误信息,也没有地方去更正(看不到待更正字段),所以还要注意二者不要冲突。 若字段状态组为可选,且有校验存在,则替代先起作用再校验。 若字段状态组为隐藏,且有校验存在,自动过账时替代起作用(手动过账由于字段隐藏而过不去)

分享是一种精神

ebbcb6d3d622361973bb73145a188068.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值