HR學習筆記2

2021-06-28 03:10:07 字數 3089 閱讀 3872



在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 inte***ce 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?

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的獎金,可以這樣來使用:

[c-sharp]view plain

copy

print?

data: evp1 like table of rgdir with header line.  

call function 'cd_evaluation_periods'

exporting  

bonus_date =  '20090102'

inper_modif = pn-permo  

inper       = pn-*****  

pay_type    = 'a'

pay_ident   = ' '

tables  

rgdir = rgdir  

evpdir = evp1.  

小結,從hr的基本概念,到使用logic db pnp來查詢hr的資訊型別的資料。最後,學習了用巨集和函式來查詢員工的工資資訊。我想一般的hr開發涉及到的東西差不多就這些了。以後遇到複雜的情況再補充。

HR學習筆記1

sap hr一般會有很多開發。而這個模組資料的特點也讓它的開發和其它模組有些不同。hr的所有資料都是以資訊型別來儲存的,每個資訊型別的資料都和時間段緊密相連。hr開發一般使用sap提供的logic database pnp.用起來也非常簡單。只需要在新建程式時,加上pnp。然後在程式裡加上table...

SAP學習筆記 HR模組學習筆記

什麼都略懂一點,生活會更多彩一些。所以,最近研究了一下sap的hr模組。structure in human resource 首先要搞清楚sap hr的結構 最重要的三個概念分別是企業結構 人員結構 組織結構。enterprise structure,personal structure,orga...

學習筆記2

異常 try catch exception e finally 如果出現異常的 沒有try catch語句,異常會浮現至它所出現的方法上,然後從該方法拋至其呼叫者。異常分為檢查異常和非檢查異常,常見的錯誤例如1 0等為非檢查異常,大部分都是檢查異常。過載,重寫 過載就是同乙個類中方法名相同,但是方...