HR学习笔记2


在HR开发中,一般都会涉及到一些常用的宏和函数,继续学习。

1.Macros and Function Modules
        常用的宏和函数总结
        由于HR的数据对时间的特殊性,经常需要对数据对基于时间段的一些处理。SAP提供了一些宏来极大的简化了问题。一般数据的处理上,常用到的宏有下面几个:

        (1) 在满足屏选条件的多个结果中,可以用RP_PROVIDE_FROM_FRST来选择时间最早的一条记录,语法:

        RP_PROVIDE_FROM_FRST P0001 SPACE PN-BEGDA PN-ENDDA.

 

        (2) 在满足屏选条件的多个结果中,可以用RP_PROVIDE_FROM_LAST来选择时间最晚的一条记录,语法:

        RP_PROVIDE_FROM_LAST P0001 SPACE PN-BEGDA PN-ENDDA.

 

        (3) 使用RP-READ-T001P来读取人事范围和人事子范围的文本,语法:

        RP-READ-T001P P0001-WERKS P0001-BTRTL SPACE.

 

        (4) 在满足屏选条件的多个结果中,可以用RP_READ_ALL_TIME_ITY不通过PN-ENDDA来截取记录的时间,语法:

        RP_READ_ALL_TIME_ITY PN-BEGDA PN-ENDDA.

 

        比如下图1所示,


        在满足选择条件的两条加班记录中,如果通过RP_READ_ALL_TIME_ITY,可以让1.12-1.20的记录完整而不被截取。

        report可以如下输出:
        Andy
        2009.1.1  - 2009.1.10  20h
        2009.1.12 - 2009.1.20  10h

        所有的宏都保存在数据库表TRMAC中。有兴趣可以看一看。

 

2.查cluster表pcl1或pcl2
        除了信息类型以外的很多数据都保存在cluster表里面。每个cluster表里的每种类型都用两个字母的缩写来代

表。比如pcl1表有下面这些类型的数据:

        B1 Time events/PDC
        G1 Group incentive wages
        L1 Individual incentive wages
        PC Personal calendar
        TE Trip costs/accounting results
        TC Trip costs/credit card data
        TX Infotype texts
        Z1 Interface PDC -> cost accounting/materials management

        在写程序取数的时候,直接用宏就行了,宏的名字是RP-IMP-Cn-xy.
        n是pcl后面的数字,比如pcl1的话,n=1。
        xy就是该类型的两个字母。
        比如借贷物品的信息类型是40,该信息里的注释说明字段是保存在cluster表pcl1里的TX类型里的。需要查询的话可以先取道p0040里的记录,然后用宏rp-imp-c1-tx来取到该记录的注释数据。

 

3.使用function从数据库中取工资信息
        员工的所有工资信息可以通过报表:H99_DISPLAY_PAYRESULT来查看。这个报表第一层的输出都可以通过函数CU_READ_RGDIR来查到。使用方法:

[c-sharp] view plain copy print ?
  1. DATA: BEGIN OF RGDIR OCCURS 100.  
  2.         INCLUDE STRUCTURE PC261.  
  3. DATA: END OF RGDIR.  
  4. DATA: COUNTRY LIKE T001P-MOLGA.  
  5.   
  6. GET PERNR.  
  7.   
  8. CALL FUNCTION 'CU_READ_RGDIR'  
  9.   EXPORTING  
  10.     PERSNR          = PERNR-PERNR  
  11.   IMPORTING  
  12.     MOLGA           = COUNTRY  
  13.   TABLES  
  14.     IN_RGDIR        = RGDIR  
  15.   EXCEPTIONS  
  16.     NO_RECORD_FOUND = 1  
  17.     OTHERS          = 2.  

        如果需要查工资报表的第二层的输出,就需要下面的方法来取数:
        工资大致分成两种,一种是周期性的,比如每个月的工资。另一种是非周期性的,比如某个月获得特别奖金。都可以使用函数CD_EVALUATION_PERIODS来查到一个内表EVPDIR,然后使用这个表来做为输入条件调用宏RP-IMP-C2-CN就可以了。
        在使用CD_EVALUATION_PERIODS时:
       (1) 如果是周期性的,那么将BONUS_DATE和PAY_TYPE都设为空。
       (2)如果是非周期性的,那么必须输入BONUS_DATE,并将PAY_TYPE设为'A'。

        比如查看某员工2009.1.2的奖金,可以这样来使用:

[c-sharp] view plain copy print ?
  1. DATA: EVP1 LIKE TABLE OF RGDIR WITH HEADER LINE.  
  2.   
  3. CALL FUNCTION 'CD_EVALUATION_PERIODS'  
  4.   EXPORTING  
  5.     BONUS_DATE =  '20090102'  
  6.     INPER_MODIF = PN-PERMO  
  7.     INPER       = PN-PAPER  
  8.     PAY_TYPE    = 'A'  
  9.     PAY_IDENT   = ' '  
  10.   TABLES  
  11.     RGDIR = RGDIR  
  12.     EVPDIR = EVP1.  

 

       小结,从HR的基本概念,到使用Logic db pnp来查询hr的信息类型的数据。最后,学习了用宏和函数来查询员工的工资信息。我想一般的HR开发涉及到的东西差不多就这些了。以后遇到复杂的情况再补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值