SAP学习笔记(HR Develepment学习笔记2)
2009-01-15 23:24
211 查看
在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所示,
![](http://p.blog.csdn.net/images/p_blog_csdn_net/starshus/EntryImages/20090115/ot.jpg)
在满足选择条件的两条加班记录中,如果通过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来查到。使用方法:
如果需要查工资报表的第二层的输出,就需要下面的方法来取数:
工资大致分成两种,一种是周期性的,比如每个月的工资。另一种是非周期性的,比如某个月获得特别奖金。都可以使用函数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的奖金,可以这样来使用:
小结,从HR的基本概念,到使用Logic db pnp来查询hr的信息类型的数据。最后,学习了用宏和函数来查询员工的工资信息。我想一般的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所示,
![](http://p.blog.csdn.net/images/p_blog_csdn_net/starshus/EntryImages/20090115/ot.jpg)
在满足选择条件的两条加班记录中,如果通过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来查到。使用方法:
DATA: BEGIN OF RGDIR OCCURS 100. INCLUDE STRUCTURE PC261. DATA: END OF RGDIR. DATA: COUNTRY LIKE T001P-MOLGA. GET PERNR. CALL FUNCTION 'CU_READ_RGDIR' EXPORTING PERSNR = PERNR-PERNR IMPORTING MOLGA = COUNTRY TABLES IN_RGDIR = RGDIR EXCEPTIONS NO_RECORD_FOUND = 1 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的奖金,可以这样来使用:
DATA: EVP1 LIKE TABLE OF RGDIR WITH HEADER LINE. CALL FUNCTION 'CD_EVALUATION_PERIODS' EXPORTING BONUS_DATE = '20090102' INPER_MODIF = PN-PERMO INPER = PN-PAPER PAY_TYPE = 'A' PAY_IDENT = ' ' TABLES RGDIR = RGDIR EVPDIR = EVP1.
小结,从HR的基本概念,到使用Logic db pnp来查询hr的信息类型的数据。最后,学习了用宏和函数来查询员工的工资信息。我想一般的HR开发涉及到的东西差不多就这些了。以后遇到复杂的情况再补充。
相关文章推荐
- SAP学习笔记(HR Develepment学习笔记1)
- SAP BW Sap R3连接配置——视频学习笔记06
- HTML 学习笔记(一)<h1>、<hr />、<p>、<ol><li>、<ul><li>、<dl><dt><dd>、 、<a name="abc">、href="#abc"、mailto
- HR学习笔记1
- 7.15<br/><hr/><code><ul><li>学习笔记
- SAP-HR学习
- SAP 高级应用开发 学习笔记 1 -- RFC
- SAP 高级应用开发 学习笔记 1 -- RFC NO.7
- Fiori学习笔记 - Eclipse创建一个SAP UI5工程
- SAP 高级应用开发 学习笔记 2 -- BAPI
- SAP 学习笔记: 入门及进级
- SAP BW PA_事务数据的加载——视频学习笔记12
- SAP 学习笔记 FI-000 公司代码
- SAP学习笔记
- SAP在物流工作中的应用之学习笔记
- SAP学习笔记(SD的基本流程) 2008-12-26
- SAP学习笔记(CO模块学习笔记1)
- SAP学习笔记
- SAP学习笔记(SAP Portal学习笔记3)
- SAP笔记MM (中文版学习)