SAP HR Schema 详解(一)
一、Payroll schema基础
1、模式和函数
在SAP薪酬中,函数为薪酬计算提供了逻辑公式。函数执行一般的过程-如在给定的薪资方法上计算薪酬税,从特定的信息类型中读取工资类型,计算奖金,并保存薪酬计算的结果。SAP薪酬系统中有几十个函数,有些是与国家相关的而有些不是。每个函数在PE04中定义并有文档;在4.5版本以上可以通过PDSY查看函数文档,在早期的版本可以通过RPDSYS00查看。
在SAP HR术语中,一个薪酬函数与一个ABAP函数是不一样的。薪酬函数也包含ABAP代码,但它不像ABAP函数那样执行。薪酬函数在模式中被薪酬驱动程序(假定为PRCALCUO)所执行。
模式是一系列函数以某种顺序执行的集合-每个函数执行后把结果传给下一个函数。模式可以通过PE01被创建和编辑,但是被保存在表T52C0(SAP标准模式)和表T52C1(用户创建的模式和修改SAP标准模式)。薪酬驱动读取T52C0/T52C1表中的行并依次执行函数。
我们如何跳过保存在表中的薪酬函数而执行ABAP代码来完成工作呢?在t-code PE04中可以看到ABPA代码对应的每个函数。在模式中函数名与ABAP Form有关联,如薪酬函数WPBP映射到ABAP form ?fuwpbp?;函数USTAX映射到form ?fuustax?。所以当薪酬驱动执行模式时,它从模式中取得
函数名,然后在名称前加上?fu?,然后执行perform语句。这是一个很简单巧妙的设计。
2、工资类型(wage type)即工资项
在很大程度上,工资类型只是包含一些数据-比率,数字 和/或数量。但是更详细的,一个工资类型有几十个属性用来控制它是如何被操作和处理的。但是在最后,它在薪酬结果数据库中作为一个对象保存成比率,数字和/或数量。
工资类型大多情况下用来保存一个员工薪水中收入的数量、扣除的数额和税收数额。员工的基本工资保存在一个工资类型中,作为一般用途扣除的费用保存在一个工资类型中,他们应征税的工资和税保存在工资类型中。作为员工工资的基本数据元素——工资类型,也同样映射到FI/CO账户以记录工资上的借贷,并报告在W-2和ERP论坛欢迎您税务表格上。
工资类型也保存统计数据-如带薪时期内工作的小时数,在过去的六个月平均的周工资,或分红计算的工资的数量。工资类型保存在几个表中,但是主要是T512W。将有更多的时间花在T512W表的各个方面。
(重要的视图包括:V_512W_D,V_512W_O,V_512W_B等。)
工资类型有三类:模型、技术和用户。
1)模型工资类型是SAP给客户用来作为向导创建他们自己的工资类型的。他们常常以一个字母开始,SAP可能在系统升级或HRSP中添加、删除或更新他们。
2)技术工资类型经常由SAP产生,以?/?开始。他们一般用在薪酬的特定的标准过程中,但你也可以修改他们,SAP可能在升级的过程中或在HRSP中更新他们。所以,如果你曾经修改过一个技术工资类型,那么要在每次升级以后或HRSP以后检查他们,以保证他们还有你需要的属性。并且不要删除任何技术工资类型。
3)用户工资类型一般以数字开始,SAP在升级或HRSP中是不会改变这些工资类型的。或SAP很少在升级或HRSP中改变这些工资类型。用户工资类型是为所有公司特定的工资支付制定的。
3、规则和操作符
我们的一个长期客户曾经创建了一个保存界面的信息叫“薪水规则”!那些有经验的SAP薪水分析者和顾问立刻看成其中的双层含义和幽默。规则包含SAP薪水中大多基本的逻辑。其中模式是函数的集合,规则是操作符的集合。一个操作符是一个非常基本的被用来操作工资类型的逻辑。例如,操作符MULTI是乘以工资类型中的数字和比率以决定付给员工工资的数目。操作符OUTWP获取一个员工特定的数据并决定如何去处理它。比如,如果工作合同
在信息类型1中是UA,那么执行?x?,如果是UB,执行?y?,ERP论坛欢迎您的执行?z?。
可以通过t-code PE04和PDSY查看操作符,也可以通过PE02编辑操作符。函数对应的ABAP form是以?fu?开始,操作符对应的ABAP form是以?op?开始。比如,操作符MULTI,将有ABAP form ?opmulti?。同模式一样,规则保存在表中,规则被保存在表T 52C5中。
有多年计算机系统工作经验的SAP高级顾问们常在发现工资规则和编程大型机汇编语言的类似性。然而当操作符被正确使用时功能强大,但这没有什么好神奇的。
希望我们这个简短的介绍是有意义的。下一篇SAP工资技术文档中我们将更深入探讨用在SAP的工资模式中的公共函数。
函数最多能有4个参数,SAP文档将告诉你每个参数的用法。通过PDSY和PE04能看到每个函数和操作符。 COPY
这与ABAP和ERP论坛欢迎您编程语言中的?include?相同。当工资执行时,Copy是插入包含在参数1中的模式。好的模式配置风格和好的编程风格是一样的-将公共使用的逻辑放在?include?中,这样能被用于多个地方,同时也增加可读性。 BLOCK
在4.0版中,模式日志是放在树状结构中的。BLOCK BEG开始一个节点,BL
OCK END结束一个节点。在BEG和END之间是包含在节点中。BLOCK BEG/END能被多层嵌套。同时,适当的放置BLOCK BEG/END,使日志更方便读。 IF/ELSE/ENDIF 对
IF函数,有2种方法说明真/假条件。SAP有几个内置的条件可以在参数2(模式U000中的IF NAMC)中使用。你同时也能在参数1中说明一个定制的规则,并且在规则中执行你任意想要的逻辑。在规则中,使用操作符SCOND为IF函数设置真/假转换。 Pxxxx
工资驱动和模式从许多信息类型中读取数据并处理数据。一般是以P和四位数字命名的信息类型来执行。所以,P0014读取并处理从信息类型14来的数据,P0168从信息类型168处理人生保险计划,P2010从信息类型2010中读取附加工资。许多函数,但并非所有的函数,允许你用工资规则进一步精练此过程。例如,模式UAP0表明P0014被规则U011处理过。函数P0168是没有使用规则的函数之一(在一些老的版本中有使用),而是在参数中说明操作符(见模式UBE1)。
有些信息类型在工资中被使用,但没有Pxxx函数。这些包括信息类型207,208,209和210,他们都在主税款函数USTAX中被读取并处理。信息类型0,1,7和8被函数WPBP处理。