SAP-HR模塊報(bào)表開發(fā)_第1頁
SAP-HR模塊報(bào)表開發(fā)_第2頁
SAP-HR模塊報(bào)表開發(fā)_第3頁
SAP-HR模塊報(bào)表開發(fā)_第4頁
SAP-HR模塊報(bào)表開發(fā)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SAPHR模塊

報(bào)表開發(fā)目錄TOC\o"1-5"\h\z\o"CurrentDocument".概述 3\o"CurrentDocument".HR開發(fā)介紹 3\o"CurrentDocument"邏輯數(shù)據(jù)庫介紹 3\o"CurrentDocument"HR相關(guān)邏輯數(shù)據(jù)庫 4PNP 4PCH 5\o"CurrentDocument"邏輯數(shù)據(jù)庫的選擇屏幕 6\o"CurrentDocument"PNP的選擇屏幕 6\o"CurrentDocument"PCH的選擇屏幕 10\o"CurrentDocument".HR報(bào)表開發(fā) 12\o"CurrentDocument"HR相關(guān)數(shù)據(jù)庫表 12\o"CurrentDocument"常用函數(shù)和宏 12\o"CurrentDocument"宏RP_PROVIDE_FROM_FRST和RP_PROVIDE_FROM_LAST 13\o"CurrentDocument"函數(shù)RH_STRUC_GET 13\o"CurrentDocument"函數(shù)HR_READ_FOREIGN_OBJECT_TEXT 14函數(shù)PYXX_READ_PAYROLL_RESULT 15.其他 16\o"CurrentDocument"PNP和PCH里的變量 16\o"CurrentDocument"時(shí)間交叉 17\o"CurrentDocument"權(quán)限檢查 181.概述本文介紹了SAPHR模塊報(bào)表開發(fā)的相關(guān)經(jīng)驗(yàn),結(jié)合本人參與項(xiàng)目所做的開發(fā)工作,匯總整理了一些在HR開發(fā)中需要注意的地方,并介紹了有用的小技巧。相信本文對(duì)初級(jí)從事HR開發(fā)工作的相關(guān)人員有一定幫助。因?yàn)楣P者相關(guān)經(jīng)驗(yàn)也在積累過程中,也許本文中會(huì)出現(xiàn)一些錯(cuò)誤,還望見諒指正。HR開發(fā)介紹HR報(bào)表開發(fā)主要涉及到邏輯數(shù)據(jù)庫的應(yīng)用,相關(guān)的開發(fā)工作也主要圍繞著邏輯數(shù)據(jù)庫進(jìn)行。邏輯數(shù)據(jù)庫介紹邏輯數(shù)據(jù)庫則提供另一種選擇數(shù)據(jù)的方式,可以代替SQL語句在數(shù)據(jù)庫中提取數(shù)據(jù),供程序操作。因而,可以認(rèn)為邏輯數(shù)據(jù)庫是一種報(bào)表設(shè)計(jì)程序中的輔助工具,而不能將其誤解為一種可進(jìn)行數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫。SAP中提供多種類型的邏輯數(shù)據(jù)庫,開發(fā)人員也可自行定義數(shù)據(jù)源。TransactionCode:SE36或SLDBHR相關(guān)邏輯數(shù)據(jù)庫HR報(bào)表開發(fā)主要是對(duì)邏輯數(shù)據(jù)庫PNP(PNPCE)和PCH的應(yīng)用。其中PNPCE是PNP的加強(qiáng)。但是本文所舉例子,皆是PNP的應(yīng)用,如果將來有機(jī)會(huì)應(yīng)用到PNPCE邏輯數(shù)據(jù)庫,會(huì)再進(jìn)行補(bǔ)充。程序中使用邏輯數(shù)據(jù)庫非常方便,只要在程序?qū)傩岳镞x擇關(guān)聯(lián)到就可以實(shí)現(xiàn),直接在程序里就可以使用。AttributesType1可執(zhí)行程序Status旦ApplicationAuthorizationGroup開發(fā)類_Tenripora;yObjects[nevertransported!Logicaldatabase空力資源主數(shù)閹ASelection^Ereen□Editorlock.回Unicode檢查激活EFixedpointarithmetic□Startusingvariant2.2.1PNPPNP邏輯數(shù)據(jù)庫主要針對(duì)人事信息的查詢。PNP查詢到的信息是以人為單位的,每次查詢到一個(gè)人相關(guān)信息。如果報(bào)表的信息是關(guān)于個(gè)人人事信息的內(nèi)容,首先考慮PNP邏輯數(shù)據(jù)庫。邏輯數(shù)據(jù)使用,首先要在程序里定義TABLES:PERNRoPERNR是一個(gè)結(jié)構(gòu),每次程序返回一個(gè)PERNR的結(jié)點(diǎn),代表員工號(hào)為pernr-pernr的這個(gè)人,并附帶這個(gè)人的相關(guān)數(shù)據(jù)。如果想讓每次返回的人員附帶信息類型數(shù)據(jù),需要在程序里定義INFOTYPES:nnnn,nnnn代表信息類型編號(hào)(包括自定義增強(qiáng)的信息類型)。如果聲明了信息類型,則在返回個(gè)人信息的時(shí)候,也順帶返回這個(gè)人的一個(gè)Pnnnn的結(jié)構(gòu),對(duì)應(yīng)相應(yīng)個(gè)信息類型。Pnnnn的內(nèi)容根據(jù)屏幕選擇字段內(nèi)容確定(PNPCE邏輯數(shù)據(jù)庫返回的內(nèi)容與PNP有所不同)。程序里想使用邏輯數(shù)據(jù),在主程序里調(diào)用GETPERNRoGETpernr類似于一個(gè)循環(huán),每次返回一個(gè)pernr結(jié)點(diǎn),就是一個(gè)人,我們可以對(duì)這個(gè)人的信息進(jìn)行處理。當(dāng)把所有的人都處理完了,那我們所得到的就是需要的數(shù)據(jù)了。所以使用PNP邏輯數(shù)據(jù)庫,最少得有三行:TABLES:PERNRINFOTYPES:nnnnGETPERNR.IDES系統(tǒng)里有例程:ZPSOL0102.2.2PCHPCH邏輯數(shù)據(jù)庫主要是對(duì)應(yīng)于組織管理(OM)。相對(duì)于PNP邏輯數(shù)據(jù)庫,PCH每次返回的結(jié)點(diǎn)是OBJEC類型,代表一個(gè)對(duì)象。這些對(duì)象包括在PP01可以維護(hù)的對(duì)象(例如:O,S,……等等),隨其一同返回的也是OM的信息類型(例如1000,1001……等)。PCH查找結(jié)點(diǎn),除了標(biāo)準(zhǔn)的選擇條件之外,還可以應(yīng)用評(píng)估路徑,這樣大大增強(qiáng)了PCH的可用性。

同PNP邏輯數(shù)據(jù)庫一樣,PCH也許要在程序里聲明TABLES:OJBEC才可以使用,返回的也是objec結(jié)構(gòu)。使用方法基本同PNP邏輯數(shù)據(jù)庫類似。所以也必須要添加三行:TABLES:OJBECINFOTYPES:nnnnGETOBJEC.IDES系統(tǒng)里有例程:ZHSOL010邏輯數(shù)據(jù)庫的選擇屏幕PNP的選擇屏幕默認(rèn)的PNP選擇屏幕如下:進(jìn)一步醫(yī)擇 |由 身索幫助電排序I電"躥說蝴/?空天 。當(dāng)勢(shì)月 0當(dāng)前年口到中天 。從今日口舞好晌數(shù)除輻期間Fg期二日1)駭J1單用目E印吉玲RE印吉玲Rw人S宙當(dāng)就:止吠態(tài)■ii司代黨工語范圍雇節(jié)里F手膽人民雇節(jié)里F手膽屏幕主要分為兩個(gè)部分,期間選擇和條件選擇,最上面一排按鈕還可以進(jìn)行進(jìn)一步選擇。同時(shí),我們還可以自定義我們的選擇屏幕。標(biāo)準(zhǔn)選擇屏雖然功能完備,但界面繁瑣,很多時(shí)候客戶并不接受,所以我們大多都使用自定義的選擇屏幕。

注意:在下面選擇窗口中的組織結(jié)構(gòu)選擇只能找尋這個(gè)組織部門下面的人員,如果還有子部門,邏輯數(shù)據(jù)庫并不能返回子部門的人員。如果想要返回子部門的人員,可以在上排按鈕中選?織結(jié)構(gòu)這里邊選擇的部門,會(huì)搜尋到下級(jí)子部門。使用自定義選擇屏幕,可在程序?qū)傩岳镞x擇。當(dāng)我們關(guān)聯(lián)到PNP邏輯數(shù)據(jù)庫,再進(jìn)屬性界面,會(huì)多出個(gè)按鈕HR報(bào)告類,這就是我們可以自定義選擇界面的地方。AttributesType1可執(zhí)行程序StatusPGAP標(biāo)準(zhǔn)生產(chǎn)程序.ApplicationPA力資源AuthorizationGroup開發(fā)類2HR350CourseHR350:ProgrannnriLogicaldatabasePNP人力資源主數(shù)據(jù)Selectionscreen□Editorlock叵FixedpointarithmeticEUnicode檢查激活「StartusingvariantHR報(bào)告類|卜副周國(guó)在HR報(bào)告類中,可以創(chuàng)建、選擇系統(tǒng)提供的和我們自定義的選擇屏幕。選擇屏幕也可以在IMG里定義。▽國(guó)大事管理[>由 在人事管理中的全局設(shè)置[>國(guó)蛆織管理卜國(guó) £員開發(fā)[>飛 人事管理6 人事管理服翱1>鳴 招聘(>國(guó) 福利[>國(guó) 薪酬管理人事成本計(jì)劃和累積1> 企業(yè)薪酬管理1> 全球員工管理[>國(guó) 公司養(yǎng)老金計(jì)劃[> & 券老基金[> 職位頸篁和控制[>國(guó) 管理者桌面專家發(fā)現(xiàn)者q國(guó) 人力資源信息系統(tǒng)人力資源信息系統(tǒng)SAP查詢的HR設(shè)置報(bào)告B 調(diào)整標(biāo)準(zhǔn)選擇屏幕等畫建報(bào)表類別:分配報(bào)表類別我們可以再報(bào)表類別中創(chuàng)建我們自定義的報(bào)表選擇條件,這樣基本上能滿足客戶的需要。例如:選擇自工資核管期間工資核簽范圍@當(dāng)前期間。其他期間選擇注意:報(bào)表類是必須選擇現(xiàn)有的字段如果標(biāo)準(zhǔn)里沒有需要的選擇條件,我們可以在程序里自定義屏幕選擇但自定義的選擇條件并不會(huì)影響PNP邏輯數(shù)據(jù)庫的選擇,需要我們自己處理。標(biāo)準(zhǔn)的屏幕選擇定義在程序:DBPNPSEL。如果我們需要在程序的初始屏幕賦值或做一下定制化的內(nèi)容,可參考程序DBPNPSEL里的定義。其中最常見的客戶要求可能就是時(shí)間期間選擇??蛻敉ǔOM馨醋约旱囊髞碜詣?dòng)選擇期間,我們可以用程序變式的方式來實(shí)現(xiàn),但有時(shí)候,客戶的要求我們也可以再程序初始化的實(shí)現(xiàn),尤其是一些按鈕的選擇,讓他們出現(xiàn)在默認(rèn)狀態(tài)也是客戶經(jīng)常提出的。例如,客戶想把期間選擇默認(rèn)為當(dāng)前月,其實(shí)很簡(jiǎn)單,在初始化的時(shí)候加入代碼:PNPTIMED='M'.當(dāng)前月這些變量的聲明都可以再DBPNPSEL里找到,我們只要仔細(xì)研究這些聲明,很多事情我們都可以再初始化的時(shí)候做。PCH的選擇屏幕PCH選擇屏幕沒有報(bào)告類可以配置,因?yàn)樗哪J(rèn)選擇屏幕相對(duì)比較簡(jiǎn)單。門過期門未來3門過期門未來3當(dāng)前月口當(dāng)前年度工評(píng)日引這個(gè)界面只有期間選擇和對(duì)象選擇,所以沒有報(bào)告類可供我們自由配置。這些在大多時(shí)候很難滿足我們的業(yè)務(wù)需要,但我們最長(zhǎng)用到的評(píng)估路徑選擇也是可以很容易加入進(jìn)去。在代碼中除了聲明TABLEojbec之外,我們只要在聲明TABLEgdstr,就可以出現(xiàn)評(píng)估路徑的選擇界面活力衣卻:評(píng)估防徑狀感向星 I 口供雙至叁顯示深度這樣的界面基本上就能滿足我們大部分的需要了,如果還有不夠的,那我們可以還可以再程序里自己定義屏幕選擇條件。同樣,我們自己定義的屏幕選擇條件是不影響邏輯數(shù)據(jù)庫的返回值,所以要我們根據(jù)選擇條件自己再進(jìn)行后續(xù)處理。大部分時(shí)候,對(duì)象類型,評(píng)估路徑等內(nèi)容我們都會(huì)根據(jù)程序確定好,做成默認(rèn)輸入,或者干脆隱藏起來,但如果要影響PCH邏輯數(shù)據(jù)庫的返回值,objec和gdstr是必須要聲明的。程序DBPCHSEL 聲明了PCH選擇屏幕的選擇字段,我們可以仿照PNP的處理方法對(duì)初始屏幕進(jìn)行定義。HR報(bào)表開發(fā)HR相關(guān)數(shù)據(jù)庫表HR報(bào)表開發(fā)很肯定會(huì)涉及到數(shù)據(jù)庫表,因?yàn)镾AP的數(shù)據(jù)都存放在表里。PNP邏輯數(shù)據(jù)最常用的就是PAnnnn的表,人事數(shù)據(jù)的信息類型數(shù)據(jù)都存放在這些表中,PNP其實(shí)就是從這些表中抓取的數(shù)據(jù),所以如果我們需要一些數(shù)據(jù),可以直接手動(dòng)從這些表中抓取。邏輯數(shù)據(jù)庫返回的結(jié)構(gòu)Pnnnn其實(shí)就是表PAnnnn的子結(jié)構(gòu),所以想詳細(xì)了解Pnnnn的結(jié)構(gòu),只需要仔細(xì)研究PAnnnn的定義即可。PCH邏輯數(shù)據(jù)庫對(duì)應(yīng)的是表HRPnnnn,一般我們常碰到就是HPR1000、HRP1001,這兩個(gè)表分別是對(duì)象定義和對(duì)象關(guān)系。一個(gè)對(duì)象的自身描述都是定義在HRP1000里包括起始時(shí)間、名稱等,而兩個(gè)對(duì)象的關(guān)系則定義在HRP1001,如果想關(guān)聯(lián)兩個(gè)對(duì)象,那HRP1001表就是最好的查找對(duì)象。當(dāng)然還有很多我們常碰到的表,通過F1幫助,我們大多都能找到他們。常用函數(shù)和宏HR常用邏輯數(shù)據(jù)庫,尤其是PNP邏輯數(shù)據(jù)庫提供很多常用的宏和函數(shù)供我們使用。宏RP_PROVIDE_FROM_FRST和RP_PROVIDE_FROM_LAST宏RP_PROVIDE_FROM_FRST和RP_PROVIDE_FROM_LAST是一對(duì)相對(duì)應(yīng)的宏,也是我們PNP邏輯數(shù)據(jù)庫里最常用的一組宏。這對(duì)宏的作用就是在返回個(gè)人信息的結(jié)構(gòu)Pnnnn里提取時(shí)間最早和時(shí)間最晚的記錄。具體用法:RP_PROVIDE_FROM_FRSTPnnnnsubtypeBEGDAENDDARP_PROVIDE_FROM_LASTPnnnnsubtypeBEGDAENDDA其中Pnnnn就是要處理的信息類型,subtype處填寫子信息類型,如果沒有字信息類型,此處傳入SPACE,后面兩個(gè)是參數(shù)時(shí)間,即開始時(shí)間和結(jié)束時(shí)間。這個(gè)宏處理過后,會(huì)將開始時(shí)間和結(jié)束時(shí)間之間的,時(shí)間最早(晚)的一條數(shù)據(jù),放入Pnnnn表頭(工作區(qū))。PNP還有許多有用的宏,可以幫助我們快速處理數(shù)據(jù),具體宏的定義,可參見程序DBPNPMAC。函數(shù)RH_STRUC_GET個(gè)人感覺,這個(gè)函數(shù)是最好用最常用的一個(gè)函數(shù)之一,無論是PNP和PCH,這個(gè)函數(shù)在程序里都是最好補(bǔ)充。這個(gè)函數(shù)是根據(jù)評(píng)估路徑返回一個(gè)objec結(jié)構(gòu)的內(nèi)表,這就相當(dāng)于在程序里又調(diào)用了一次PCH邏輯數(shù)據(jù)庫的感覺。因?yàn)槲覀兠看沃荒苓x擇一個(gè)邏輯數(shù)據(jù)庫,所以在PNP里或是在PCH里,想再次通過評(píng)估路徑來查找一些信息,這個(gè)函數(shù)都提供了很方便的功能。只要給一個(gè)入口,然后再loop返回的內(nèi)表,相當(dāng)于在成立內(nèi)嵌了一個(gè)小的PCH邏輯應(yīng)用,十分好用。例如:CALLFUNCTION'RH_STRUC_GET'EXPORTINGact_otype = 'O'act_objid = t_itab-objidact_wegid = 'PERS-O'act_plvar = '01'act_begda = pchoendact_endda = pchoendTABLESresult_objec=tab_org1EXCEPTIONSno_plvar_found=1no_entry_found=2OTHERS = 3.有了評(píng)估路徑,無論是從O,S,P,我們都可以通過函數(shù)找到我們需要的結(jié)點(diǎn)。PNP里是以P為主,如果我們想得到相關(guān)O、S的信息;或是在PCH里進(jìn)行二次的查找,這個(gè)函數(shù)都是十分管用的。函數(shù)HR_READ_FOREIGN_OBJECT_TEXT在SAP系統(tǒng)中,大部分對(duì)象存在的方式的都是以ID的方式記錄在數(shù)據(jù)庫表中,HR模塊也不例外,但是HR報(bào)表中,絕大部分的可以都希望顯示名稱,這時(shí)函數(shù)HR_READ_FOREIGN_OBJECT_TEXT就非常有用。當(dāng)然你也可以把它寫到公共子例程里隨時(shí)調(diào)用,我就是這么使用的。這個(gè)函數(shù)是返回對(duì)象的名稱文本,例如:CALLFUNCTION'HR_READ_FOREIGN_OBJECT_TEXT'EXPORTINGotype = 'O'objid = g_orgehbegda = pn-enddaendda = pn-enddaIMPORTINGTOC\o"1-5"\h\z* SHORT_TEXT =object_text =l_dw_textEXCEPTIONSnothing_found = 1wrong_objecttype = 2missing_costcenter_data = 3missing_object_id = 4OTHERS = 53.2.4函數(shù)PYXX_READ_PAYROLL_RESULT這個(gè)函數(shù)主要是獲取員工工資,大部分時(shí)間要和函數(shù)CU_READ_RGDIR配合使用,這里不再贅述,由于用法比較簡(jiǎn)單可自行揣摩。值得注意的地方就是函數(shù)CU_READ_RGDIR函數(shù)返回結(jié)果中表項(xiàng)srtza的篩選和PYXX_READ_PAYROLL_RESULT返回表工資是放在payroll_result-inter-rt內(nèi)表中舉例:CALLFUNCTION'CU_READ_RGDIR'EXPORTINGpersnr =ipernrTOC\o"1-5"\h\zBUFFER =NO_AUTHORITY_CHECK =''IMPORTING 一MOLGA =TABLESin_rgdirEXCEPTIONSin_rgdirEXCEPTIONSno_record_foundOTHERSprgdir"pc261結(jié)果表loopatprgdirwhereFPPER=iperiodandSRTZA='A'andPAYTY=pseqnr=prgdir-SEQNR.endloop.CALLFUNCTION'PYXXREADPAYROLLRESULT'EXPORTING**************employeenumber = ipernrsequencenumber = pseqnrREAD_ONLY_BUFFER =''READ_ONLY_INTERNATIONAL =''ARC_GROUP =''check_read_authority = 'X'FILTER_CUMULATIONS = 'X'CLIENT =IMPORTINGVERSION_NUMBER_PAYVN =VERSION_NUMBER_PCL2 =CHANGINGpayroll_result =tpayresultEXCEPTIONSillegal_isocode_or_clusterid = 1error_generating_import = 2import_mismatch_error = 3subpool_dir_full = 4no_read_authority = 5no_record_found = 6versions_do_not_match = 7error_reading_archive = 8error_reading_relid = 9OTHERS - =10.4.其他PNP和PCH里的變量其實(shí)我們?cè)诳碢NP和PCH里程序是時(shí)常會(huì)看到些變量,這些變量是PNP和PCH里固有的變量,在程序里我們可以方便的拿來直接使用,他們大部分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論