SAPHRSchema详解_第1页
SAPHRSchema详解_第2页
SAPHRSchema详解_第3页
SAPHRSchema详解_第4页
SAPHRSchema详解_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、推荐原创SAP HR Schema详解一、 Payroll schema 根底1、Schema 和 Function在SAP薪酬中,Function为薪酬计算提供了逻辑公式.Function执行一般的过程一如在给定的薪资方法上计算薪酬税,从特定的信息类型中读取工资类型,计算奖金,并保存薪酬计算的结果.SA喃酬系统中有几十个Function ,有些是与国家相关的而有些不是.每个 Function在PE04中定义并有文档;在 4.5版本以上可以通过 PDS渣看Function文档,在早期的版本可以通过 RPDSYS0查看.在SAP HR术语中,一个薪酬 Function 与一个 ABAP Func

2、tion是不一样的.薪酬Function 也包含 A BAP代码,但它不像 ABAP Function那样执行.薪酬 Function在Schema中被薪酬驱动程序假定为 PRC ALCUO所执行.Schema是一系列Function以某种顺序执行的集合每个 Function执行后把结果传给下一个 Functi on.Schema可以通过 PE01被创立和编辑,但是被保存在表 T52C0 SAP标准Schema 和表T52C1用户 创立的Schema和修改SAP标准Schema .薪酬驱动读取 T52C0/T52C1表中的行并依次执行 Function .我们如何跳过保存在表中的薪酬Funct

3、ion而执行ABAP弋码来完成工作呢?在 t-code PE04中可以看到ABPA代码对应的每个 Function .在Schema中Function名与 ABAP Form有关联,如薪酬 Function WPB映射至I ABAP form fuwpbpFunction USTAX 映射到 form fuustax所以当薪酬驱动执行 Schema时,它从Schema中取得Function名,然后在名称前加上 FU',然后执行perform语句.这是一个很简单 巧妙的设计.2、工资类型wage type即工资项在很大程度上,工资类型只是包含一些数据-比率,数字和/或数量.但是更详细的,

4、一个工资类型有几十个属性用来限制它是如何被操作和处理的.但是在最后,它在薪酬结果数据库中作为一个对象保存 成比率,数字和/或数量.工资类型大多情况下用来保存一个员工薪水中收入的数量、扣除的数额和税收数额.员工的根本工资保存在一个工资类型中,作为一般用途扣除的费用保存在一个工资类型中,他们应征税的工资和税保存 在工资类型中.作为员工工资的根本数据元素一一工资类型,也同样映射到 FI/CO账户以记录工资上的借贷,并报告在 W-2和税务表格上.工资类型也保存统计数据一如带薪时期内工作的小时数,在过去的六个月平均的周工资,或分红计 算的工资的数量.工资类型保存在几个表中,但是主要是T512W将有更多的

5、时间花在 T512W麦的各个方面.重要的视图包括:V_512W_D,V_512W_O,V_512W等.工资类型有三类:模型、技术和用户.1模型工资类型是SAP给客户用来作为向导创立他们自己的工资类型的.他们常常以一个字母开始,SAP可能在系统升级或HRS即添加、删除或更新他们.2技术工资类型经常由 SAP产生,以7 '开始.他们一般用在薪酬的特定的标准过程中,但你也可以修 改他们,SAP可能在升级的过程中或在 HRS即更新他们.所以,如果你曾经修改正一个技术工资类型,那 么要在每次升级以后或 HRSP以后检查他们,以保证他们还有你需要的属性.并且不要删除任何技术工资类 型.3用户工资类

6、型一般以数字开始 ,SAP在升级或HRS即是不会改变这些工资类型的.或SAP很少在升级或HRS冲改变这些工资类型.用户工资类型是为所有公司特定的工资支付制定的.3、Rule 和 Operation我们的一个长期客户曾经创立了一个保存界面的信息叫薪水Rule!那些有经验的SAP薪水分析者和参谋马上看成其中的双层含义和幽默.Rule包含SAP薪水中大多根本的逻辑.其中 Schema是Function的集合,Rule是Operation的集合.一个Operation是一个非常根本的被用来操作工资类型的逻辑. 例如, Operation MULTI是乘以工资类型中的数字和比率以决定付给员工工资的数目.

7、OperationOUTWP取一个员工特定的数据并决定如何去处理它.比方,如果工作合同在信息类型中是UA,那么执行如果是UB,执行义可以通过t-code PE04和PDSY®看Operation ,也可以通过 PE02编辑 Operation .Function 对应的 A BAP form 是以 fU '开始,Operation 对应的 ABAP form 是以 dp开始.比方,OperationMULTI ,将有 ABAP f orm opmulti 同Schema 一样,Rule保存在表中,Rule被保存在表 T52C5中.有多年计算机系统工作经验的SAP高级参谋们常在

8、发现工资 Rule和编程大型机汇编语言的类似性.然而当Operation被正确使用时功能强大,但这没有什么好神奇的.希望我们这个简短的介绍是有意义的.下一篇SAP工资技术文档中我们将更深入探讨用在SAP的工资Schema 中的公共 Function .Function最多能有4个参数,SAP文档将告诉你每个参数的用法.通过PDS评口 PE04能看到每个Function 和 Operation .COPY这与ABAP<I编程语言中的include '相同.当工资执行时,Copy是插入包含在参数 1中的Schema.好的Schema配置风格和好的编程风格是一样的将公共使用的逻辑放在i

9、nclude '中,这样能被用于多个地方,同时也增加可读性.BLOCK在4.0版中,Schema日志是放在树状结构中的. BLOCK BEGF始一个节点,BLOCK END吉束一个节点.在 BEG END之间是包含在节点中. BLOCK BEG/EN能被多层嵌套.同时,适当的放置 BLOCK BEG/ENID使日 志更方便读.IF/ELSE/ENDIF对IF Function ,有2种方法说明真/假条件.SAP有几个内置的条件可以在参数2 (Schema U000中的IF NAMC中使用.你同时也能在参数 1中说明一个定制的 Rule,并且在Rule中执行你任意想要的逻辑.在Rule中

10、,使用 Operation SCOND为IF Function 设置真/假转换.Pxxxx工资驱动和Schema从许多信息类型中读取数据并处理数据.一般是以 P和四位数字命名的信息类型来执行.所以,P0014读取并处理从信息类型 14来的数据,P0168从信息类型168处理人生保险计 划,P2021从信息类型2021中读取附加工资.许多 Function,但并非所有的Function,允许你用工资 Rule进一步精练此过程.例如, Schema UAP0说明P0014被RuleU011处理过.Function P0168 是没有使用 Rule的Function 之一(在一些老的版本中有使用)

11、,而是在参数中说明 Operation (见Schema UBE1).有些信息类型在工资中被使用,但没有Pxxx Function .这些包括信息类型 207, 208, 209和210,他们都在主税款Function USTAX中被读取并处理.信息类型0, 1, 7和8被Function WPBP处理.PITPIT是Process Input Table的首字母简写,它也是工资中最常用功能最强大的Function之一.当工资类型被Pxxx Function 读入工资时,他们被保存在称为IT (Input Table )的内部表中.PIT通过内部表循环, 并应用包含Rule中的逻辑.所以对于I

12、T中的每个工资类型,它都将从 Rule中申请一个逻辑.PIT的目标是将工资类型从 IT中移出,移入到 RT ( Result Table )中.大多数情况下,被 PIT调用的 Rule会改变工资类型的一些属性然后把他们从IT中转移到RT中.工资类型也能留在IT中并移到表中去.在说明Operation是如何工作的时候我们再解释这种可能性.PIT的一个例子是在 Schema UAL0中一PIT X023.当工资驱动到达 Schema的这点时,PIT将遍历I T中的每个工资类型,RuleX023告诉它做什么事是取决于工资类型在过程类20中的值.值为3, 4, 5, 6,9和B使将把工资类型移到 RT

13、中,而1, 7和8是将工资类型留在IT中,值2没有任何操作,但本质上其 实是将工资类型从IT中去除.PRTPRT是Process Results Table的缩写.虽然大多数工资类型处理发生在PIT ,也有几种情况当你想处理工资类型时已经被转移到 RT中.PRT工作原理同PIT,通过RT循环,同时从 Rule中申请逻辑.在Schema UTX0中,PRT被用来处理已经在 RT中的税款工资类型.Function UTX0 (US税款Functi on)直接返回它的工资类型给RT,所以任何一个在税款工资类型中的处理都要PRT Function来完成.ACTIOACTI0Function处理工资Ru

14、le ,但是它不通过工资类型表来循环,但它在不同的工作地点/根底工资记录间循环,并挨个处理它们的 Rule.例如,假设员工在当前带薪时期有2个信息类型1个记录,ACTI0将有2条记录要循环.UTX0 Schema是ACTI0使用RuleUWH斜算带薪时期工作的小时数的一个好的例子.像Function 一样,Operation的帮助文档也能通过 PDS评口 PE04找至I.Operation能被放在2个不同 的组他们分布用来决策和操作工资类型.有些Operation刚好适用这2个组.操作工资类型在Rule中使用工资类型就好似在 ABA叶使用内表.Function通过把表的每一行一次性都放在头&#

15、39;空间来循环调用Rule PIT, PRT P0014或.在头空间使用工资类型,完成以后在把它加回表中.MULTI, DIVID这些Operation让你将工资类型中的两个字段相乘并将结果保存在第三个字段中.能使用的字段是AMT RTE和NUM MULTI RNA将用一个数乘以比率并将结果保存在 amount字段.DIVID ANA将用一个数除 amount 字段并将结果保存回 amount字段.NUM, RTE and AMT这些是非常根本的也很强大的Operation ,它们能操作他们各自字段的内容.很大情况会用到这些Operation , F1帮助文档是很有用的.根本情况下,设置值N

16、UM=1或者AMT=2.50,但这不是一个好的实践方法.而使用常数在表 T511K中创立名叫ZNUM勺常数,并使NUM=KZNUMnumber字段的值赋给常数 ZNUM 由于常数是根据日期有效的,而 Rule不是,这样当数值需要改变时使你更灵活地改变.你可以设置工资类型的头的字段等于另外一个工资类型中对应的字段一AMT=E9XXX使amount等于RT工资类型9XXX中的amount字段.当且仅当IT中的9XXX小于amount域的值时,AMT<9XXX各amount域 设置为IT中的9XXX取两个值中的较小者最后,你可以使用值上的算法.RTE*100是rate字段的内容乘以100并把结

17、果保存回rate字段.AMT *KZNUM1 amount字段被常数ZNUMH勺值相乘,ZNUM的值可以是任意数ADDWT至此,我们已经使用 MULTI,DIVID,AMT,RTE和NU跟置我们的工资类型的值.ADDWT头中的工资类型不改变值或改变值后移到的表.ADDWTE*不改变工资类型的数值加到 RT中.ADDWTE9XXX它重命名为9XXX然后转移到RT中.用F1帮助文档将告诉你所有这些你能转移到的表.ELIMI and RESET裂片是用于将工资类型连接到工资中表的属性.有时你在做某个Rule时不得不移除某个裂片-这就是ELIMI做的ELIMInate裂片.在删除一个工资类型的裂片后,

18、你可以使用RESET1新保存他们.一般来说,你应该防止删除裂片一由于这可能导致比率和报表出错.所以使用和测试时要小心.FILLF这个简单的Operation能重置wagetype域的值.例如,FILLF A是在Rule第一次被调用时将 amount重置 回原来的值.这里你将把把所有这些 Operation集合在一起在根本工资的根底上计算固定比例的扣除数有几种方法计算,这里仅介绍一种.假设根底工资在IT值,比率作为一个完整的数保存在常数ZNUMfr,你制定了一个Rule包含了工资类型*和根底工资,在这个例子中用OBAS扣除的局部将是 4XXX所以,在这个 Schema 中我们将在 RuleZ00

19、1中执行一个 PIT : PIT Z001 .在Rule中:工资类型*:ADDWT *如果它不是OBAS我们就不改变它.Rule 类型 OBAS ADDWT*, NUM=KZNUM,MULTI ANA, AMT/-100, ADDWT 4XXX OBAS专至U输出表,这样 我们就不会丧失它了,设置number域等于常数ZNUM用amount乘以number,由于我们将百分比作为一个完整的数保存并且我们希望这个扣除数是负数,所以用-100除amount,并把结果作为工资类型 4XXX保存.决策很屡次我们只需在某种条件存在时执行某个动作-比方,我们只想为某种员工计算扣除数4XXX在这种情况下,我们

20、必须选择什么时候执行这个动作.Decisions将结果放入称为变量的键中这就象一个带有通配符的描述.如果我们把公司代码放在一个变量键只,那么含有1234的行将为公司1234执行,含有2*的行将为任何以2打头的公司执行,而*将为所有任意匹配的公司执行.OUTWP这个Operation使我们在基于工资中的 WPB版中的各种数据元素做出决策粗略地只有信息类型0和1数据.通过F1帮助文档,可以看到许多的元素.例如,通过 OUTWP COMPYiZ查看公司代码,它把 company code域的内容放到变量键中.VAKEY像OUTW遨个Operation是把某个数据放在变量键中,可以看F1帮助查看各种可

21、能性.NUM, RTE and AMT作为decisions ,他们又出现在这里.如果用AMT?0它将amount域的彳I与0比拟然后返回 >,<,或=.你也可 以用上面提到的概念将它与一个常量或另外一个工资类型进行比拟.VWTCL这个Operation为当前的工资类型返回某个处理类的值.例如,VWTCL 93各处理类93的值放在变量键里.RuleX023是如何使用处理类值的一个好例子.在前面的例子中,我们给每个根本工资类型OBAS勺员工计算扣除数4XXX.使用OUTW你可以决定只计算在某个人事范围/子范围或员工子组的员工.假设你想计算在信息类型14或15已经进入工资类型4XXX的

22、员工.假设已经进入工资类型,信息类型的number域也有要求的数据,你需要做以下步骤:工资类型 OBAS ADDWT *, NUM=4XXX,在 NUM?0应选择,IF :如果是=等于,就什么也不做,ELSE:否贝U _*条件执行NUM=KZNUM,MULTI ANA, AMT/-100, ADDWT 4XX双取决于在这点你的工资 类型裂片是如何组织的,你可能想在NUM=4XXX:前ELIMI R ,在ADDWT 4XX定前RESET R正如前面提到的,这仅仅是隔靴搔痒.当配置薪酬时你不能仅关注某个问题,而应该理解所有的部分并力求最好的配置.你有许多的方法组合Function , Operat

23、ion ,处理类和常数等.SAP已经为薪酬创立了灵活的功能强大的配置模型.当使用正确时,许多工作就已经完成好了,当使用不正确时,发现它会引 起困惑并且导致不稳定.所以要好好的测试你的配置并以文档形式记录你的配置.下面是对Schema CN28的局部简单阐述:BLOCKBEG*Payroll schema:CHINACOM工资Schema :中国标准COPY XIN0初始化工资COPY CNBD编辑根本数据中国IFSPRN特别处理运行? ?非周期性支付?RERSH IT删除IT 删除内表ENDIF至|J:特别处理运行?COPYXLR0导入上一期工资结果COPYCNT0工资总额读入时间数据COPY

24、 CNAP导入扣减0014、0015导入COPYCNAL确定每个月的扣减因子COPYCNNG净支付净工资计算中国COPYXNA0累计净支付的值COPYXRR0回溯(反算)COPYXNN0净支付/扣减和 传输COPYCNEN最后处理BLOCK END*中国工资核算Function(Function)BLOCKFunction描述:BLOCK Function允许你构造一个工资核算过程日志.在开始和结束标记点中把工资 按语义顺序聚集在一起,且他们出现在日志中的一个普通节点.语法:Function参数1参数2参数3参数4FUNCTION BLOCK Function 名称参数1 BEG 开始一个语义

25、块END 结束一个语义块参数2目前无该参数参数3目前无该参数参数4目前无该参数说明:BLOCK Function可以被嵌套,在一个子 Schema中,一个结束块必须对应一个开始块SchemaXIN0初始化工资数据国际人员计算Schema重要的信息/事件开关,哪一些有关工资核算的进一步过程,工资运行开始在这个子Schema中指结构:子Schema由下述步骤组成:1、 指定程序类型工资核算或评估2、 设置数据库更新开关YES/NO3、 必需的信息类型导入仅仅是schema所需的主数据信息类型4、 导入所有时间信息类型5、 指定检查限制记录 PA03 测试或激活生产参数1 参数2参数3参数4 DCH

26、ECK ABR核查PA03生产机去掉COM注释:工资发放核算初始化BLOCK BEG块开始:PGM ABR工资发放的程序类型UPD YES更新数据库是/否OPT INFT只使用信息类型的读取OPT TIME输入全部的时间信息类型块结束BLOCK ENDFunctionPGM :识别一个工资发放的程序类型PGM Function给工资核算驱动提供一个工资核算的程序类型信息不同的Schema允许薪资驱动在不同的时间段里去执行不同的程序,这些工资和评估程序哪一个在工资核算之后运行.这两个类型说明程序现有的工资数据如果一个Schema不包含PGM Function ,程序是假设缺省一个发薪程序.如果一

27、个 schema包含多个 PGM Function ,那么最后一个是有效的.语法:参数1ABR工资核算AUS 评估MIX 工资/评估SP特殊运行,这个特殊的仅仅适用于西班牙和奥地利国家的版本TRN遗留数据传输例:如果你想去创立一个工资的Schema PGM 参数1ABRUPD执行数据库更新FunctionUPD限制在运行工资核算后产生的结果是否保存到数据库或仅仅在当前显示.参数1作为一个开关在一个 schema之初设置语法:Function UPD参数1NO不更新数据库YES更新数据库参数2参数3参数4例:如果你想去测试一个工资核素且结果不被更新到数据库UPD 参数1 NOOPTOptions

28、:你可以使用 OPTFunction去为工资导入信息类型语法:参数1 : BSI 已过时COPL集成本钱方案DEC 小时工资2位数ENQ 不再使用INFT必需的信息类型导入仅仅是schema所需的主数据信息类型NRC 无回溯核算TIME 读时间信息类型必需入口:参数1注意:如果你想在工资核算中去处理时间治理数据如:改变日程表,缺勤等,在你的 schema中OPTFunction 必需在参数1中包含TIMEoCHECK在选择雇员之前/之后核查.FunctionCHECK完成两个任务1) 根据schema类型检查规定的时间期间2) 执行一个整体的检查:SchemaCNBD中国根底数据工资子Sche

29、ma ,子Schema 被主Schema 调用该子Schema读取国际总工资计算核算所需的全部根底数据主数据,根底数据接着被打印到工资日志如果 program option=ON.结构:该子Schema由以下主要步骤组成:1、 读取员工姓名(P0001-ENAME)2、 从以下信息类型中读有关工作中央和根本工资数据a) 人事事件P0000,b) 组织分配P0001,c) 方案工作时间P0007d) 根本工资P0008e) 工资维护P0052和f) 本钱分配P00273、 检查所需的所有主数据可以被工资驱动的,否那么程序被取消4、 在工资日志中打印上述根本数据.FUNCTIO 参数1 参数2 参

30、数3 参数4 DCOMBLOCK BEGENAMEWPBPP0014 CN14 GEN NOAB编辑根本数据编辑根本数据从EE(Infotype0001) 中确定名字读取工作中央和根底工资数据为P0014分割 WPB用口设置 APZNRDATES读取详细时间数据IFSPRN判读是否为非周期工资运行?ELSE周期性工资运行?P0532读取保险数据P0530读取公积金数据P0533读取人事档案中的效劳费ENDIF结束IF语句块P0531读取所得税数据GON如果数据完整,继续BLOCK END结束块A previous employer table VAG 先前雇主表C Cumulation tab

31、leCRT累积表D difference tableDT 差异表E results tableRT 结果表G Gross results tableGRT总结果表H Old results tableAIT 旧结果表I Input tableIT 输入表L Results table last payroll LRT上一工资结果表M Incentive wages resultsLS计件工资结果表N LoanLO 借出仅仅可以再function P0045 使用O see blank aboveU Difference tableDFT 差异表W wage maintenance tableX Cumulated tax table SCRT 累积税表Z Table of time wage types ZL计时工资表& Variable tableVAR 可变表二、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论