Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
Showing results for 
Search instead for 
Did you mean: 
Active Participant

HR renewal 1.0 feature pack 3 offers some good enhancements in ESS/MSS area. Following blog gives good overview of the enhancements in this feature pack:



One of the enhancements to leave request functionality is to allow multiple levels of approvals for a leave request. That means a leave request can go through multiple levels of approval depending on the type of leave. The administrator can configure the default approver at each level or allow employee to input the approvers while creating leave request. This document will give an insight into the configurations that are needed for enabling this.


How it looks on Leave Request Application?

Once the multiple approvers are enabled for a leave type users would see multiple processors on the leave request application (see the screenshot). It is  possible to allow users to add/remove processors, or change the sequence of processors. Also the administrator can configure so that system defaults the approvers. 


Once the leave request is submitted it flows to the approvers in the sequence one by one.


At the core of configuring multiple approvers is the existing BAdI PT_ABS_REQ. The IMG path to the BAdI is as follows:

Personnel Management -> Employee Self Service(WDA) ->Service Specific Settings -> Working Time -> Leave Request ->BAdI: Controll Processing of Leave Requests


Three methods are now available in the BAdI interface that enables multiple approvers in leave request.


  1. GET_MULTIPLE_APPROVERS – This method provides names of approvers to the leave request application. The leave type is available in the importing parameter IM_SUBTYPE on which you can base the decisions. In order to have multiple approvers for a leave type follow these coding steps:
    1. First set the number of approval levels in parameter EV_APPROVER_LEVEL. For example EV_APPROVER_LEVEL = 2 for two level
    2. Then fill the table ET_APPROVER_LEVEL with list of approvers(Name, pernr, sequence number etc). For example – Standard function modules could be used to get line manager, HRBP etc. Importing parameter IM_OBJID contains the pernr under process.
    3. Set the parameter EV_NO_IMPLEMENTATION flag to ‘ ’ for multiple approval levels. If the parameter is set to ‘X’ then it indicates single approval level.
    4. Set the flag EV_ESS_ADD_DELE_APPROVER_FLAG to ‘X’ if you want add/remove approver buttons on the screen. Note that for users to add/remove approver, you should have configured the layout of application appropriately in "Processing Processes for Types of Leave" customizing activity.


2. CHECK_DUPLICATED_APPROVERS – This method can be implemented if you would like to check if duplicate approvers have been entered by the user in the leave request application. In case duplicates are found set the flag EV_HAS_DUPLICATION to ‘X’. The method is called when leave request is submitted or checked for  correctness by the user.


3. UPDATE_MULTIPLE_APPROVERS  - This method can be used to store the names of the approvers of the sent leave request in a custom database table. The table can be read in GET_MULTIPLE_APPROVERS method to fill the list of approvers. The method is called when leave request is submitted by the user.

Further Reading

This functionality is available with HR renewal 1.0 Feature Pack 3. The name of business function is HCM_TIM_WDA_1. Go through below links for prerequisites and documentation of business function. Also it would be helpful to read the documentation of BAdI PT_ABS_REQ.