SAP HR Schema 详解

2018-11-23 12:38

[推荐][原创]SAP HR Schema 详解(一)

一、Payroll schema基础

1、Schema 和Function

在SAP薪酬中,Function为薪酬计算提供了逻辑公式。Function执行一般的过程-如在给定的薪资方法上计算薪酬税,从特定的信息类型中读取工资类型,计算奖金,并保存薪酬计算的结果。SAP薪酬系统中有几十个Function,有些是与国家相关的而有些不是。每个Function在PE04中定义并有文档;在4.5版本以上可以通过PDSY查看Function文档,在早期的版本可以通过RPDSYS00查看。

在SAP HR术语中,一个薪酬Function与一个ABAP Function是不一样的。薪酬Function也包含ABAP代码,但它不像ABAP Function那样执行。薪酬Function在Schema 中被薪酬驱动程序(假定为PRCALCUO)所执行。

Schema 是一系列Function以某种顺序执行的集合-每个Function执行后把结果传给下一个Function。Schema 可以通过PE01被创建和编辑,但是被保存在表T52C0(SAP标准Schema )和表T52C1(用户创建的Schema 和修改SAP标准Schema )。薪酬驱动读取T52C0/T52C1表中的行并依次执行Function。

我们如何跳过保存在表中的薪酬Function而执行ABAP代码来完成工作呢?在t-code PE04中可以看到ABPA代码对应的每个Function。在Schema 中Function名与ABAP Form有关联,如薪酬Function WPBP映射到ABAP form ?fuwpbp?;Function USTAX映射到form ?fuustax?。所以当薪酬驱动执行Schema 时,它从Schema 中取得Function名,然后在名称前加上?FU?,然后执行perform语句。这是一个很简单巧妙的设计。

2、工资类型(wage type)即工资项

在很大程度上,工资类型只是包含一些数据-比率,数字 和/或数量。但是更详细的,一个工资类型有几十个属性用来控制它是如何被操作和处理的。但是在最后,它在薪酬结果数据库中作为一个对象保存成比率,数字和/或数量。

工资类型大多情况下用来保存一个员工薪水中收入的数量、扣除的数额和税收数额。员工的基本工资保存在一个工资类型中,作为一般用途扣除的费用保存在一个工资类型中,他们应征税的工资和税保存在工资类型中。作为员工工资的基本数据元素——工资类型,也同样映射到FI/CO账户以记录工资上的借贷,并报告在W-2和税务表格上。

工资类型也保存统计数据-如带薪时期内工作的小时数,在过去的六个月平均的周工资,或分红计算的工资的数量。工资类型保存在几个表中,但是主要是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、Rule和Operation

我们的一个长期客户曾经创建了一个保存界面的信息叫“薪水Rule”!那些有经验的SAP薪水分析者和顾问立刻看成其中的双层含义和幽默。Rule包含SAP薪水中大多基本的逻辑。其中Schema是Function的集合,Rule是Operation的集合。一个Operation是一个非常基本的被用来操作工资类型的逻辑。例如,Operation MULTI是乘以工资类型中的数字和比率以决定付给员工工资的数目。

Operation OUTWP获取一个员工特定的数据并决定如何去处理它。比如,如果工作合同在信息类型1中是UA,那么执行?x?,如果是UB,执行?y?,

可以通过t-code PE04和PDSY查看Operation,也可以通过PE02编辑Operation。Function对应的ABAP form是以‘fu’开始,Operation对应的ABAP form是以?op’开始。比如,OperationMULTI,将有ABAP form ?opmulti?。同Schema 一样,Rule保存在表中,Rule被保存在表T52C5中。

有多年计算机系统工作经验的SAP高级顾问们常在发现工资Rule和编程大型机汇编语言的类似性。然而当Operation被正确使用时功能强大,但这没有什么好神奇的。

希望我们这个简短的介绍是有意义的。下一篇SAP工资技术文档中我们将更深入探讨用在SAP的工资Schema 中的公共Function。

Function最多能有4个参数,SAP文档将告诉你每个参数的用法。通过PDSY和PE04能看到每个Function和Operation。 COPY

这与ABAP和编程语言中的?include?相同。当工资执行时,Copy是插入包含在参数1中的Schema 。好的Schema 配置风格和好的编程风格是一样的-将公共使用的逻辑放在?include?中,这样能被用于多个地方,同时也增加可读性。

BLOCK

在4.0版中,Schema 日志是放在树状结构中的。BLOCK BEG开始一个节点,BLOCK END结束一个节点。在BEG和END之间是包含在节点中。BLOCK BEG/END能被多层嵌套。同时,适当的放置BLOCK BEG/END,使日志更方便读。

IF/ELSE/ENDIF 对

IF Function,有2种方法说明真/假条件。SAP有几个内置的条件可以在参数2(Schema U000中的IF NAMC)中使用。你同时也能在参数1中说明一个定制的Rule,并且在Rule中执行你任意想要的逻辑。在Rule中,使用Operation SCOND为IF Function设置真/假转换。

Pxxxx 工资驱动和Schema 从许多信息类型中读取数据并处理数据。一般是以P和四位数字命名的信息类型来执行。所以,P0014读取并处理从信息类型14来的数据,P0168从信息类型168处理人生保险计划,P2010从信息类型2010中读取附加工资。许多Function,但并非所有的Function,允许你用工资Rule进一步精练此过程。例如,Schema UAP0表明P0014被RuleU011处理过。Function P0168是没有使用Rule的Function之一(在一些老的版本中有使用),而是在参数中说明Operation(见Schema UBE1)。

有些信息类型在工资中被使用,但没有Pxxx Function。这些包括信息类型207,208,209和210,他们都在主税款Function USTAX中被读取并处理。信息类型0,1,7和8被Function WPBP处理。

PIT

PIT是Process Input Table的首字母简写,它也是工资中最常用功能最强大的Function之一。当工资类型被Pxxx Function读入工资时,他们被保存在称为IT(Input Table)的内部表中。PIT通过内部表循环,并应用包含Rule中的逻辑。所以对于IT中的每个工资类型,它都将从Rule中申请一个逻辑。

PIT的目标是将工资类型从IT中移出,移入到RT(Result Table)中。大多数情况下,被PIT调用的Rule会改变工资类型的一些属性然后把他们从IT中转移到RT中。工资类型也能留在IT中并移到表中去。在说明Operation是如何工作的时候我们再解释这种可能性。

PIT的一个例子是在Schema UAL0中-PIT X023。当工资驱动到达Schema 的这点时,PIT将遍历IT中的每个工资类型,RuleX023告诉它做什么事是取决于工资类型在过程类20中的值。值为3,4,5,6,9和B使将把工资类型移到RT中,而1,7和8是将工资类型留在IT中,值2没有任何操作,但本质上其实是将工资类型从IT中清除。

PRT

PRT是Process Results Table的缩写。虽然大多数工资类型处理发生在PIT,也有几种情况当你想处理工资类型时已经被转移到RT中。PRT工作原理同PIT,通过RT循环,同时从Rule中申请逻辑。

在Schema UTX0中,PRT被用来处理已经在RT中的税款工资类型。Function UTX0(US 税款Function)直接返回它的工资类型给RT,所以任何一个在税款工资类型中的处理都要PRT Function来完成。

ACTIO

ACTI0Function处理工资Rule,但是它不通过工资类型表来循环,但它在不同的工作地点/基础工资记录间循环,并挨个处理它们的Rule。例如,假设员工在当前带薪时期有2个信息类型1个记录,ACTI0将有2条记录要循环。

UTX0 Schema 是ACTI0使用RuleUWH1计算带薪时期工作的小时数的一个好的例子。

像Function一样,Operation的帮助文档也能通过PDSY和PE04找到。Operation能被放在2个不同的组-他们分布用来决策和操作工资类型。有些Operation刚好适用这2个组。

操作工资类型

在Rule中使用工资类型就好像在ABAP中使用内表。Function通过把表的每一行一次性都放在?头?空间来循环调用Rule(PIT,PRT,P0014或)。在头空间使用工资类型,完成以后在把它加回表中。

MULTI, DIVID

这些Operation让你将工资类型中的两个字段相乘并将结果保存在第三个字段中。能使用的字段是AMT,RTE和NUM。MULTI RNA将用一个数乘以比率并将结果保存在amount字段。DIVID ANA将用一个数除amount字段并将结果保存回amount字段。

NUM, RTE and AMT

这些是非常基本的也很强大的Operation,它们能操作他们各自字段的内容。很大情况会用到这些Operation,F1帮助文档是很有用的。基本情况下,设置值NUM=1 或者AMT=2.50,但这不是一个好的实践方法。而使用常数-在表T511K中创建名叫ZNUM的常数,并使NUM=KZNUM(把number字段的值赋给常数ZNUM)。因为常数是根据日期有效的,而Rule不是,这样当数值需要改变时使你更灵活地改变。

你可以设置工资类型的头的字段等于另外一个工资类型中对应的字段-AMT=E9XXX是使amount等于RT工资类型9XXX中的amount字段。当且仅当IT中的9XXX小于amount域的值时,AMT<9XXX 将amount域设置为IT中的9XXX(取两个值中的较小者)

最后,你可以使用值上的算法。RTE*100是rate字段的内容乘以100并把结果保存回rate字段。AMT*KZNUM是amount字段被常数ZNUM中的值相乘,ZNUM中的值可以是任意数。


SAP HR Schema 详解.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:圣妙吉祥真实名经广释

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: