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

下载本文档

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

文档简介

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

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

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

4、型(wage type)即工资项在很大程度上,工资类型只是包含一些数据-比率,数字和/或数量。但是更详细的,一个工资类型有几十个属性用来控制它是如何被操作和处理的。但是在最后,它在薪酬结果数据库中作为一个对象保存 成比率,数字和/或数量。工资类型大多情况下用来保存一个员工薪水中收入的数量、扣除的数额和税收数额。员工的基本工资保存在一个工资类型中,作为一般用途扣除的费用保存在一个工资类型中,他们应征税的工资和税保存在工资类型中。作为员工工资的基本数据元素一一工资类型,也同样映射到 FI/CO 账户以记录工资上的借贷,并报告在 W-2 和税务表格上。工资类型也保存统计数据一如带薪时期内工作的小时数

5、,在过去的六个月平均的周工资,或分红计算的工资的数量。工资类型保存在几个表中,但是主要是T512W 将有更多的时间花在 T512W 表的各个方面。(重要的视图包括:V_512W_D,V_512W_O,V_512W_B。)工资类型有三类:模型、技术和用户。1)模型工资类型是 SAP 给客户用来作为向导创建他们自己的工资类型的。他们常常以一个字母开始,SAP 可能在系统升级或 HRS 冲添加、删除或更新他们。2)技术工资类型经常由 SAP 产生,以开始。他们一般用在薪酬的特定的标准过程中,但你也可以修 改他们,SAP 可能在升级的过程中或在 HRSP 中更新他们。所以,如果你曾经修改过一个技术工资

6、类型,那么要在每次升级以后或 HRSP 以后检查他们,以保证他们还有你需要的属性。并且不要删除任何技术工资类 型。3)用户工资类型一般以数字开始,SAP 在升级或 HRSP 中是不会改变这些工资类型的。或SAP 很少在升级或 HRSP 中改变这些工资类型。用户工资类型是为所有公司特定的工资支付制定的。3、Rule 和 Operation我们的一个长期客户曾经创建了一个保存界面的信息叫薪水 Rule ”那些有经验的 SAP 薪水分析者和顾问立刻看成其中的双层含义和幽默。Rule 包含 SAP 薪水中大多基本的逻辑。其中 Schema 是 Function的集合,Rule 是 Operation

7、的集合。一个 Operation 是一个非常基本的被用来操作工资类型的逻辑。例如,Operation MULTI 是乘以工资类型中的数字和比率以决定付给员工工资的数目。OperationOUTWIP 取一个员工特定的数据并决定如何去处理它。比如,如果工作合同在信息类型1中是 UA 那么执行如果是 UB,执行可以通过 t-code PE04 和 PDSY 查看 Operation ,也可以通过 PE02 编辑 Operation。Function 对应的 A BAP form是以fU 开始,Operation 对应的 ABAP form 是以 op 开始。比如,OperationMULTI,将有

8、 ABAP f orm opmulti 同Schema 一样,Rule 保存在表中,Rule 被保存在表 T52C5 中。有多年计算机系统工作经验的SAP 高级顾问们常在发现工资 Rule 和编程大型机汇编语言的类似性。然而当 Operation 被正确使用时功能强大,但这没有什么好神奇的。希望我们这个简短的介绍是有意义的。下一篇SAP 工资技术文档中我们将更深入探讨用在SAP 的工资Schema 中的公共 Function。Function 最多能有 4 个参数,SAP 文档将告诉你每个参数的用法。通过PDSY 和 PE04 能看到每个 Function 和 Operation。COPY这与

9、 ABAP 和编程语言中的 include 相同。当工资执行时,Copy 是插入包含在参数 1 中的 Schema。好的 Schema 配置风格和好的编程风格是一样的将公共使用的逻辑放在include 中,这样能被用于多个地方,同时也增加可读性。BLOCK在 4.0 版中,Schema 日志是放在树状结构中的。 BLOCK BE 开始一个节点,BLOCK END 吉束一个节点。在 BEG 和END 之间是包含在节点中。 BLOCK BEG/EN 能被多层嵌套。同时,适当的放置 BLOCK BEG/EN,使日 志更方便读。IF/ELSE/ENDIF对IF Function ,有 2 种方法说明真

10、/假条件。SAP 有几个内置的条件可以在参数2 (Schema U000 中的 IF NAMC 中使用。你同时也能在参数 1 中说明一个定制的 Rule,并且在 Rule 中执行你任意想要的逻辑。 在 Rule 中,使用 Operation SCOND 为 IF Function 设置真/假转换。Pxxxx 工资驱动和 Schema 从许多信息类型中读取数据并处理数据。一般是以P 和四位数字命名的信息类型来执行。所以,P0014 读取并处理从信息类型14 来的数据,P0168 从信息类型 168 处理人生保险计划,P2010 从信息类型 2010 中读取附加工资。许多 Function,但并非

11、所有的 Function,允许你用工资 Ru le 进一步精练此过程。例如, 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 处理。PITPIT 是 Pro

12、cess Input Table的首字母简写,它也是工资中最常用功能最强大的Function 之一。当工资类型被 Pxxx Function 读入工资时,他们被保存在称为 IT(Input Table )的内部表中。PIT 通过内部表循环, 并应用包含Rule 中的逻辑。所以对于 IT 中的每个工资类型,它都将从Rule 中申请一个逻辑。PIT 的目标是将工资类型从 IT 中移出,移入到 RT( Result Table )中。大多数情况下,被 PIT 调用的 Rule 会改变工资类型的一些属性然后把他们从IT 中转移到 RT 中。工资类型也能留在 IT 中并移到表中去。在说明 Operati

13、on 是如何工作的时候我们再解释这种可能性。PIT 的一个例子是在 Schema UAL0 中一 PIT X023。当工资驱动到达 Schema 的这点时,PIT 将遍历 I T 中的每个工资类型,RuleX023 告诉它做什么事是取决于工资类型在过程类20 中的值。值为 3,4,5, 6,9 和 B 使将把工资类型移到 RT 中,而 1,7 和 8 是将工资类型留在 IT 中,值 2 没有任何操作,但本质上其 实是将工资类型从 IT 中清除。PRTPRT 是 Process Results Table 的缩写。虽然大多数工资类型处理发生在PIT,也有几种情况当你想处理工资类型时已经被转移到

14、RT 中。PRT 工作原理同 PIT,通过 RT 循环,同时从 Rule 中申请逻辑。在 Schema UTX0 中,PRT 被用来处理已经在 RT 中的税款工资类型。Function UTX0 ( US 税款 Function)直接返回它的工资类型给RT,所以任何一个在税款工资类型中的处理都要PRT Function 来完成。ACTIOACTI0Function 处理工资 Rule,但是它不通过工资类型表来循环,但它在不同的工作地点/基础工资记录间循环,并挨个处理它们的 Rule。例如,假设员工在当前带薪时期有2 个信息类型 1 个记录,ACTIO 将有 2条记录要循环。UTXO Schem

15、a 是 ACTIO 使用 RuleUWH 计算带薪时期工作的小时数的一个好的例子。像 Function 一样,Operation 的帮助文档也能通过 PDSY 和 PE04 找到。Operation 能被放在 2 个不同的组他们分布用来决策和操作工资类型。有些Operation 刚好适用这 2 个组。操作工资类型在 Rule 中使用工资类型就好像在 ABAP 中使用内表。Function 通过把表的每一行一次性都放在头空间来循环调用 Rule (PIT,PRT P0014 或)。在头空间使用工资类型,完成以后在把它加回表中。MULTI, DIVID这些 Operation 让你将工资类型中的两

16、个字段相乘并将结果保存在第三个字段中。能使用的字段是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 字段的值赋给

17、常数 ZNUM) 因为常数是根据日期有效的,而Rule 不是,这样当数值需要改变时使你更灵活地改变。你可以设置工资类型的头的字段等于另外一个工资类型中对应的字段AMT=E9XX 是使 amount 等于 RT 工资类型 9XXX 中的 amount 字段。当且仅当 IT 中的 9XXX 小于 amount 域的值时,AMT,或=.你也可 以用上面提到的概念将它与一个常量或另外一个工资类型进行比较。VWTCL这个 Operation 为当前的工资类型返回某个处理类的值。例如,VWTCL 93 将处理类 93 的值放在变量键里。RuleX023 是如何使用处理类值的一个好例子。在前面的例子中,我们

18、给每个基本工资类型OBAS 的员工计算扣除数 4XXX。使用 OUTW 你可以决定只计算在某个人事范围/子范围或员工子组的员工。假设你想计算在信息类型14 或 15 已经进入工资类型 4XXX 的员工。假设已经进入工资类型,信息类型的number 域也有要求的数据,你需要做以下步骤:工资类型 OBAS ADDWT *, NUM=4XXX,在 NUM?0 做选择,IF :如果是=(等于),就什么也不做,ELSE:否则(_*条件)执行 NUM=KZNUM,MULTI ANA, AMT/-100, ADDWT 4XX 这取决于在这点你的工资类型裂片是如何组织的,你可能想在NUM=4XX 之前 ELI

19、MI R,在 ADDWT 4XX 之前 RESET RCOPYXNA0累计净支付的值正如前面提到的,这仅仅是隔靴搔痒。当配置薪酬时你不能仅关注某个问题,而应该理解所有的部分并力求最好的配置。你有许多的方法组合Function ,Operation,处理类和常数等。SAP 已经为薪酬创建 了灵活的功能强大的配置模型。当使用正确时,许多工作就已经完成好了,当使用不正确时,发现它会引 起困惑并且导致不稳定。所以要好好的测试你的配置并以文档形式记录你的配置。下面是对 Schema CN28 的部分简单阐述:到:特别处理运行?COPYXLR0导入上一期工资结果COPYCNT0工资总额(读入时间数据)CO

20、PY CNAP导入扣减(0014、0015 导入)COPYCNAL确定每个月的扣减因子COPYCNNG净支付(净工资)计算(中国)BLOCKBEG*Payroll schema:CHINACOM工资 Schema :中国标准COPYXIN0初始化工资COPY CNBD编辑基本数据(中国)IFSPRN特别处理运行?非周期性支付?RERSH IT删除 IT (删除内表)ENDIFCOPYXRRO回溯(反算)COPYCNENBLOCK END中国工资核算COPYXNNO净支付/扣减和传输Function(Function)BLOCK描述:BLOCK Function 允许你构造一个工资核算过程日志。

21、在开始和结束标记点中把工资Function按语义顺序聚集在一起,且他们岀现在日志中的一个普通节点。语法:Function 参数 1参数 2 参数 3 参数 4FUNCTION BLOCK Function 名称参数 1BEG 开始一个语义块END 结束一个语义块参数 2目前无该参数参数 3目前无该参数参数 4目前无该参数说明:BLOCK Function 可以被嵌套,在一个子 Schema 中,一个结束块必须对应一个开始块Schema最后处理XINO初始化工资数据(国际)人员计算 Schema重要的信息/事件(开关),哪一些有关工资核算的进一步过程,工资运行开始在这个子结构:子 Schema

22、由下述步骤组成:Schema 中指1、指定程序类型(工资核算或评估)2、设置数据库更新开关(YES/NO)3、必需的信息类型(导入仅仅是 schema 所需的主数据信息类型)4、导入所有时间信息类型5、指定检查控制记录PA03(测试或激活生产)参数1 参数 2 参数 3参数 4DCOM注释:工资发放核算初始化BLOCK BEG块开始:PGM ABR工资发放的程序类型UPD YES更新数据库(是/否)OPT INFT只使用信息类型的读取OPTTIME输入全部的时间信息类型CHECK ABR* 核查 PA03(生产机去掉* )BLOCK END块结束FunctionPGM :识别一个工资发放的程序

23、类型PGM Function 给工资核算驱动提供一个工资核算的程序类型信息不同的 Schema 允许薪资驱动在不同的时间段里去执行不同的程序,这些工资和评估程序哪一个在工资核算之后运行。这两个类型说明程序现有的工资数据如果一个 Schema 不包含 PGM Function,程序是假设(缺省)一个发薪程序。如果一个 schema 包含多个PGM Function,那么最后一个是有效的。语法:参数 1ABR 工资核算AUS 评估MIX 工资/评估SP特殊运行,这个特殊的仅仅适用于西班牙和奥地利国家的版本TRN 遗留数据传输例:如果你想去创建一个工资的Schema PGM (参数 1)ABRUPD

24、 执行数据库更新BLOCK END块结束FunctionUPD 控制在运行工资核算后产生的结果是否保存到数据库或仅仅在当前显示。参数 1 作为一个开关在一个 schema 之初设置语法:Function UPD参数 1NO 不更新数据库YES 更新数据库参数 2参数 3参数 4例:如果你想去测试一个工资核素且结果不被更新到数据库UPD (参数 1)NOOPT(Options):你可以使用 OPTFunction 去为工资导入信息类型语法:参数 1 : BSI 已过时COPL 集成成本计划DEC 小时工资2 位数ENQ 不再使用INFT必需的信息类型(导入仅仅是 schema 所需的主数据信息类

25、型)NRC 无回溯核算TIME 读时间信息类型必需入口:参数 1注意:如果你想在工资核算中去处理时间管理数据(如:改变日程表,缺勤等),在你的schema 中 OPTFunction 必需在参数 1 中包含 TIME。CHECK 在选择雇员之前/之后核查。FunctionCHECK 完成两个任务1)按照 schema 类型检查规定的时间(期间)2)执行一个整体的检查:SchemaCNBD 中国基础数据工资子 Schema,子 Schema 被主 Schema 调用该子 Schema 读取国际总工资计算(核算)所需的全部基础数据(主数据),基础数据接着被打印到工资日志(女口果 program o

26、ption=ON).结构:该子 Schema 由以下主要步骤组成:1、 读取员工姓名(P0001-ENAME)2、 从以下信息类型中读有关工作中心和基本工资数据a)人事事件 P0000,b)组织分配 P0001,c)计划工作时间 P0007d)基本工资 P0008e)工资维护 P0052 和f)成本分配 P00273、 检查所需的所有主数据可以被工资驱动的,否则程序被取消4、 在工资日志中打印上述基本数据。FUNCTIO 参数 1 参数 2 参数 3 参数 4 DCOMBLOCK BEGENAMEWPBPP0014 CN14 GEN NOAB编辑基本数据编辑基本数据从 EE(lnfotype0

27、001) 中确定名字读取工作中心和基础工资数据为 P0014分害 9 WPBI和设置 APZNRDATES读取详细时间数据IFSPRN判读是否为非周期工资运行?ELSE周期性工资运行?P0532读取(5)保险数据P0530读取公积金数据P0533读取人事档案中的服务费ENDIF结束 IF 语句块P0531读取所得税数据GON如果数据完整,继续 BLOCK END结束块-A previous employer tableVAG 先前雇主表C Cumulation tableD difference tableE results tableG Gross results tableH Old re

28、sults tableI Input tableCRT 累积表DT 差异表RT 结果表GRT 总结果表AIT 旧结果表IT 输入表L Results table last payroll LRT上一工资结果表M Incentive wages resultsLS计件工资结果表N LoanLO 借出(仅仅可以再 function P0045 使用)、工资核算基础1 工资项(wage type)的分类1.1 主要工资项 Primary wage tapes主要工资项也称为对话工资项由用户前台手工输入,或通过系统设定的时间来产生。通过复制系统标准的 技术工资项(模型工资项,以 M 开头,尽量选择接近的进行复制)来产生主要工资项。primary wage tapes前台输入dialog wage types前台维护(0008、0014、0015、0267)2.time wage types前台可以输入也可以不输入3.others : absences (包含在 time wage types 里面)使用程序:RPUTRBK 可以修改 0003

温馨提示

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

评论

0/150

提交评论