增强开发指南:如何在特征中使用自定义程序生成决策返回值?

特征(Feature)是SAP HCM系统配置的一种重要的手段,是配置视图(Custimizing View)、模式(Schema)、规则(Rule)和特征(Feature)四种主要配置手段之一,主要用于提供信息类型屏幕字段的缺省值,也用于报表程序中根据业务逻辑推断生成一些分组值和默认值,也用于定义系统的控制和检查逻辑。

本质上,特征是一棵决策树(Decision Tree),每一个特征都定义有做决策判断所依赖的员工主数据字段的集合,也就是决策树所使用的结构(Structure),SAP已经预定义了标准特征使用的结构,如PME01、PME02、PME03、PME04、PC205等,并预选择了结构中的部分或者全部字段作为构造决策树所依赖的字段。

1、使用TCODE PE03 显示特征的属性,我们可以看到以下的屏幕:

选择屏幕下方的结构按钮,转到以下屏幕,可以看到特征的决策树判断所依赖的结构(PC205),返回值的数据类型(参考的透明表和字段)、决策树转移类型(字段或者内表)。

在显示模式下,屏幕下方式SAP预定义的决策树决策可以使用的信息字段,它们来源于上方的结构,一般是结构中字段的子集。再修改模式下,可以看到哪些字段被选择使用(黄色),哪些没有被选择。我们可以选择没有每标准系统选择的字段,然后保存和激活特征,但使用这些用户新增字段作决策判断却未必比生效,所以如果要想使用这些标准未选择的字段作判断,可以使用程序对特征去做增强。

2、 一般情况下,使用使用决策字段就可以构建决策树,返回最后的决策值,但在某些情况下,可能需要用于判断的员工/申请人信息字段没有被选择作为标准决策字段,此时可以使用程序计算和返回特征的返回值。

本文以特征PPMOD为例,介绍如何使用程序返回特征值,该特征用于返回工资过账所用的员工分组值,然后再定义符号科目和财务科目的对应关系的时候开,可以对同一个符号科目,因为员工分组不同,过账到不同的财务科目。

3、使用TCODE PE03 修改特征PPMOD的决策树, 在主界面上选择菜单预览-〉树维护,特征将会议树形展现,选择根节点后,点击工具栏的“新建”按钮,系统会弹出以下窗口:

这里可以选择:

1)返回值:输入决策树对应分支的返回值;

2)决策实施域:选择决策判断所依赖的字段,来源于特征属性中决策的有效域;

3)子特征:调用另外一个特征,实际上是决策树的嵌套;

4)调用一个程序,使用该程序返回值,例如上面的特征队以员工组不是6的情况,如果员工子组不是C1 的情况使用程序ZPCADD00 返回值。

4、标准的特征很多使用程序RPCADD00,我们可以使用TCODE SE38复制这个程序到自己的自定义程序中,如ZPCADD00,注意这个程序的属性:

注意这个程序的类型是 S-子程序池(Subroutine Pool)。

5、程序 ZPCADD00 包含两个主要的子例程(子程序),一个是 FORM ext_call_f USING namen back status struc,用于返回字段值的特征计算返回值;一个是FORM ext_call_t TABLES back USING namen status struc.

用于返回内表作为返回值的特征。

6、我们只要在代码中找到自己所要用程序增强的特征,在下面写判断逻辑;或者找到自己在 WHEN 'P0082'. back = ' '. 和 ENDCASE.前加上自己调用程序的特征即可,然后在下面写判断逻辑。

7、因为该子程序能使用的变量全部来自于参数struc, 所以只能使用该结构变量中包含的字段做处理。如特征PPMOD寄予结构PC205,所以在程序的开头我们申明TABLES pc205,然后就使用语句 MOVE struc TO PC205,然后就可以依据PC205种的字段做程序判断和处理。注意参数 Struc包含的字段可能多于特征的决策的有效判断字段。这也是使用程序增强可以更灵活和强大的原因。

8、特征也可以使用表格式维护,返回值用&PPMOD(ZPCADD00 )的语法格式,如下图所示:

9、示例代码(略)。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181213G1JIFE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券