校验和替代
1、OB28/GGB0校验
在创建会计凭证时,当公司为SC10,科目为14800000时,分配字段必须为01,否则报错。这就可以通过校验进行限制
事务代码OB28
如果是第一次配置,则需要新增条目,输入公司,调用点(1代表抬头,2代表行项目,3代表完全凭证),输入确认名称,活动等级为1激活。
如果校验的公司下已经存在配置,则直接双击确认列进入
定义前提条件
检查需要校验的字段值是否符合要求
当校验不通过,则报错
测试,创建会计凭证报错
2、OBBH/GGB1替代
2.1、唯一退出
事务码GCX2,复制标准程序RGGBS000到ZRGGBS000中
将GCX2的退出程序改为ZRGGBS000
添加自定义出口
其中出口参数
exits-name = '……'.表示出口例程名称
exits-param = '……'.有 c_exit_param_none/field/class,表示例程的用法.
exits-title = '……'.例程的抬头显示
三种例程用法:
c_exit_param_none:表示替代执行完毕后,不返回任何参数给调用它的程序或环境。
c_exit_param_field:表示替代执行后,可以返回一个或多个字段的值给调用它的程序或界面。
c_exit_param_class:表示允许替代返回一个或多个对象(通常是SAP ABAP中的内表或结构)给调用者
在子例程中添加替代逻辑
事务代码OBBH
同理维护公司对应的替代,双击替代进入配置
配置前提条件
替代选择唯一退出
出口U901,保存即可
测试替代
创建会计凭证时,进入替代逻辑
结果如下
2.2、常量替代
创建步骤,替换分配字段
先决条件
选择替换字段
找不到要替代的字段时,可以通过SM30维护VWTYGB01,将替代字段的排除选项去掉,就可以找到了
替换为常量值
创建会计凭证时替换
2.3、字段分配替代
选择替代字段,并选择字段分配
将分配的值替换为抬头参考凭证的值(BKPF-XBLNR)
创建会计凭证时,进入断点
结果
3、问题解决
替代之后,如果找不到该出口的例程,可以用程序RGUGBR00重新生成替代
如果传请求后,发现报错,替代的出口提示无法找到对象,可以在程序中使用更新索引功能解决