How to Add a New Personnel Development Profile to PPPM Applies to: SAP ECC 6.0 and above. For more information, visit the Enterprise Resource Planning homepage. Summary There are some personnel development profiles (Qualifications, Requirements, Development Plans, etc.) provided by SAP. However, there may arise situations where new ones has to be created. This article gives you a step-by-step guideline for developing and configuring a brand new personnel development profile and insert into PPPM t-code. Author: Dilek ADAK Company: MilSOFT ICT Created on: 19 March 2011 Author Bio Dilek has been graduated from Bilkent University (Ankara, Turkey) Computer Engineering department in 2003. She started working while she was still an undergraduate student. Her first workplace was Aselsan (Ankara, Turkey) where she has worked for 5 years. There she has dealt with HR (Personnel Administration, Organizational Management, Payroll, Training and Event Management, HR-ABAP) and BI modules as well as ABAP development. In May, 2008 she switched to Milsoft ICT (Ankara, Turkey) as an SAP consultant where her main interest area is again HCM modules including Personnel Administration, Personnel Development, Organizational Management, Objective Setting and Appraisals, Training and Event Management and Payroll. She is also dealing with BI and Portal configuration. She is still working in MilSOFT ICT. 2011 SAP AG 1
Table of Contents Steps for Creating PD Profiles from Scratch... 3 Initial Configuration Steps... 5 ABAP development... 11 Final Configuration Steps... 26 Related Content... 30 Disclaimer and Liability Notice... 31 2011 SAP AG 2
Steps for Creating PD Profiles from Scratch In one of my clients, there arose a need to hold a qualification development plan. In this plan, business people needed to assign qualifications with proficiency levels to employees with a time period and status (initially as Planned ). At the end of the time period, if the employee could gain the qualification, status is updated as Completed Successfully. In the opposite case, status would be Completed Unsuccessfully. Thus, the requirement was to have a personnel development subprofile (tab) in PPPM transaction which is a combination of Qualification and Individual Development profiles. In summary; I copied the screen of qualifications subprofile but referred to the screen of individual development profile on how to add status to the screen. The steps I carried out included both ABAP development and configuration. These steps are explained as follows: PPPM Qualifications Subprofile Qualification Proficiency Start/End Dates 2011 SAP AG 3
PPPM Individual Development Subprofile State 2011 SAP AG 4
Initial Configuration Steps In order to hold the relationship between the person and qualification named Qualification Development Plan, create a new relationship as follows : 2011 SAP AG 5
2011 SAP AG 6
Then go to table T77S0 via SM30 and insert the following line : PPREL ZOWNS A099 Qualification dev plan 2011 SAP AG 7
Then go and check the function group and screen number for qualification subprofile which is to be copied and updated- 2011 SAP AG 8
Note down the report name and screen number for Qualifications subprofile. 2011 SAP AG 9
Note down the report name and screen number for Individual Development subprofile. 2011 SAP AG 10
ABAP development In order to add the status column as it resides in Individual Development subprofile, check the function group screen names which are noted above : That is : Function Group RHPQ_SHOW Screen number 3300: 2011 SAP AG 11
Go to transaction SE80 and copy function group RHPP - which is noted in the previous steps - as ZRHPP. Note: Function group name refers to the characters XXXX following SAPLXXXX in report name. 2011 SAP AG 12
Go to the screen 2101 Layout, and add State field with the name DYNP_RHPQ_TAB-STATE_ID as it resides in Function Group RHPQ_SHOW Screen number 3300. 2011 SAP AG 13
For screen 2101, MODULE NNNN_READ_PARAMETERS. - PERFORM read_t77s0_parameters_for_pe. Insert the following line (which refers to the T77S0 entry for newly created relationship A099) : $zowns LIKE plog-subty, "A099 2011 SAP AG 14
MODULE NNNN_READ_PARAMETERS. - PERFORM read_t77s0_parameters_for_pe. Insert the following lines: PERFORM re77s0(mstt77s0) USING 'PPREL' 'ZOWNS' $zowns subrc. (Reads the relationship value for PPREL ZOWNS entry in T77S0. -> A099) PERFORM $transform_relat(sapfh5an) USING $zowns $ownsb. "A099 qual dev (Finds the opposite relationship and saves into $ownsb - If $zowns is in format AXXX, then B099 -) 2011 SAP AG 15
MODULE NNNN_READ_PARAMETERS. - PERFORM read_t77s0_parameters_for_pe. Change all SAPLRHPP as SAPLZRHPP. 2011 SAP AG 16
MODULE 2100_input_ctrl OUTPUT. Insert the following lines: IF sy-dynnr = '2101'. DYNP_RHPQ_TAB-state_id = qual_act-data-state_id. * DYNP_RHPQ_TAB-state_id = hrpe_profq-state_id. ENDIF. (In the original screen&function group (SAPLRHPP-2101) there was no State field. That s why this line of code is added to hold state value in dynpro variable.) 2011 SAP AG 17
MODULE 2100_MOVE_CTRL_BACK. Insert the following lines: IF sy-dynnr = '2101'. qual_act-data-state_id = dynp_rhpq_tab-state_id. hrpe_profq-state_id = dynp_rhpq_tab-state_id. hrpe_profqb-state_id = dynp_rhpq_tab-state_id. ENDIF. (This is to hold state field s value.) 2011 SAP AG 18
PERFORM check_validity_time_interval(saplrhpp) USING qual_act-data-plvar qual_act-data-tbjid qual_act-data-ttext qual_act-data-vbegd 'X' "with message qual_act-data-vendd g_validity. (SAPLRHPP is inserted in brackets since relevant form is used from this function group) 2011 SAP AG 19
MODULE 2100_user_command INPUT. Insert the following lines: DATA : lit_1001 TYPE hrp1001 OCCURS 0 WITH HEADER LINE, lit_qual_act LIKE qual_act OCCURS 0 WITH HEADER LINE. 2011 SAP AG 20
MODULE 2100_user_command INPUT Change all $ownsa to $zowns. 2011 SAP AG 21
MODULE 2100_user_command INPUT Insert the following lines: REFRESH lit_qual_act. lit_qual_act[] = qual_act[]. 2011 SAP AG 22
MODULE 2100_user_command INPUT : (HRPAD77 is the table that holds values for states of development plans. States for qualification development plans are to be hold in the same table also.) Insert the following lines: CALL FUNCTION 'RH_UPDATE_DATABASE' EXPORTING vtask = 'D' * BUFFER_UPD = ' ' * ORDER_FLG = 'X' commit_flg = 'X' * CLEAR_BUFFER = 'X' EXCEPTIONS corr_exit = 0 OTHERS = 0. ********************************************************************** LOOP AT lit_qual_act. IF lit_qual_act-action = c_dis OR lit_qual_act-action = c_spe. CONTINUE. ENDIF. SELECT * FROM hrp1001 WHERE otype EQ qual_act-data-otype AND objid EQ lit_qual_act-data-sobid AND sobid EQ lit_qual_act-data-tbjid AND sclas EQ lit_qual_act-data-ttype AND begda EQ lit_qual_act-data-vbegd AND endda EQ lit_qual_act-data-vendd. hrpad77-adatanr = hrp1001-adatanr. hrpad77-state_id = lit_qual_act-data-state_id. IF lit_qual_act-action = c_del. DELETE FROM hrpad77 WHERE adatanr = hrp1001-adatanr. ELSEIF lit_qual_act-action = c_mod OR lit_qual_act-action = c_new. MODIFY hrpad77. ENDIF. * ENDLOOP. ENDSELECT. ENDLOOP. ********************************************************************** (To gather all the state information from the screen and write to the relevant database table.) 2011 SAP AG 23
2011 SAP AG 24
MODULE 2100_user_command INPUT : Change $ownsa to $zowns. 2011 SAP AG 25
Final Configuration Steps All the development is done for the new subprofile. Now it is time to define it as a tab in PPPM. 2011 SAP AG 26
Insert the following line referring to ZRHPP function module and 2101 screen number. You can use an icon if you want. 2011 SAP AG 27
Assign it as a subprofile to P - Person object type 2011 SAP AG 28
And finally you have your brand new tab in PPPM. Enjoy it! 2011 SAP AG 29
Related Content For more information, visit the Enterprise Resource Planning homepage 2011 SAP AG 30
Disclaimer and Liability Notice This document may discuss sample coding or other information that does not include SAP official interfaces and therefore is not supported by SAP. Changes made based on this information are not supported and can be overwritten during an upgrade. SAP will not be held liable for any damages caused by using or misusing the information, code or methods suggested in this document, and anyone using these methods does so at his/her own risk. SAP offers no guarantees and assumes no responsibility or liability of any type with respect to the content of this technical article or code sample, including any liability resulting from incompatibility between the content within this document and the materials and services offered by SAP. You agree that you will not hold, or seek to hold, SAP responsible or liable with respect to the content of this document. 2011 SAP AG 31