导读
INTRODUCTION
工号分配:SAP HCM中员工编号是判断员工的唯一标识,所以可以设置员工分类设置不同员工编号范围,今天遇到的case就是不能按照标准的feature:NUMKR设置分类,根据根据事件原因设置不同的号段。NUMKR的细分维度只有BUKRS、WERKS、PERSG、PERSK没有办法选到时间原因。
作者:vivi,来源:osinnovation。
背景:系统已经上线,现在有特殊的人群,需要单独划分员工编号号段,但是单独规划出来的人群,不方便在人事范围、员工组、员工子组设置,所以这个号段的设置就比较难处理,今天是借用事件原因的字段做分类,设置单独的号段。
步骤一、设置对应的员工工号分段
步骤二、通过事物码pe03,设置feature;NUMRK
可以看到系统提供的NUMKR这个feature只能根据这5个维度设置对应的员工编号分组,但是目前因为特殊原因,这五个维度无法满足。
原来在国网的时候我记得原来feature是可以自己写代码的,所以想想是不是可以根据配置加代码双重组合完成这个case,于是看规则中有个否则,点新增有个程序的选项,这里可以设置自己写的report,featue会走这个自定义的代码。
这里我借鉴事件原因来区分,首先看到这个repot只有namen、back、status、struc这几个字段,但是这个几个字段并不是我需要的数据,所以想到是不是可以利用MP00000这个程序的P0000的内表数据,想到原来做过从全局变量获取内存数据,我记得原来刚学ABAP的时候有篇文章叫隔山打牛,获取全局变量程序某个变量的值, fielda = '(MP000000)P0000-MASSG'.大致逻辑是取到P0000内表的MASSG字段,这个字段就是事件原因,如果时间原因是08,那么走的编号范围是04,否则就走01,这样可以把feature与自定义的report结合使用。
步骤三、测试编号范围
开始做测试的时候,是想用MASSN这个事件,在程序中用指针修改massn的值,但是程序一直无法正确生成工号,所以只有借鉴massg字段。
在callpa40的时候,790行就能获取到员工编号。所以只需要三个信息类型就能生成对应的员工编号。