hr開(kāi)發(fā)小結(jié)
HR信息類(lèi)型增強(qiáng)
信息類(lèi)型是SAPHR模塊數(shù)據(jù)單元,用于對(duì)人員數(shù)據(jù)的記錄和維護(hù),是HR的基礎(chǔ)。信息類(lèi)型按照其創(chuàng)建方式的不同可以分為:人事信息類(lèi)型、組織信息類(lèi)型。信息類(lèi)型數(shù)據(jù)的維護(hù)主要在事物碼PA30、PA40、po10、P013中進(jìn)行。信息類(lèi)型的創(chuàng)建
信息類(lèi)型的創(chuàng)建涉及到的兩個(gè)事務(wù)碼:PM01,PPCI。分別對(duì)應(yīng)人事主數(shù)據(jù)與組織、職位主數(shù)據(jù)的增強(qiáng)。
人事信息類(lèi)型在生成時(shí),系統(tǒng)會(huì)自動(dòng)生成201*、1000、3000等屏幕,以及相應(yīng)的類(lèi),和PR模塊。其中201*屏幕是我們?cè)赑A30中(對(duì)人事信息類(lèi)型來(lái)說(shuō))編輯或查看時(shí)看到的屏幕,一般做好信息類(lèi)型增強(qiáng)后需要對(duì)201*屏進(jìn)行修改,像設(shè)置下拉框、設(shè)置單選按鈕組、制作樹(shù)型結(jié)構(gòu)F4等;3000屏為列表屏幕,是我們點(diǎn)擊概覽時(shí)所看到的屏幕。PR模塊用于信息類(lèi)型的顯示(具體的我也不清楚)。
組織信息或職位信息類(lèi)型,有時(shí)需要?jiǎng)?chuàng)建7000屏,也就是我們常見(jiàn)的PPOSE屏,這個(gè)屏幕可以在生成信息類(lèi)型時(shí)直接在PPCI里生成(點(diǎn)擊菜單欄中,信息類(lèi)型創(chuàng)建子屏幕即可,當(dāng)然邏輯流要與201*屏的邏輯流保持一致)。人事信息類(lèi)型的創(chuàng)建創(chuàng)建信息類(lèi)型
HR本身提供一些常用的信息類(lèi)型,但當(dāng)有特殊的需求時(shí)需要進(jìn)行信息類(lèi)型的創(chuàng)建。自己創(chuàng)建的信息類(lèi)型編碼是以9開(kāi)頭的四位數(shù)字,其他數(shù)字開(kāi)頭的信息類(lèi)型為系統(tǒng)自帶的。像9025、9195、9135等。創(chuàng)建步驟如下(以9001為例):TCODEPM01
PM01》創(chuàng)建IT》輸入9001》選擇PS結(jié)構(gòu)》編輯,進(jìn)入ps9001編輯界面。維護(hù)后點(diǎn)擊;
信息類(lèi)型增強(qiáng)時(shí),需要?jiǎng)?chuàng)建一個(gè)結(jié)構(gòu),用于說(shuō)明該信息類(lèi)型有哪些字段,結(jié)構(gòu)的名稱(chēng)格式為:”P(pán)S+信息類(lèi)型”。實(shí)例結(jié)構(gòu)如下:保存,激活后返回PM01界面,點(diǎn)擊生成對(duì)象,同前。維護(hù)信息類(lèi)型特征:
系統(tǒng)會(huì)按照你提供的字段生成201*屏、3000屏;其中201*屏為我們?cè)赑A30中進(jìn)行維護(hù)(查看)時(shí)展現(xiàn)出的屏幕,3000屏即列表屏,當(dāng)我們選擇概覽時(shí)的所看到屏幕。
詳細(xì)設(shè)置如下:(我們可以通過(guò)SM30維護(hù)V_T582A中信息從而實(shí)現(xiàn)對(duì)信息類(lèi)型的屬性的維護(hù))
維護(hù)完保存,進(jìn)入PA30,效果如下:
信息類(lèi)型自動(dòng)生成完成。由于屏幕是自動(dòng)生成,屏幕中的所有字段均由結(jié)構(gòu)中的字段生成。所以需要對(duì)屏幕進(jìn)行修改。(像:屏幕字段描述的修改、F4幫助、下拉列表等)增強(qiáng)單個(gè)屏幕當(dāng)某些信息類(lèi)型的字段不能滿足當(dāng)前的業(yè)務(wù)需求時(shí),需要對(duì)這個(gè)信息類(lèi)型進(jìn)行增強(qiáng)。單個(gè)屏幕增強(qiáng)的步驟如下(以信息類(lèi)型0529為例)。PM01》單個(gè)屏》信息類(lèi)型號(hào)0529》客戶(hù)包含》編輯,這時(shí)進(jìn)入CI_P0529結(jié)構(gòu)的創(chuàng)建。
CI_0529結(jié)構(gòu)中的字段即為需要在屏幕中增強(qiáng)的附加字段。CI_0529結(jié)構(gòu)如下:
創(chuàng)建完成后,保存,激活,回到PM01初始界面,點(diǎn)擊生成對(duì)象,這時(shí)系統(tǒng)會(huì)給出一系列提示消息框,不要理會(huì),點(diǎn)確定直到不出現(xiàn)。這時(shí)相關(guān)的屏幕、結(jié)構(gòu)、表都已經(jīng)創(chuàng)建完畢,但要在前臺(tái)界面顯示出來(lái)還需做一定的設(shè)置。
PM01》分配增強(qiáng)》新條目。
維護(hù)好之后,保存,退出,現(xiàn)在可在事務(wù)碼PA30里看到效果了。注:屏幕自動(dòng)生成的字段的輸入/輸出以及可修改性是可以在屏幕修正(v_t588m/t588m)里進(jìn)行設(shè)置。組織職位信息類(lèi)型的創(chuàng)建創(chuàng)建信息類(lèi)型
組織信息信類(lèi)型的創(chuàng)建TCODE為:PPCI
信息類(lèi)型以9開(kāi)頭,最好與人事的信息類(lèi)型編碼區(qū)分開(kāi)。
首先要?jiǎng)?chuàng)建HRIXXXX結(jié)構(gòu)。SE11根據(jù)業(yè)務(wù)字段進(jìn)行HRI結(jié)構(gòu)的創(chuàng)建.(在創(chuàng)建組織信息類(lèi)型時(shí)要,收集好需求,避免遺漏字段。組織信息類(lèi)型后期刪除比較麻煩。)創(chuàng)建信息類(lèi)型PPCI進(jìn)行檢查生成信息類(lèi)型
維護(hù)信息類(lèi)型視圖(SM30T777I),維護(hù)時(shí)間限制和信息類(lèi)型類(lèi)型組織職位中子屏幕(7000)屏幕的創(chuàng)建
進(jìn)入PPCI,填寫(xiě)信息類(lèi)型,點(diǎn)擊創(chuàng)建,點(diǎn)擊菜單欄中的“信息類(lèi)型”,選擇“創(chuàng)建子屏幕”。
創(chuàng)建完子屏幕后,對(duì)新生成屏幕的邏輯流及屏幕進(jìn)行修改。HR出口(CMOD)增強(qiáng)HR出口增強(qiáng)中常用的方法有:
1、cl_hr_pnnnn_type_cast=>prelp_to_pnnnn“獲取數(shù)據(jù)2、cl_hr_pnnnn_type_cast=>pnnnn_to_prelp“寫(xiě)入數(shù)據(jù)HR中常用的BADI
1、HRBAS00INFTY“作用于OM2、HRPAD00INFTY“作用于PA原始字段描述修改增強(qiáng)1、CMODHR程序開(kāi)發(fā)
HR程序開(kāi)發(fā)如其他模塊開(kāi)發(fā)有些不同。主要是因?yàn)镠R模塊中引入了信息類(lèi)型、邏輯數(shù)據(jù)庫(kù)和宏。2.1邏輯數(shù)據(jù)庫(kù)
HR中常用的邏輯數(shù)據(jù)庫(kù)為:PNP、PCH、PNPCE、PAP,其中PNP及PCH用的最多。PNP用于獲取人員信息,PCH用于獲取組織信息。2.2Provide
PROVIDE常用于HR的取數(shù)中。
一般provide和endprovide用于處理時(shí)間限制是1和2的infotype.會(huì)一筆一筆的循環(huán)該infotype.provideendprovide會(huì)將符合條件的記錄進(jìn)行分段,因此會(huì)改變pnnnn-begda或pnnnn-endda的值,使用時(shí)要注意。2.3HR報(bào)表常用的宏
1、rp_provide_from_last用于獲取信息類(lèi)型中的最新的一筆數(shù)據(jù)2、rp_provide_from_frst用法與rp_provide_from_last相同,用于獲取信息類(lèi)型中的第一筆數(shù)據(jù)與HR相關(guān)的FM
1、RH_STRUC_GET用于獲取組織單元下的職位及人員信息2、CU_READ_RGDIR薪資報(bào)表中用于獲取期間
3、PYXX_READ_PAYROLL_RESULT根據(jù)索引號(hào)得到工資數(shù)一般與CU_READ_RGDIR一起用
4、RP_LAST_DAY_OF_MONTHS獲取一個(gè)月的最后一天5、HR_GET_TIME_BETWEEN_DATES獲取日期年月差6、RH_OBJID_REQUEST獲取組織對(duì)象
7、HR_HCP_READ_OBJECT_TEXT獲取對(duì)象文本8、RP_HIRE_FIRE獲取0041中的日期9、HR_AUPBS_AGE計(jì)算員工年齡
擴(kuò)展閱讀:SAP HR開(kāi)發(fā)總結(jié)(1)
一、系統(tǒng)中提供了標(biāo)準(zhǔn)的報(bào)表
某些報(bào)表無(wú)法通過(guò)菜單路徑或常規(guī)報(bào)告選擇來(lái)訪問(wèn)。而是必須通過(guò)選擇菜單:系統(tǒng)→服務(wù)→報(bào)告來(lái)進(jìn)行訪問(wèn)。在初始屏幕中,您可以輸入RP*并使用后續(xù)報(bào)告來(lái)顯示所有報(bào)表的概覽?赏ㄟ^(guò)使用以下命名約定來(lái)輸入更多特定的通用搜索標(biāo)準(zhǔn):RPL*RPS*RPC*RPU*RPT*RPAPL*RPI*RH*清單統(tǒng)計(jì)工資核算報(bào)表實(shí)用程序報(bào)表時(shí)間管理報(bào)表申請(qǐng)人數(shù)據(jù)報(bào)表用于創(chuàng)建批輸入會(huì)話的報(bào)表人事計(jì)劃報(bào)表
EXAMPLE_PNP_GET_PAYROLL,如果沒(méi)有寫(xiě)過(guò)Payrollresport的人,參考這個(gè)Report。PAY99_RESULT:Structureforpayrollresult,其中的EVP在設(shè)計(jì)工資單的Rule時(shí)可能就用到。
二、PHF、SI、TAX相關(guān)的報(bào)表,可以在pc28中找到
PC28SAPmenuSubsequentActivitiesPerpayrollperiodReporting
通過(guò)中國(guó)的TAX報(bào)表,看看如何處理payrollresult.
(1)LDB
(2)Reportcatalog,使用后可以自動(dòng)帶出選擇屏幕的一部分(3)Unicodechecksactive,要激活(4)使用了getpernr,這樣的event.,getpernr是一個(gè)循環(huán)操作,界面上選擇
的所有員工,都會(huì)依次循環(huán)。每一次的循環(huán),都會(huì)找到當(dāng)前員工的infotype數(shù)據(jù),找哪些infotype中的數(shù)據(jù),是在infotypes中的聲明中決定的。
(5)取得payrollresult的function:CU_READ_RGDIR,將payrollresult
從cluster表中取出來(lái)。
(6)對(duì)于Cluster表,可以如下使用
TABLES:PERNR,PCL1,PCL2,PC260.(7)
三、標(biāo)準(zhǔn)報(bào)表舉例
(1)HTWLINF0
可以看到員工的所有維護(hù)過(guò)的信息類(lèi)型,包括幾條記錄,分別的起止時(shí)間,最后修改的時(shí)間、修改人等,如果有子類(lèi)型,還會(huì)按照子類(lèi)型來(lái)區(qū)分;更方便的是,雙擊每條記錄,都可以跳到PA20中查看詳細(xì)的信息。
(2)EXAMPLE_PNP_GET_PAYROLL
如果沒(méi)有寫(xiě)過(guò)Payrollresport的人,參考這個(gè)Report
REPORTZEXAMPLE_PNP_GET_PAYROLL.
tables:pernr,pyorgscreen,pytimescreen.nodes:payrolltypepay99_result.tables:t512t.
data:wa_rtlikelineofpayroll-inter-rt.data:wa_crtlikelineofpayroll-inter-crt.data:wa_wpbplikelineofpayroll-inter-wpbp.data:g_result_countertypei.
data:mylistlikepc261OCCURS0.data:wa_mylistlikelineofmylist.
data:paytypereftocl_pay."這個(gè)類(lèi)有兩個(gè)方法READ_RESULT,和WRITE_RESULTinitialization.
getpernr.
write:/"正在處理的人員編號(hào)為:",pernr-pernr.g_result_counter=0.createobjectpay.
callmethodpay->read_resultimportinglist=mylist."將結(jié)果輸出到pc261結(jié)構(gòu)中。Clusterdirectory
"CALLMETHODpay->write_resultEXPORTINGlist=mylist."感覺(jué)這一句可有可無(wú)?
loopatmylistintowa_mylist."循環(huán)訪問(wèn)獲得的結(jié)果。write:/wa_mylist.endloop.
getpayroll.
g_result_counter=g_result_counter+1.
write:/"sequencenumber=",payroll-evp-seqnr.write:"Inperiod=",payroll-inter-versc-inper.write:"forperiod=",payroll-inter-versc-fpper.write:"Paydate=",payroll-inter-versc-paydt.
write:/"WBPB拆分---begin".
loopatpayroll-inter-wpbpintowa_wpbp.
write:/"PersonelArea=",wa_wpbp-werks,"Subarea=",wa_wpbp-btrtl.endloop.
write:/"WBPB拆分---end".skip1.
write:/"RT表中的數(shù)據(jù)--begin".loopatpayroll-inter-rtintowa_rt.
selectsingle*fromt512twheresprsl=sy-languandmolga=payroll-inter-versc-molgaandlgart=wa_rt-lgart.
write:/wa_rt-lgart,t512t-lgtxt,wa_rt-betrgcurrencypayroll-inter-versc-waers,payroll-inter-versc-waers.endloop.
write:/"RT表中的數(shù)據(jù)--end".write:/"CRT表中的數(shù)據(jù)--begin".
loopatpayroll-inter-crtintowa_crt.
selectsingle*fromt512twheresprsl=sy-languandmolga=payroll-inter-versc-molgaandlgart=wa_crt-lgart.
write:/wa_crt-lgart,t512t-lgtxt,wa_crt-betrgcurrencypayroll-inter-versc-waers,payroll-inter-versc-waers.endloop.
write:/"CRT表中的數(shù)據(jù)--end".
getpernrlate.
skip.
ifg_result_counter=0.
write:/"未找到結(jié)果for",pernr-pernr.else.
write:/"共找到:",g_result_counter,"條結(jié)果for",pernr-pernr.endif.
(3)PAY99_RESULT結(jié)構(gòu)
Structureforpayrollresult,其中的EVP在設(shè)計(jì)工資單的Rule時(shí)可能就用到。(4)2
四、自定義報(bào)表舉例五、獲得員工的雇傭日期
data:hire_datelikep0001-ENDDA.
CALLFUNCTION"RP_GET_HIRE_DATE"EXPORTING
PERSNR="28000021"CHECK_INFOTYPES="0000"
IMPORTING
HIREDATE=hire_date.
write:/hire_date.
-4556-1-1.html
HR信息類(lèi)型創(chuàng)建$_"V#W/W4d.d;@
9@;E0R9a7^9s/x)l-c8X
鎖定人員編號(hào)
CALLFUNCTION"BAPI_EMPLOYEE_DEQUEUE"6~,i$p:r(`0^!^0x
:u)@-W&q"p%a,o
EXPORTING%@5F*Kk+J-n2C(a5S,b*J
!Q8q"U#W;y!a8`8h
NUMBER=
IMPORTING
$]/n5Bc!~6B/c
RETURN=
*^:r,`.B6c*`%C4r8h#z
EXCEPTIONS+n4w(U7D;a#m)p
)R#E)U;r)y"L*x#}:g%N
OTHERS=01."A2j(U(f"Y/d"l+I
3C-M+D3~*^9N&q
創(chuàng)建信息類(lèi)型1Y!~7N#K2?7u.o4|
4e"C3e5C1p*{"?+{
CALLFUNCTION"HR_INFOTYPE_OPERATION";Q.s)}7g#I-q
EXPORTING5U4F%w8[/Vg8V7e+e
INFTY=
"v&q7q;}7R2N*A
SUBTYPE=&p({5`+P)z7n&z2Ov
NUMBER=6V&Y;v"Y-m6V
VALIDITYBEGIN=
RECORD=(V,M/n+t:s2R%r%R&\\.{1C-C+L)x,{!U3vh
OPERATION="INS"
#a:L!x/E"S2BA-G7g$X1U
NOCOMMIT="X"
(j-~3Y.n2@*y:s6?+u-b(C
DIALOG_MODE="0"
IMPORTING
RETURN=+a8~)B2L$O0|
KEY=6q6F3a3o*{1L7n/w;`
1EF*B$u-v*|8o!D-a%c
EXCEPTIONS#P5[H4n#T#D
OTHERS=0.1c#T0U)~6N+C!D8O8e.s
IFL_RETURNISINITIAL.
P_TYPE="S".
,T*Z:H(q"n0e"H&s#u(G
S_MSG="信息類(lèi)型創(chuàng)建成功".#k9J1h$O:r)m-ay
(I"Z6s;P-F2T
COMMITWORK.$X:E2@+M,`#~
解除鎖定.D"D+@;V4x"f.]
CALLFUNCTION"BAPI_EMPLOYEE_DEQUEUE"+]%k1yr:E/P&V$u
EXPORTING
(g"r3f)`:]*`-^)j
NUMBER=6E9H7@8X"~:Z.?-m:e+QA7A
IMPORTING8p"OM0X5r0^4]
RETURN=
EXCEPTIONS:X;C9z*i!o5j:b7c8Z
OTHERS=01.
友情提示:本文中關(guān)于《hr開(kāi)發(fā)小結(jié)》給出的范例僅供您參考拓展思維使用,hr開(kāi)發(fā)小結(jié):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。