注意:Validation触发的条件是满足先决条件但不满足检查条件!
http://blog.sina.com.cn/s/blog_4298a2c80102xd75.html
SAP虹:如何实现防止生产消耗科目被错误记账到成本中心,我们通过校验规则的方法进行限制和控制。
业务场景介绍:
始终存在一个问题, 即 SAP用户错误地将生产消耗通过事务MIGO或手动过帐到成本中心, 尽管生产消耗科目最应过帐到生产订单。
防止此错误的最佳方法是使用校验规则 (事务码:GGB0) 并指定在成本中心上不允许的 总账科目(GL 帐户), 这样, 每当 SAP 将不允许的科目记账到成本中心时, 用户就会得到一个错误。
由于校验规则是系统配置的一部分, 因此在以后更改校验规则中的规范时, 如果创建了新的 总账科目或需要一个异常, 这将是一个很大的难题。
为了能够在不做任何配置的情况下编辑规则的规范, 我们可以在校验规则中维护一个科目集, 而不是特定的 总账科目, 在这种情形下, 可以在生产环境中 (由授权用户) 自由编辑 这个科目集。
这将涉及创建用户出口和编辑标准 SAP 程序的副本。
操作步骤:
1) Trx GS01 > 创建科目集
2) Trx SE38 > 拷贝程序 RGGBR000 到 ZRGGBR000 ,在ZRGGBR000标准代码之后复制以下代码。
exits-name = 'ZCC'.
exits-param = c_exit_param_none.
exits-title = text-103.
APPEND exits.
FORM ZCC USING b_result.
RANGES: GLS FOR BSEG-HKONT.
Select VALSIGN AS SIGN VALOPTION AS OPTION
VALFROM AS LOW VALTO AS HIGH
FROM SETLEAF INTO CORRESPONDING FIELDS OF TABLE GLS
WHERE SETNAME = 'GL_CC_BLOCK'.
if SY-SUBRC = 0.
IF BSEG-HKONT IN GLS.
b_result = b_true.
else.
b_result = b_false.
ENDIF.
endif.
ENDFORM.
————————————————
GL_CC_BLOCK 是科目集的名字
3) Trx GCX2 >> 分配程序 ZRGGBR000 到校验规则出口
4)Trx GGB0 >> 创建校验
5) Trx OB28 >> 在公司代码层激活校验
现在我们可以用相应的事务码测试创建的校验,例如 FB50
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/74753/viewspace-2143200/ ,如需转载,请注明出处,否则将追究法律责任。