视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SAP-HR中比较好用的功能
2025-09-25 14:16:18 责编:小OO
文档
1. HFIUCPL0

我们都知道,在SAP中维护员工的主数据时,为了保证数据的一致性,SAP会自动的把当前的员工数据锁定,这样其他的用户就只能查看,而不能维护。这个设计是SAP严谨性的一个体现,但是同时也给实际的使用带来了一定的困扰,尤其是在结算工资的时候,经常会碰到运行了工资计算的程序后,发现一堆错误都是“用户不能锁定“的错误。只能一个一个打电话或者发mail去催促别人赶紧完成主数据的维护。有没有一个好的方法来解决这个问题呢?

答案当然是有的,并且不止一种:

1. 通过流程来规范:规定主数据的维护(包括人事资料、考勤数据等)的截止时间。但是这种方法在实际执行的过程中,效果也不是特别好,毕竟执行力不是通过一些流程的规范就能够提高的;

2.通过技术的手段来处理:SAP已经考虑到了这个问题,所以提供了一个标准的程序,可以在运行工资计算的程序之前,先检查一下有哪些员工的数据是不能锁定的,必要的时候还可以发mail通知,甚至把该用户的session给踢掉(当然需要相应的授权)。这个程序的名字就是我今天要介绍的主角——HFIUCPL0。

图1

HFIUCPL0运行界面

 

如上图,上半部分是选择的界面,和其他人事的报表的选择界面大同小异。下半部分是程序运行的选项,从上到下依次是:

∙只显示锁定的用户:显示哪些员工的数据当前被哪个用户锁定

图2

显示锁定的用户
 

∙发送mail给用户:给锁定的用户发mail

∙踢掉锁定用户的session:把锁定用户的session给踢掉

有了这个程序以后,我们就可以通过运行它来做工资计算之前的检查了。它的TCode是PC00_M44_UCPL,当然我们也可以自定义一个Z开头的、容易记忆的TCode。

2. RDDKOR54

顾问在实施的时候,主要的工作之一就是维护IMG中的数据。而IMG说穿了,也就是一堆堆的Table或者View。所以顾问实际上也就是在维护Table或者View的数据。但是有个问题是顾问在维护的时候经常碰到的,就是”命名空间“。比如说维护工资项的时候,是不允许用字母开头的;维护自定义的rule的名称时,是不允许用A-Y打头的等等。如果你没有使用用户的命名空间,而是使用了SAP的命名空间,一般情况下,你的下场有两个:

1. 无法保存;

2. 以后在升级版本的时候,你做的修改被SAP所覆盖

所以顾问在配置系统的时候,还是要遵守命名空间的规定的。当然,有些有经验的项目团队会在项目配置开始之前,就先准备一个命名规范,规定报表如何命名,工资项如何命名等,这样也就防止了上述问题的发生。但是,会不会有人会问:SAP到底有哪些给用户使用的命名空间呢?

这个问题,可以通过运行程序- RDDKOR54来得到答案。

如上图,就是程序的运行界面,你可以输入你要维护的Table或者View的名称。如以Personnel Calculation Rule的名称为例,我们知道Personnel Calculation Rule是保存在T52CE表中,就在文本框中输入T52CE,然后运行,得到如下画面:

我们从程序运行的结果可以清楚的看到,Personnel Caluation Rule的用户命名空间是不包括A-Y开头的。

有人也许会问:怎么知道我要维护的表或者试图的名称是什么呢?鉴于这个问题太过”三俗”,我就不在这里回答了,自己想办法解决吧 

3.TABLE和VARGB

今天不谈报表,谈一下SAP Payroll中比较常用的两个Operation——TABLE和VARGB。

为什么要说这两个Operation?起因是来自于网上的一个帖子:一个老印(如果我没猜错的话,应该是个印度人)讲述了他碰到的一个问题。他们的系统中在信息类型0001中增加了一个自定义字段”能否享受福利基金”,选择”E-是”或者”N-否”。然后在工资计算中去读取这个值,来计算对应的金额。他们自定义的PCR类似下面这样:

TABLEP0001 

VARGBZZZZ(自定义字段的字段名) 

ADDDWT 

<具体如何计算> 

就像童话故事的结局一样,他们已经解决了计算福利基金的问题,从此过上了幸福的生活。但是,悲剧发生了。

他们最近碰到了一个问题:有一名员工, 2010/01/01能享受福利基金;到了2010/03/01的时候,不能享受了。结果在算3月份工资的时候,由于其他的主数据更改导致回算到1月份的工资,发现回算的1月份、2月份的工资里面都把福利基金给扣掉了。也就是说:在回算1月份、2月份的工资时,VARGBZZZZZ取出来的数不是”E”。为什么会这样呢?难道TABLE不支持回算吗?

我发现这个问题挺有趣的,所以就研究了一下。发现这里面又隐藏了一个SAP不告诉你的秘密:TABLE后面确实可以支持很多表的名称(不仅仅是帮助文档中提到的那些表),比如TAX、PXXXX等,也确实都能和VARGB配合取得到栏位的数据。但是只有少数几个才支持回算,其他的在回算的时候都不保证正确。而这些支持回算的表的名称,就都在TABLE的帮助文档中。

所以下次使用这两个Operation的时候要注意了。

有兴趣看原始问题的讨论,在这里

4. RPUDEL20

在实际使用系统的过程中,总有各种各样的意外情况发生,有些时候逼得你不得不删除掉SAP中计算过的工资结果。SAP中是有删除Payroll Result的程序的,Tcode是PU01。不过这个程序有两个缺点:

1.一次只能操作一个人;

2.一次只能删除最后一次计算的记录;

换句话说,如果有5个人的记录错了,起码要删5次;而如果有的人的记录是涉及到多个月的,这个数目还要增加。

但是SAP没有告诉你的是:它还有另外一个程序,可以解决上述的问题,这就是RPUDEL20。

运行界面如下

注意看了,程序的名称为“Delete Payroll Results”,看到了吧?是复数形式。

运行后,可以看到类似下面的画面:

 程序会把选择的所有员工的所有Payroll Result的记录全部都列出来。如果要删除,在前面的选择框打钩,并点击删除按钮。系统就会提示:

然后就看到执行后的结果:

 是不是很强大?不要羡慕哥,哥只是个传说:)

5.如何查看哪些工资项应税

经过多日的奋战后,你终于完成了工资项配置的任务。长舒一口气,喝了点茶,接下来该做什么了?对了,你应该检查一下你的配置是否正确。

但是,你已经恨透了使用SM30来查看一个一个工资项的具体配置,尤其是V_512W_D里面翻页还特别麻烦。有没有更好的方法呢?

我不知道你是怎么做的,但是我可以告诉你我是怎么做的:使用程序RPDLGA20。

举例来说,工资项有一个很重要的配置就是是不是应税,这个是设置工资项是否累计到/103中来实现的。但是配置的时候,是一个工资项一个工资项的设置,怎么能查看到所有应税的工资项有哪些呢?

我们运行完报表RPDLGA20后,可以看到类似的界面:

其中,我们要找应税的工资项,应该在Cumulation wage type中找/103,找到后,展开:

是不是所有应税的工资项都查出来了?

当然,这只是这个程序的很多功能中的一个,更多强大的功能还有待你去发现!

6.如何查询一个员工的所有信息

SAP的Infotype是一个很好的架构设计,充分满足了信息存储的要求,包括各种不同的信息以及各个国家甚至企业的不同要求。但是,它同时带来了一个缺点:就是查询的时候不够方便。使用PA20/PA30查看的时候,只能看得到当前Info Group中的信息类型(还要受到屏幕显示的),而且只能看到有没有维护。

今天告诉大家一个秘密武器,可以查看所有已经维护的信息,而且是在一个屏幕里。这个武器就是HTWLINF0.

在选择屏幕中,输入查询条件,查询后的结果类似如下画面:

可以看到员工的所有维护过的信息类型,包括几条记录,分别的起止时间,最后修改的时间、用户等,如果有子类型,还会按照子类型来区分;更方便的是,双击每条记录,都可以跳到PA20中查看详细的信息。

7.更改Schema和Rule的Editor Lock

在ABAP的程序属性中,有一个叫“Editor Lock”,意思是除了作者以外其他人无法修改。这个功能的本意是很好的,防止别人无意中修改了你的代码,尤其是好不容易才调试正确的代码。但是总会有些人把这个功能用在不好的地方,比如离职前把所有自己开发的程序都设置成Editor Lock的状态,打算让别人接手的时候费点劲。如果正好碰到一个没经验的,可能就真的一筹莫展了。典型的“损人不利己-白开心”。当然,这个的破解方法网上有很多。

可是很少人会注意到,SAP HCM模块的Schema和Rule也有类似的设置。

如果真的碰到了这种情况,有什么办法来破解呢?所幸的是,SAP提供了一个标准程序-RPUCTF00。

程序运行的选择屏幕如下:

运行后的结果很简单,就是已经修改成了你要的结果(如果你没有把Test设置为ON的话)。

8.查看PA信息类型的变更

严格的来说,这个已经是个全国皆知的秘密了。不过为了引出下一篇文章,还是先简单介绍一下。

由于HR的数据有很多都是敏感的(要知道很早以前某些人的名字都已经是敏感词了),所以任何对HR数据的修改,最好都有记录可查。国外(具体是欧盟还是美国,记不清了)有一个专门的法律来保护员工的数据不能外泄,所以HR的数据已经被提到了一个很高的高度。不过SAP在设计之初,就已经考虑到了这方面的问题,已经在系统里集成了相应的功能。

对HR数据的修改,可以分为两个部分,一个是PA主数据(对应PNP/PNPCE逻辑数据库),一个是PD的数据(对应PCH数据库)。我们今天先来说一下查看对PA主数据的修改记录的程序-RPUAUD00。

上图就是该程序的运行界面,可以设置查询的相关条件,运行后,就可以查看哪些信息类型的哪些字段在什么时间被哪个用户修改过,修改前的值是什么,新的值又是什么,很详细的信息。

当然,这张报表必须先在后台做完相应的设置之后才会有数据产生。

9.查看PD信息类型的变更

这篇和上篇是一起的。

如果要查看PD信息类型的变更,应该运行报表-RHCDOC_DISPLAY。

同样,这个报表的运行,也需要后台配置的支持。

10.RHUSERRELATIONS

SAP HCM的项目中,每当考虑到权限的问题的时候,都绕不过去一个话题-“结构化授权”。这是SAP HCM特有的权限概念,也是一大创新(起码在我看来)。但是,在我们辛辛苦苦设置完每个用户的权限后,有没有什么地方可以检查授权的情况呢?尤其是结构化权限的部分。

当然是有的,SAP标准程序RHUSERRELATIONS就是专门为实现这个目标而开发的。

上图就是这个程序的运行界面,可以看的出来SAP考虑的方面还是挺多的,不单单把结构化权限列出来,还可以列出来对应的授权对象,甚至可以显示权限开关的配置以及查找到对应的员工。下载本文

显示全文
专题