Understanding Approval Processes

Approval processes are a common form of business process. The approval steps that you place on the approval rule set map represent the approval levels that are required for the activity.

A typical approval process incorporates many business rules, for example:

  • Employees can approve purchases up to a given amount, based on their level in the organization: supervisors can approve up to 500 USD, managers up to 5000 USD, and so on.

  • All product improvement requests are approved by both a manufacturing representative and a safety inspector.

  • People can approve items for their own departments only.

  • If an item requires a vice president’s approval, bypass the usual step of manager approval.

Business rules like these are usually incorporated into Workflow PeopleCode programs. Logical statements in the PeopleCode check the data on the page, such as the page where employees enter purchase requests, to determine whether the conditions are right for entering a work item into the workflow.

With approval rule sets, you define approval rules on a graphical map.

Features That Are Common to Virtual Approver and GetApprovers

Virtual Approver and GetApprovers PeopleCode share the following advantages:

  • You can determine the appropriate approver for each approval step.

  • You define and configure approval rules using the same PeopleSoft Application Designer interface that you use to develop all business process maps.

  • You can define different approval rules for different business processes and multiple sets of rules for the same process.

  • You can build multistep approval processes, with steps occurring sequentially or in parallel.

  • You access the approval rule set through built-in PeopleCode functions.

    Virtual Approver uses the functions Virtual_Approver and Virtual_Router. GetApprovers is a PeopleCode function. In both cases, the functions use the approval rule set to determine whether approvals are needed and who the appropriate approvers are. To change a rule, you change the approval rule set rather than the PeopleCode.

  • Users enter transactions by entering data onto a PeopleSoft application page.

    When they save a page, Virtual Approver or GetApprovers checks the approval rules that you’ve defined to determine the necessary approvals.

Differences Between Virtual Approver and GetApprovers

Virtual Approver and GetApprovers PeopleCode differ in significant ways. Use the information in the following table to decide which is appropriate in a given situation:

Virtual Approver

GetApprovers

The system determines the next approver (if any) at each step along the way.

The entire approval chain is determined at the beginning.

Because Virtual Approver processes only one approval step at a time, the system always has the latest data about any substitute approvers, for example, when someone goes on vacation or leaves the organization.

Because the entire approval chain is determined at the beginning of the process, you capture the approval chain at a single point in time. If an approver goes on vacation and schedules a substitute approver, GetApprovers isn’t aware of this.

Because the system determines the next approver (if any) at each step along the way, you can’t show users all of the approvals that are required for a transaction.

Because the entire approval chain is determined at the beginning, you can expose that data on a page that users can see.

Virtual Approver, with Virtual Router, generates workflow routings to approvers.

GetApprovers does not notify approvers. After it provides the list of approvers, you must build a custom approval application. Typically, you store the list of approvers as part of the transaction (usually in a child table), so that the entire approval chain can be viewed. Additional development is necessary to define how approvals occur.

Virtual Approver automatically displays a message to a user who enters a transaction that requires approval. The user can submit the transaction for approval or cancel the transaction.

By itself, GetApprovers does not provide information to the user. You must provide messages.

Note: Because GetApprovers returns only a list of approvers, it can be used with Virtual Approver without disrupting normal Virtual Approver functionality. You might use GetApprovers and Virtual Approver together to add forecasting capability to Virtual Approver.