SAP HCM master data

SAP HCM系统中储存的用户数据统称为主数据(Master Data),例如包含员工的个人信息,工作的考勤,薪酬,税务信息等等。储存这些信息的地方,叫做Infotype。T-code是PA30。

SAP HCM master data

每个infotype分别对应着一个特点的业务含义,如果这个业务比较复杂,还可以拆分成若干个subtype来进行存储。

新员工入职的话,使用T-code:PA40来完成雇员的过程,可以通过配置进行规定,有哪些infotype是默认需要在雇员工一开始就要维护好的。比如组织架构,个人信息,地址,工资信息,银行账号等等。

不同于其它的web应用,HR ERP中是不能随意删除、修改已有的数据。原因在于系统必须保证员工的主数据和他的payroll计算结果保持一直。

举例来说,员工维护了2019年1月的主数据,包括他的基本工资,绩效奖金,考勤记录等。在1月底HR会利用系统计算应该给这个员工发多少收入,然后把这笔应付的薪资告知财务部门,最后通过银行发放给员工。等到了2月,如果HR去修改该员工1月份的主数据,比如发现员工旷工了一天,(这里会涉及到payroll的retro,我们先按下不表),那势必会导致1月份发放的工资与修改后的应发放工资不相等。但是这笔钱已经发放给了员工,这就造成了公司的损失,虽说可以从2月份的工资中再找补回来,但是如果这个员工在1月份离职的话,那木已成舟。

另外一种业务情景是,员工在新的一年工资进行了调整,那么在infotype中是不能简单的把新调整过的薪资数据覆盖原来的老数据的。这是因为你可能需要这些老数据做其它相关的计算,比如有些钱是分成好几年给的,或者法律规定HR相关数据要保存5年以上备查等等。

所以对数据的管理在HCM中十分重要。系统必须保证员工在过往的每个时间点上,infotype中的数据和payroll的值是相互匹配和正确的。

所以在SAP HCM中对于infotype的操作有一个十分精彩的设计,叫delimit。它的功能是把数据分割成依据时间界定的不同分条数据,在这些不同时间段的分条数据中存储对应的数值。从技术上来说,就是在数据库表中增加了两个字段,分别是起始时间和结束时间,并且把它们都设置为主键。

SAP HCM master data

有了这样的设计,就可以保证在不同的时间段存储不同的数据,各数据间也可以保证互不干涉。

在系统运行payroll的过程,也会依据每个payroll的period来读取对应时间段的主数据信息。