Skip to Content
Author's profile photo Prachi Yalgude

Purchasing Document Approval Process with Manual Approver Selection Development

Business Overview

Our PSU Client one of the largest supplier to the Indians Rail Network, one major challenge was they have very complex authorization based on the Category’s annual limits  given to the approves.

Business Requirement

A typical case will have a PR, PO and Contract with Original Value In System which will have a release code of the Approving Authorities of the Company. Now, Client requirement was to have below facility’s in Approval flow

  1. 1. When a PR/PO/Contract is created or changed and release strategy is applicable on it then system will determine the release code as per release strategy but user should be able to select exact approver name from list of possible approvers.
  2. 2. Approvers have an annual ceiling amount for various material groups. Hence when buyer is creating PO/contractor and selects approver then error message should appear if the limit is exceeded. Check is to be put at the time while approver is approving the PO/contract as well.
  3. 3. A delegation tool to be developed so that when an approver is going on leave then he can maintain his substitute and the work item is diverted to the substitute for approval.


Allow buyer/requestor to select approver from approver list for PR/PO/Contract release strategy:

  • Added field at Customer Tab that will get data from release strategy tab and allow buyer to enter approver name/id from a look up window
  • F4 Dropdown list given to Restrict User to enter user id manually
  • Approver id made mandatory field so that user is not allowed to submit PR/PO/Contract without selecting approvers.
  • This list of approver having required release code should be fetched from custom Ztable.

Annual Ceiling check:

  • We have Maintain custom Z table as follows-
    • Enter User ID
    • Populate User Name field automatically based on User ID
    • Enter Material Group
    • Enter Annual Ceiling Limit as per SOP document
    • Enter Limit Availed (0 at the start of FY)
    • Calculate Limit Available as per below formula
    • Limit Available = Annual Ceiling Amount – Limit Availed
  • When a buyer/requestor is creating a PO/contract then at the time when buyer/requestor clicks on save then system should check if the annual ceiling amount is exceeded for final the selected approvers. To check the ceiling amount compare total value of PO/contract with Available Limit mentioned in custom table. If the ceiling amount exceeds for final the approver then display error message – “Annual ceiling amount exceeded for approver <Approver id>” and do not allow user to save the PO
  • When an approver approves the PO/contract, add the total amount of PO/contract to Limit Availed amount Update Limit Available as per formula. . If Limit Availed exceeds Annual Ceiling Amount then display error message – “Annual Ceiling Amount exceeded” and do not allow him to save PO. In this case approver is supposed to reject the PO/contract to complete the workflow
  • When a PO/contract line item is deleted or if its value is reduced then the same needs to be updated in the custom table as well. In case of value increase
  • In case of PO/contract change if value is increased then release strategy will be triggered again. While approver is approving such a PO then only delta amount needs to be updated in custom table. Also check if it is exceeding the annual ceiling amount and display the error message

Substitute Functionality:

  • Create a custom program to allow user to maintain his/her substitute for a limited period of time and the entry should be saved in custom table for substitute. Selected substitute should be of equal designation or higher.
  • If the entry is already maintained then allow user to change the existing entry
  • User should be allowed to maintain substitute for himself only
  • When a PR/PO/Contract release WI is triggered to an approver, system should check if there is a valid substitute maintained for the approver for the specified duration. If a substitute is maintained then route the WI to the substitute instead of original approver. Email notification for PR/PO/contract approval should also be routed to the substitute keeping original substitute in cc.

Customer Exit for PO Release

For meeting this requirement, we found a Customer exit .

01 For meeting this requirement, we found a Customer exit.png

Customer Exit Implementation

BADI Details


Snapshot of PO Process ME21N

  • Custom Tab Added

02 Custom Tab Added ME21N.png

  • Release Strategy Tab on Screen

03 Release Strategy Tab on Screen.png

  • User ID Mandatory Error

04 User ID Mandatory Error.png

  • F4 Approver Selection Screen

06 F4 Approver Selection Screen.png

05 F4 Approver Selection Screen  2.png

  • Celling Amount Check Error

07 User ID Mandatory Error.png

  • ME29N Custom tab View

08 ME29N Custom tab View.png

Snapshot of Contract Process ME31K

  • Custom Field Added

09 Custom Field Added.png

  • Release Strategy Tab on Screen

10 Release Strategy Tab on Screen.png

  • User ID Mandatory Error

11 User ID Mandatory Error.png

  • F4 Approver Selection Screen

12  F4 Approver Selection Screen.png

  • Approver Data in Custom tab

13 Approver Data in Custom tab.png

Snapshot of PR Process ME51N

  • Custom Field Added

14 Custom Field Added.png

  • Release Strategy Tab on Screen

15 Release Strategy Tab on Screen.png

  • User ID Mandatory Error

16 User ID Mandatory Error.png

17 User ID Mandatory Error 2.png

  • F4 Approver Selection Screen

18 F4 Approver Selection Screen.png

  • Display PR ME53N

19 Display PR ME53N.png

  • ME54N Custom tab View

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Helpful !!

      Author's profile photo Former Member
      Former Member


      Author's profile photo Mahesh Naik
      Mahesh Naik

      Nice doc,

      Author's profile photo chitralekha Veluru
      chitralekha Veluru

      Useful document