二维码

[其他] sap增强进阶(七)- 验证和替代

Twilight发表于 2014-05-03 23:34Twilight 最后回复于 2014-05-03 23:34 [复制链接] 9240 0

1. 基本概念
简单理解, 系统将用户自屏幕上输入的信息首先保存在一些临时内表中,当通过所有的业务检查时最后保存到数据库,替代则是根据用户设置的条件去退换掉内表的一些临时内容从而保存到一些字段内容最终保存到数据库时是用户替换的内容。在叙述SAP增强时会详细描述这个机制。

和Validation不同的是,Validation只做检测,一般不做相应数据的修改,Substitution弥补了这方面的缺陷,它和user exit结合将方便用户编写更复杂的逻辑。注意的是,如果Substitution使用User exit在程序中只做检查而不替代内容,此时,Substitution可以完全取代Validation。

2. 实现方法
业务场景:
现有的WBS主数据的维护过程中,存在WBS和相应的负责成本中心的组织结构不一致的情况,包括功能范围、公司代码、利润中心。
处理步骤:
1) SE91新建消息类ZPS

图-20-1 验证与替代实现过程.jpg
图-20-1 验证与替代实现过程
2) GGB0编写校验

A. 检查利润中心

图-20-2 验证与替代实现过程.jpg
图-20-2 验证与替代实现过程

B. 检查功能范围

图-20-3 验证与替代实现过程.jpg
图-20-3 验证与替代实现过程

C. 检查公司代码

图-20-4 验证与替代实现过程.jpg
图-20-4 验证与替代实现过程

3) GCX2维护用户出口,ZGGBR000,应用区域为GBLR[若为替代,使用应用区域GBLS]

图-20-5 验证与替代实现过程.jpg
图-20-5 验证与替代实现过程

4) SE38编写ZGGBR000代码[U901]
  1. exits-name = ‘U901′.
  2. exits-param = c_exit_param_none. “Check Profit Center.
  3. exits-title = text-901. “Check profit center with cost center master data
  4. APPEND exits.
  5. FORM U901 CHANGING B_RESULT.
  6. DATA: L_PRCTR type csks-PRCTR.
  7. Select single PRCTR from csks into l_PRCTR
  8. where ( KOSTL = prps-FKSTL ) “查询与WBS上负责成本中心相同的数据
  9. And ( datbi >= sy-datum ) “成本中心的有效截至日期不早于系统当前日期 And ( KOKRS = prps-FKOKR ). “查询成本控制范围相同的数据
  10. If sy-subrc <> 0 or l_prctr <> prps-prctr.
  11. b_result = b_false.
  12. else.
  13. b_result = b_true. endif.
  14. ENDFORM.
复制代码

5) 若校验/替代未生效,通过SE38执行程序RGUGBR00
6)验证&替代 的传输,需要手动操作
GCT0.jpg
注意需要选择项目最上层文件夹选择“传输”选项,或者直接使用T-code(确认:GCT9, 替代:GCT0)
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表