HR 開發技術(abap 轉載)
HR學習資料
1. 綱要
工作總結:
一、編寫報表程式:直管人員花名冊
二、編寫Smart Form:財務會計列印憑證
三、學習了HR業務知識
四、學習HR350
五、練習從VB和Notes中通過OCX呼叫BAPI
六、準備Info Pak培訓
下週計劃:
一、繼續學習和研究HR模組的程式設計。
二、學習FICO模組業務知識。
2.1. 在VB和Notes中呼叫BAPI
2.2.1.1. 常用Tcode
PA30人力資源>行政事務>人力資源主資料>PA30 人事事件 |
人力資源主資料-用於單獨維護某個資訊型別,如修改員工姓名、增加職業資格等。 |
PA40人力資源>行政事務>人力資源主資料>PA40 人事事件 |
人事事件-用於執行特定的人事流程性工作,如員工入職、退休等,流程中會涉及多個資訊型別的修改、增加工作。 |
2.2.1.2. 資訊型別
2.2.2.1. 常用Tcode
PP03人力資源->組織管理->工具->物件->動作 |
建立組織單元 |
PO10人力資源->組織管理->專家模式->組織單位 |
修改組織單元 |
PP03人力資源->組織管理->工具->物件->動作 |
建立職務 |
PO03人力資源->組織管理->專家模式->職務 |
修改職務 |
PP03人力資源->組織管理->工具->物件->動作 |
建立職位 |
PO13人力資源->組織管理->專家模式->職位 |
修改職位 |
PPOME人力資源->組織管理->組織計劃->組織和人員配備->更改 |
更改組織和人員分配 |
2.2.2.2. 物件結構
計劃版本:系統中可以維護多套組織結構版本,唯一有效版本是01。
2.2.3.1. 常用Tcode
PA61人力資源>時間管理 >行政事務 >時間資料>維護 |
維護時間資料-維護員工工作計劃,休假資訊。 |
PA30人力資源>行政事務>人力資源主資料>PA30 人事事件 |
維護產假續假期間扣減比例 手工維護缺勤扣減 |
2.2.3.2. 業務流程和資訊型別
2.2.4.1. 常用Tcode
PA30人力資源>行政事務>人力資源主資料>PA30 人事事件 |
人力資源主資料-薪資維護 |
PC00_M99_PA03_RELEA人力資源>工資 >亞洲/太平洋 >中國>工資核算 > - 釋出工資核算 |
核算薪資 |
PC00_M99_PA03_CHECK人力資源>工資 >亞洲/太平洋 >中國>工資核算 > 檢查結果 |
修正薪資資料 |
PC00_M99_PA03_END人力資源>工資 >亞洲/太平洋 >中國>工資核算 > 退出工資核算 |
結束薪資核算 |
PC00_M99_CIPE人力資源>工資 >亞洲/太平洋 >中國>後續活動 >每個工資核算期間>過帳以核算>建立過帳執行 |
執行薪資過賬-薪資核算結果過賬到財務 |
PC00_M28_CALC人力資源>工資 >亞洲/太平洋 >中國>工資核算 >起始工資核算 |
發放非週期性支付的獎金-發放非週期性支付的獎金(包括效益月獎/季度獎、效益半年獎、效益年終獎) |
2.2.4.2. 業務流程和資訊型別
2.2.5.1. 常用T-code
PBAZ招聘>廣告>空缺>顯示 |
檢視組織管理部分的職位空缺,瞭解整體招聘需求。 |
PB10招聘>申請人資料>初始資料錄入 |
通過建立、維護申請人資料,將申請人資訊在系統中進行管理。 |
PB40招聘>申請人資料>人事事件 |
通過建立、維護申請人附加資料,將申請人資訊在系統中進行管理。 |
PBA7招聘>申請人活動>傳輸申請人資料>執行 |
輸申請人成為正式員工 |
PBA8招聘>申請人活動>傳輸申請人資料>完成活動 |
2.2.6.1. 常用Tcode
S_AHR_61011887人力資源>培訓和事件管理>設定>當前設定>主資料目錄 |
建立業務事件組/業務事件型別-通過建立、維護業務事件組,登記參加人員情況,建立培訓業務資料庫,實現記錄、修改、統計、管理相關單位綜合類培訓事件的功能。 |
PSV2人力資源>培訓和事件管理>業務事件>業務事件選單 |
建立業務事件-通過建立、維護業務事件,登記參加人員情況,建立培訓業務資料庫,實現記錄、修改、統計、管理相關單位綜合類培訓事件的功能。 |
PV00人力資源>培訓和事件管理>出席>登記:業務事件的出席者 |
登記業務時間的出席者-通過建立、維護業務事件,登記參加人員情況,建立培訓業務資料庫,實現記錄、修改、統計、管理相關單位綜合類培訓事件的功能。 |
PV12人力資源>培訓和事件管理>業務事件>確定的預定/取消 |
確定業務事件的預定或取消-通過建立、維護業務事件,登記參加人員情況,建立培訓業務資料庫,實現記錄、修改、統計、管理相關單位綜合類培訓事件的功能。 |
2.3.1.1. 資訊型別 Infotype
資訊型別是4位編碼,對應一張物理資料庫表。SM30-v_t582a
0-1000 人員資訊
1000-2000 職務、部門
2000以上考勤
4000以上人事事件
9000以上自定義
資訊型別是基於時間的,一個員工在一張表中可能有多條記錄。RP_PROVIDE_FROM_LAST和RP_PROVIDE_FROM_FRST兩個巨集用於讀取。
2.3.1.2. Join and Time
Infotype三種類型:
1不間隔不重複:組織分配任意事件點有且只有一條。
2 間隔不重複:婚姻
3間隔重複:孩子
邏輯資料庫:結構-事件-資料
優勢在於:
1. 自動產生相應的螢幕和事件。
2. 自動檢查許可權。
3. 解決效能問題。
4. 資料抓取,獨立於程式。
PNP-人的資訊-PNPCE
PCH-組織資料
PAB-招聘用的
PA表Personnel Administration 儲存Infotype nnnn人事
PB表Personnel Recruitment儲存Infotype nnnn 招聘
P結構
PS結構如果ABAP字典中定義了許多表或結構,PSnnnn常用作子結構。
PCLn PCL簇儲存Cluster Results 例如:Time Managerment,Travel Management,and Payroll
HRP表組織 績效 人員發展
2.3.4.1. INFOTYPES
在GET語句時,填充Pnnnn內表。
例子:
REPORT Z_LF_HR02.
TABLES: PERNR.
INFOTYPES: 0001.
GET PERNR.
PROVIDE * FROM P0001 BETWEEN PN-BEGDA AND PN-ENDDA.
WRITE: / P0001-PERNR,
P0001-STELL,
P0001-BEGDA,
P0001-ENDDA.
ENDPROVIDE.
2.3.4.2. PROVIDE……ENDPROVIDE
類似Select語句,時間相關
2.3.4.3. RP_PROVIDE_FROM_LAST,RP_PROVIDE_FROM_FRST,
該巨集是在SAPDBPNP中定義的,用於讀取這個時間段內最後一條或第一條的資訊型別。
巨集程式不能除錯。
2.3.4.4. RP_SET_DATA_INTERVAL
該巨集是把資料庫表PAnnnn中的資料填充到內表Pnnnn中。
2.3.4.5. RP-READ-T001P
讀取人事範圍/子範圍
({?SYB}="0" OR{ZM_HR_101_ZM_HR_101_PABO01.[ZC_SYB]-[2ZC_SYB]} = {?SYB}) and
(if {?Type}="1" then{ZM_HR_101_ZM_HR_101_PABO01.[Z_GLZJL]-[2Z_GLZJL]}={?ParamValue}elseif{?Type}="2"then{ZM_HR_101_ZM_HR_101_PABO01.[Z_YGYJFL]-[2Z_YGYJFL]}={?ParamValue}
elseif{?Type}="4"then{ZM_HR_101_ZM_HR_101_PABO01.[ZC_SLFW]-[2ZC_SLFW]}={?ParamValue}
elseif{?Type}="5"then{ZM_HR_101_ZM_HR_101_PABO01.[0AGE_RANGE]-[20AGE_RANGE]}={?ParamValue}
else{ZM_HR_101_ZM_HR_101_PABO01.[Z_ZGXL]-[2Z_ZGXL]}={?ParamValue})
2.3.4.6. HR_READ_INFOTYPE
讀取資訊型別到內部Pnnnn中
2.3.4.7. RP_GET_HIRE_DATE
讀取僱傭日期
2.3.4.8. BAPI_EMPLOYEE_ENQUEUE
程式在修改人力資源主資料時鎖定當前personnel number
2.3.4.9. HR_INFOTYPE_OPERATION
更新、拷貝、刪除、插入資訊型別,自動邏輯檢查。
不自動做邏輯檢查。
2.3.4.10. HR_CHECK_AUTHORITY_INFTY
檢查使用者許可權,使用邏輯資料庫自動檢查許可權。
2.3.4.11. RP_READ_ALL_TIME_TIY 巨集
讀取時間資訊型別時系統資源消耗很大,所以採用MODE N關鍵字,在GET PERNR時不讀取資訊型別。在後續程式中用RP_READ_ALL_TIME_TIY讀取
2.3.4.12. RH_READ_INFTY_1001
用於讀取物件關係的函式
輸入引數有:計劃版本PLVAR,物件型別OTYPE(人員是P),物件編號OBJID(人員編號),物件關係SUBTY(從P到S關係為B008,該資訊存放在T77AW表中,也可以通過“SELECT * INTO TABLE it77aw FROM t77aw WHERE wegid = 'P-S-O' ORDER BY PRIMARY KEY.”去取得。)
輸出引數是一個內表,欄位PROZT表示職位所佔百分比,SOBID表示職位編碼。
CALL FUNCTION 'RH_READ_INFTY_1001'
EXPORTING
plvar = '01'
otype = 'P'
objid = g_objid
subty = 'B008'
begda = pn-begda
endda = pn-endda
TABLES
i1001 = tab_i1001
EXCEPTIONS
nothing_found = 1
wrong_condition = 2
wrong_parameters = 3
OTHERS = 4.
LOOP AT tab_i1001 WHERE sclas = 'S'.
* 取出比例最大的職位
IF tab_i1001-prozt > g_prozt.
g_prozt = tab_i1001-prozt.
g_sobid = tab_i1001-sobid.
ENDIF.
ENDLOOP.
2.3.4.13. AT關鍵字
2.3.4.14. DO關鍵字
迴圈域名從DAR01到DAR12。
讀取PAYRESULT的方法:
1、T-CODE PC_PAYRESULT;2、報表程式H99_DISPLAY_PAYRESULT
RH_STRUC_GET讀取EvaluationPath O-S-P
2.3.5.1. CU_READ_RGDIR、CD_READ_LAST
讀取RGDIR