由于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中。
(5) 除了信息类型以外的很多数据都保存在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来取到该记录的注释数据。
以上。