Skip to Content

Configurations for enabling Multiple approvers for Leave Request

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:–hr-renewal


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.

You must be Logged on to comment or reply to a post.
  • Great blog, thanks for the info!

    Two things I stumbled on:

    - It's important to set sequencer number in the extract structure

    - SAP delivers a new workflow template WS33700137 which regards the multiple approvers stored in the new DDIC table PTREQ_APPROVER

    • Hi Peter,

      We are implementing Multiple Approver. What do you mean by Set Sequence Number in the extract strucutre? And also the workflow template WS33700137, does it need to be defined as follows:

      Configuration - Specify Processing Processes for Type of Leave -> Define Absences/Processing Processes:

      WF ID of New Request

      WF ID of Cancellation Request

      WF ID of Change Request



  • Hi Sagar,

    I have implemented the above BADI for multiple approvers but when we execute the RPTARQEMAIL it is sending the email's to all apporvers at the same time can we control this based on the status.

    • I came accross method get_admins in the badi pt_gen_Req which is called in the RPTARQEMAI . But i am not sure if it would be of help to you as you have to restrict the mails to managers based on status. Better to raise ticket and get it checked..

    • If you need to send Emails to approvers, you can also schedule extended notifications for workflow. So only the approvers who have pending work item in UWL will receive Emails.

      Then you need not schedule RPTARQEMAIL.

  • Hi Sagar,

    I tried your suggestion above, and for some reason I'm still not able to see field for second processor.

    Could you help me out with this please.

  • Hi Sagar,

    Thanks for your valuable document. We are trying to implement this :

    I have a doubt.

    In the features of the Business function HCM_TIM_WDA_1, it is saying "You can define the default approvers for all levels or allow employees to input the approvers".

    Can you please guide how and where we can define it. Also if the approver is based on OM reporting structure, how can we map here.