SAP ABAP 验证与替代
1.校验与替代的作用
校验(Validation):在凭证保存前根据设置条件判断此凭证是否有效,其中可以按抬头、行项目或完全凭证来判断,然后再根据Validation设置的消息类型决定凭证是否允许保存。
SAP校验是对在系统输入的数据按照规则设定检验是否正确,可以按抬头、行项目或完全凭证来判断,然后根据Validation设置的消息类型决定凭证是否允许保存(取消、错误、警告、信息),通过事物码OB28和GGB0实现。
校验步骤:
1、事务代码SE38,将程序 RGGBR000复制为ZRGGBR000
2、事务代码GCX2,维护应用区域GBLR退出程序ZRGGBR000
3、事务代码GGB0,维护有效性验证。
4、事务代码GGB4/OB28,激活有效性验证。
替代(Substitution):在凭证保存前根据设置条件判断此凭证是否有效,其中可以按抬头、行项目或完全凭证来判断,然后根据替代规则把原有字段替换当前字段。
SAP替代是指对某个字段或某个内容根据一定的条件判断后替代设定的值,该替代值可以为一个常量值,也可以为变量,根据实际业务而定,替代通过事物码OBBH和GGB1实现,其中可以按抬头、行项目或完全凭证来替换。
替代步骤:
1、事务代码SE38,将程序 RGGBR000复制为ZRGGBR000
2、事务代码GCX2,维护应用区域GBLS退出程序ZRGGBR000
3、事务代码GGB1,维护替代。
4、事务代码GGB4/OBBH,激活替代。
校验和替代的区别: 确认是在按条件判断的时候直接做校验,举个例子说,如果一个凭证不符合确认的校验规则,那么就出现提示。而替代,是直接替换成新值。讲到这里还是不得不举个例子来说明一下。
总结:
- SAP标准并不是所有字段都能用与替代或验证;
- SE11(GB01)可以查看那些字段可以用与凭证抬头、行项目、完全凭证替代或验证;
- 如果SAP标准不能用于替代或验证字段可以通过SM30(V_GB01C)修改该字段,使其可以用于替代或验证;
- 验证或替代激活后,SA38运行程序RGUGBR00生成替代和验证程序代码;
- SE11(GB31)可以查看不同应用范围有那些验证或替代调用点可用;
- RGUGBR00生成替代和验证程序代码包含在程序GBTAAFI0中;
OKB9默认设置优先权大于替代GGB1,替代优先权大于手工输入。
例子:发票校验时如果凭证无文本则系统提示“请输入合同号码”。确认功能,系统按字段是否为空为检查条件,如为空校验后在凭证保存时出现上述信息。替代功能,同上,只是在凭证保存时直接把文本字段换成相应的信息。但不是所有的替代都可以用(比如凭证预制)这些可以通过GB01来查看。
2.确认与替代的操作
常用T-code:OB28:AP/AR/GL| OAZ1:AM|GCVW:Global Validation
下面以一个凭证校验必须输入0-9999之间的数字的实例来解释一下确认的与替代的操作。

【图】1 是可以对文档抬头控制。其只可选BKPF字段和只在凭证头回车或保存凭证触发。
【图】2 是可以对行项目进行控制。校验的时候是校验行项目。其先决条件可选BKPF和BSEG,但是Check只能选BSEG字段,否则不被触发。
【图】3 是完全控制。其回车和保存都触发。
RULE:就是说可以建立一个规则,那么这个规则可以任意被任意调用,有一点像公用的意思。
【图】1,先决条件选择分配字段不能为空。
【图】2 这就是让选字段,同时看【图】4,不光是可以选TABLE还可以选RULES,还记得RULES吧,我前面已经讲过的,当然有EXIT就更好了(T-code:CMOD可以建立)
【图】3 各种选择条件,阿拉最喜欢的。
先决条件:Reference <> ""
检查:Reference >=
"0" AND Reference <= "9999"
信息:输入号码。
MESSAGE TYPE,我们可以控制是警告还是报错。MESSAGE NUMBER是输入信息是什么?
要记得激活哦。来看看效果吧~~~
【图】1输入了超出0-9999的范围【图】2报错“SAP方丈”。
SAP替代逻辑被广泛应用于各模块,分为抬头,行项目和完全凭证替代.
替代substitution,使用事务码:OBBH
/GGB1
1)替代指用户在集成凭证或手工输入数据到SAP系统时用另一个值代替某值.
2)替代在验证/校验前执行GGB0/OB28.
3)替代没有错误信息,直接写入替换值,可写出口程序.
4)替代可以在用户输入数据时方便地使用 确认与替代的操作
最后记住激活替代GGB4/OBBH
OKB9默认设置优先权大于替代 GGB1,替代优先权大于手工输入
对于新增的需要在替代中运用的字段,必须将表GB01中此字段激活(BEXCLUDE排除去掉选择),并且再次运行程序RGUGBR00激活!
内容详解:
SAP所有模块的替代字段都由表GB01控制。
所谓releasefields for substitution,就是在对应的BOOLCLASS中添加该字段,或者将该字段的GB01-BEXCLUDE= 'X'改为GB01-BEXCLUDE = ' '。
BOOLCLASS(Boolean class)对于FI/CO,BOOLCLASS对应的是调用点:
BOOLCLASS = 008 at callup point 1 凭证抬头替代
BOOLCLASS = 009 at callup point 2 凭证行项目替代
BOOLCLASS = 015 at
callup point 3 完全凭证替代
对于调用点3 完全凭证替代,SAP缺省的是未激活即release所有的字段,因为GB01有如下行项目内容:
BOOLCLASS CLASSTYPE BCLTAB BCLFIELD BEXCLUDE
0015 S BKPF * X
0015 S BSEG * X
所以,完全凭证替代,你会得到如此信息-"此事件可以不替换任何字段"。
解决步骤如下:
1. 确认你已经阅读并了解Note 42615-Substitution in FI和391309 - GB01Boolean class 015: FI subst. for call-up point 3。
2. 尝试你需要替代的字段是否可以在调用点1 抬头或2 行项目实现。
3. 如果第二步失败,修改表GB01,将相应记录删除或将最后字段置空:
如果是抬头字段,删除“0015 S BKPF * X”,添加所需字段;
如果是行项字段,删除“0015 S BSEG * X”,添加所需字段。
由于表GB01不可(通过配置)修改,你需要写一段小程序或有相应改表的权限。
4. 运行程序RGUGBR00重新激活替代。
5. 重新维护OBBH。
SAP ABAP 验证与替代的更多相关文章
- 【ABAP系列】SAP ABAP替代校验全解析
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP替代校验全解析 ...
- 【ABAP系列】SAP ABAP 的替代和校验
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 的替代和校验 ...
- ABAP开发顾问必备:SAP ABAP开发技术总结
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP开发顾问必备:SAP ABAP开发技术总结[转载]
转载自SAP师太技术博客,原文链接:http://www.cnblogs.com/jiangzhengjun/p/4260224.html 在原文上增加了链接,此文及此文的链接版权都归SAP师太所有. ...
- 【ABAP系列】SAP ABAP 物料凭证增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 物料凭证增强 ...
- 【ABAP系列】SAP ABAP常用正则表达式大全
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP常用正则表达式大 ...
- SAP ABAP学习路线图--标准教程
SAP ABAP学习路线图--标准教程 摘自:http://www.cnblogs.com/clsoho/archive/2010/07/05/1771400.html
- [SAP ABAP开发技术总结]ABAP程序之间数据共享与传递
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]字符串处理函数、正则表达式
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- SAP-ABAP系列 第二篇SAP ABAP开发基础
第二章SAP ABAP开发基础 1.ABAP数据类型及定义 ABAP程序中共包含8种基本数据类型定义, 类型名称 描述 属性 C Character Text (字符类型) 默认长度=1,默认值 = ...
随机推荐
- 003. html篇之《表单》
html篇之<表单> 一.结构 <form action="url" method="post" name=""> ...
- win10系统如何安装无线网卡驱动?win10系统安装无线网卡驱动教程
转载:win10系统如何安装无线网卡驱动?win10系统安装无线网卡驱动教程_windows10_Windows系列_操作系统_脚本之家 (jb51.net) win10系统如何安装无线网卡驱动? 有 ...
- 快速上手springboot(2)
简介 Spring程序的缺点: 1.依赖设置繁琐 2.配置繁琐 SpringBoot程序优点 1.起步以来(简化依赖配置) 2.自动配置(简化常用工程相关配置) 3.辅助功能(内置服务器,...) S ...
- 4.git的指令应用
1.stash 应用: 应用场景:在当前分支开发代码,开发到一半,代码没有提交,你想在当前分支的基础上切换到别的分支:或者创建新的分支,所以需要把当前开发的内容进行藏匿起来. 1.1藏匿指令: ...
- 技嘉b75m-d3v在nvme固态安装win7并且oem激活的实现过程
本篇文章主要讲述了实现台式机主板oem激活win7以及旧平台主板使用nvme固态安装win7的过程 事情的起因是我去年在小黄鱼买了台戴尔n4110,今年买了台惠普银河舰队2代,并且把里面128GB的n ...
- window向linux传递文件
1.需要在window建一个ftp的server 2.在linux的指定目录下输入: curl ftp://192.168.98.90/libalgorithm.so -u "embftp: ...
- zabbix中文显示乱码解决
问题zabbix使用中文显示,"监测-->图形"查看资源使用情况时会有乱码 解决问题1.修改配置文件(文件位置:$zabbix_path/include/defines.in ...
- java的排序问题
普通排序 对于基础数据类型的排序,基本只是调用一下方法 如java的 1 Arrays.sort(nums); 那么如何自定义排序规则呢? 自定义排序规则: 假设现在有这么个问题,有n个学生, 每个学 ...
- luna lunatic
Luna是罗马神话的月神.英语中Lunacy.Lunatic等意指疯狂的字语源均来自Luna.月亮的阴晴圆缺影响地球的潮汐涨退甚至生物周期,故此古时的人们相信月亮拥有使人疯狂的魔力,人狼等传说亦是因此 ...
- wpf treeview 选中节点加载数据并绑定
<TreeView Grid.Row="0" Grid.Column="0" x:Name="FolderView" Canvas.T ...