
SAP薪酬schema基础资料.docx
10页精品文档SAPHR Schema 详解(一)一、Payroll schema 基础1、模式和函数在SAP薪酬中,函数为薪酬计算提供了逻辑公式函数执行一般的过程- 如在给定的薪资方法上计算薪酬税, 从特定的信息类型中读取工资类型, 计算奖 金,并保存薪酬计算的结果SAP薪酬系统中有几十个函数,有些是与国家相关 的而有些不是每个函数在PE04中定义并有文档;在4.5版本以上可以通过PDSY 查看函数文档,在早期的版本可以通过 RPDSYS0(g看在SAP HR术语中,一个薪酬函数与一个 ABAP函数是不一样的薪酬函数 也包含ABAP代码,但它不像ABAP函数那样执行薪酬函数在模式中被薪酬驱 动程序(假定为PRCALCUQ所执行模式是一系列函数以某种顺序执行的集合-每个函数执行后把结果传给下一个 函数模式可以通过PE01被创建和编辑,但是被保存在表 T52C0 (SAP标准模 式)和表T52C1(用户创建的模式和修改SAP标准模式)薪酬驱动读取 T52C0/T52C1表中的行并依次执行函数我们如何跳过保存在表中的薪酬函数而执行 ABAP代码来完成工作呢?在 t-code PE04中可以看到ABPA代码对应的每个函数。
在模式中函数名与 ABAP Form有关联,如薪酬函数 WPBP映射至U ABAP form 'fuwpbp';函数USTAX映 射到form 'fuustax'所以当薪酬驱动执行模式时,它从模式中取得 精品文档.精品文档 函数名,然后在名称前加上’fu',然后执行perform语句这是一个很简单巧 妙的设计2、工资类型(wage type)即工资项在很大程度上,工资类型只是包含一些数据-比率, 数字 和/或数量但是更详 细的,一个工资类型有几十个届性用来控制它是如何被操作和处理的 但是在最 后,它在薪酬结果数据库中作为一个对象保存成比率,数字和 /或数量工资类型大多情况下用来保存一个员工薪水中收入的数量、扣除的数额和税 收数额员工的基本工资保存在一个工资类型中,作为一般用途扣除的费用保存 在一个工资类型中,他们应征税的工资和税保存在工资类型中作为员工工资的 基本数据元素一一工资类型,也同样映射到FI/CQ账户以记录工资上的借贷,并 报告在W-2和ERP论坛欢迎您税务表格上工资类型也保存统计数据一如带薪时期内工作的小时数, 在过去的六个月平 均的周工资,或分红计算的工资的数量工资类型保存在几个表中,但是主要是 T512W。
将有更多的时间花在 T512W表的各个方面重要的视图包括: V_512W_D,V_512W_Q,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'o 可以通过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中说明一个定制的规则, 并且在规则中执行你任意想要的逻辑在规则中,使用操作符 SCON以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处理精品文档.精品文档PITPIT是Process Input Table的首字母简写,它也是工资中最常用功能最强大的函 数之一当工资类型被Pxxx函数读入工资时,他们被保存在称为IT( Input Table) 的内部表中PIT通过内部表循环,并应用包含规则中的逻辑所以对于IT中的 每个工资类型,它都将从规则中申请一个逻辑PIT的目标是将工资类型从IT中移出,移入到RT ( Result Table )中大多数情 况下,被PIT调用的规则会改变工资类型的一些届性然后把他们从 IT中转移到 RT中工资类型也能留在IT中并移到ERP论坛欢迎您表中去在说明操作符是 如何工作的时候我们再解释这种可能性sPIT的一个例子是在模式UAL0中一PIT X023。
当工资驱动到达模式的这点时, PIT将遍历IT中的每个工资类型,规则 X023告诉它做什么事是取决于工资类型 在过程类20中的值值为3, 4, 5, 6, 9和B使将把工资类型移到RT中,而 1, 7和8是将工资类型留在IT中,值2没有任何操作,但本质上其实是将工资 类型从IT中活除PRTPRT是Process Results Table的缩写虽然大多数工资类型处理发生在 PIT,也有几种情况当你想处理工资类型时已经被转移到 RT中PRT工作原理同PIT,通过RT循环,同时从规则中申请逻辑在模式UTX0中,PRT被用来处理已经在 RT中的税款工资类型函数UTX0(US 税款函数)直接返回它的工资类型给 RT,所以任何一个在税款工资类型中的处 理都要PRT函数来完成精品文档.精品文档ACTIOACTI0函数处理工资规则,但是它不通过工资类型表来循环,但它在不同的工作 地点/基础工资记录问循环,并挨个处理它们的规则例如,假设员工在当前带 薪时期有2个信息类型1个记录,ACTI0将有2条记录要循环UTX0模式是ACTI0使用规则UWH1计算带薪时期工作的小时数的一个好的例子像函数一样,操作符的帮助文档也能通过 PDSYffi PE04找到。
操作符能被放在 2个不同的组-他们分布用来决策和操作工资类型有些操作符刚好适用这2个 组操作工资类型在规则中使用工资类型就好像在 ABAP中使用内表函数通过把表的每一行一次 性都放在’头'空间来循环调用规则(PIT, PRT, P0014或ERP论坛欢迎您)在 头空间使用工资类型,完成以后在把它加回表中MULTI, DIVID这些操作符让你将工资类型中的两个字段相乘并将结果保存在第三个字段中 能使用的字段是AMT, RTE和NUMMULTI RNA将用一个数乘以比率并将结果保 存在amount字段DIVID ANA将用一个数除amount字段并将结果保存回 amount 字段精品文档.精品文档NUM, RTE and AMT这些是非常基本的也很强大的操作符, 它们能操作他们各自字段的内容 很大情 况会用到这些操作符,F1帮助文档是很有用的基本情况下,设置值NUM=1或 者AMT=2.50,但这不是一个好的实践方法而使用常数一在表 T511K中创建名 叫ZNUM的常数,并使NUM=KZNUM把number字段的值赋给常数 ZNUM)因 为常数是根据日期有效的,而规则不是,这样当数值需要改变时使你更灵活地改 变。
你可以设置工资类型的头的字段等于另外一个工资类型中对应的字段一AMT=E9XXX是使amount等于RT工资类型9XXX中的amount字段当且仅当 IT中的9XXX小于amount域的值时,AMT<9XXX将amount域设置为IT中的 9XXX (取两个值中的较小者)最后,你可以使用值上的算法RTE*100是rate字段的内容乘以100并把结果 保存回rate字段AMT*KZNUM是amount字段被常数ZNUM中的值相乘,ZNUM 中的值可以是任意数ADDWT至此,我们已经使用 MULTI,DIVID,AMTRTE和NUM设置我们的工资类型的值ADDWT将头中的工资类型不改变值或改变值后移到 ERP论坛欢迎您的表ADDWTE是不改变工资类型的数值加到 RT中ADDWTE9XXX务它重命名为9XXX 然后转移到RT中用F1帮助文档将告诉你所有这些你能转移到的表ELIMI and RESET裂片是用于将工资类型连接到工资中 ERP论坛欢迎您表的届性有时你在做精 品文档.精品文档某个规则时不得不移除某个裂片—这就是 ELIMI做的(ELIMInate裂片)在删 除一个工资类型的裂片后,你可以使用 RESETS新保存他们。
一般来说,你应 该避免删除裂片一因为这可能导致比率和报表出错所以使用和测试时要小心FILLF这个简单的操作符能重置 wagetype域的值例如,FILLF A是在规则第一次被 调用时将amount重置回原来的。












