Sie sind auf Seite 1von 47

PeopleSoft Approval

Framework
Srini

Approval Framework

Describing Approval Framework


Describing Approval Features
Implementing Approval Framework
Defining Supporting Objects
Setting Up the Transaction Registry
Configuring Transactions
Defining a Notification

Approval Framework
The PeopleSoft Approval Framework is a specialized
application used for defining and configuring approvals.
Approval Framework enables you to configure approval
processes using existing components without writing code.
Many PeopleSoft applications are delivered with
predefined approval processes.

Roles in AFE development and

Approvals Business Process Flow


Within the approvals business process flow:
Application developers register information with the Approval Framework.
Functional business analysts define the approval process definition for an
application transaction.
Requesters submit a transaction for approval.
This action launches the approval process. The Approval Framework reads
the approval process definition and queues the transaction for approvers.
The system queues an approval task to an approver or reviewer using
email notification, Worklist entry, or both.
The URL encoded in the Worklist entry points to the corresponding approval
component.
Approvers take actions on transactions. They can approve or deny
requests, monitor transaction statuses, and audit approvals

Activity : Testing Approval


Framework

Describing Approval Features


Using a combination of features, you can create rules for
different types of approvals.
Ad hoc path approval and Ad hoc review
Self-approval
Route to requester
Skip prior path and auto approval
Push Back
Alternate approvers/Deligation

Ad Hoc Approval Path

If Ad Hoc Approval Status Monitor is implemented for an


approval transaction, then during the approval process,
approvers can add other approvers or reviewers to the
current or a later stage of the approval process.
This action is called ad hoc approval, and it only applies to
the approval instance in which the addition occurs and does
not affect the underlying process definition used for other
requests.

Ad Hoc Review
Ad hoc reviewers are users that an approver or requester
would like to review a transaction. Ad hoc reviewers are
notified and provided with a link in a worklist entry or email to
the transaction, if the process is so configured. Ad hoc
reviewers do not approve or deny transactions, they can add
comments.

Self-Approval
A requester can also be an approver. If requesters approve
their own transactions, it's called self-approval. A check box
setting enables self-approval. If enabled, the requester's
approval is assumed, and the process continues. However,
you can establish criteria that helps control the requester's
approval authority. For example, you can place a limit on the
dollar amount for the requester so that if the transaction is
over that amount, the requester is not used as an approver.

Route-to-Requester
Route to requester is a feature that informs the system that an
approval should be sent to a requester. In some cases the
requester may already be listed in the approval path.

Skip Prior Path


When skip prior to requester is enabled, the system begins the
approval flow at whatever step in which the requester is an
acknowledged approver. For example, if a vice president
orders supplies for herself, the system skips application
approval steps leading up to the step for which the vice
president is an acknowledged approver.

Auto Approval
When auto approval is enabled, the system remembers an
approver's action for that process at the header- or line-level,
and applies the same action automatically for any subsequent
appearance in the Approval Framework routing. For example,
if the approver approves line one and the line appears again
as a required approval for the specific approver, the approval
is remembered for the line. This approval does not pertain to
any other line, but header approvals do imply line approval for
this feature.

Alternate Approvers

Alternate workflow approvers are users who are assigned to


receive emails and worklist notifications for the primary
approver when the primary approver is not available. When
you identify an alternate approver, you enter a date range
during which you want the alternate to fill in. The system
determines if the alternate is in place for the date range.
Approval Framework checks recursively to either create a
cycle or find a valid alternate. For example, assume
Approver A specifies Approver B as the alternate user ID
while Approver A is out of the office. Also assume that
Approver B happens to be out of the office at a time during
user A's absence, and B specifies Approver C as an
alternate user ID. In this case, the system sends workflow
routings originally intended for Approver A to Approver C

Push Back
Push back is an optional feature that can be implemented in
the Approval Monitor. If implemented, push back takes a
currently pending step out of pending status and requeues the
previous step to its approvers. The meaning of push back is
that the approver is questioning the prior step's approval and
is requesting clarification. Push back is only possible within a
path, therefore, the first step of a path cannot push back.

Approval Comments

Requesters can add comments to transactions, and


approvers can associate their comments with the approval
process rather than the request transaction directly. The
Approval Framework Monitor provides a mechanism
for associating comments with a particular approval process
instance, which is tied to a particular application
transaction. Approvers can view comments added by
another approver, but they cannot change previous
comments.

Delegation
The Delegation framework supports the
following types of delegation:

Downward delegation of authority to a direct report


or another person lower down in the reporting
hierarchy.

Upward delegation of authority to a manager or


another person higher up in the reporting hierarchy.

Lateral delegation of authority to a peer either


within the same division or in a different division
within the reporting hierarchy

Components Used for Approval


Framework

Approval Framework Components


Transaction Registry
The transaction registry stores all of the metadata that
describes the transaction setup to Approval Framework for a
specific process ID. When the transaction is submitted for
approval, the Launch Manager application class is used to
enter the transaction into the Approval Framework. The cross
reference record ties the specific transaction to the approvals.
Event Handler class PeopleCode specifies the events for the
transaction and the action to take. The Approval Manager
class determines whether or not the user entering the
approval component has any pending approvals to work.

Transaction Configuration
The transaction configuration stores information on all events
used by the process ID, including the approval components,
notifications, notification participants, and the notification
channel for each event. It also defines the view that will be
used in the Approval Status monitor to provide more
information about an approver or reviewer.

Approval Process Setup

The Approval Process Setup components defines the


criteria, stages, paths and steps used to approve a
transaction. Approvers are defined by user lists.

Steps Required to Set Up a New


Approval Process

Approval Process Setup


To implement the Approval Framework process, the framework
for building and interpreting workflow approvals brings
together these users:
Application Developers
Functional Business Analysts
End Users

Launching Approvals
Create the code to launch Approval Framework. The code must extend the
LaunchManager application class and at a minimum define a submit
button.
Application developers should instantiate this class as a component-scoped
variable. The best place to initialize this class is in the component postbuild event. This is an example to launch Approval Framework for
VoucherApproval.
import EOAW_CORE:*;
Component EOAW_CORE:LaunchManager &launchMgr;
If VOUCHER.VCHR_APPRVL_FLG = "W" Then
&vchrRecord = CreateRecord(Record.VCHR_AF_HDR_VW);
GetLevel0()
(1).GetRecord(Record.VOUCHER).CopyFieldsTo(&vchrRecord);
&launchMgr = create EOAW_CORE:LaunchManager("VoucherApproval",
&vchrRecord, %OperatorId);

Approval Component
The approval component will include the necessary push
buttons to approve or deny transactions, as well as any other
actions that can be taken.
Each transaction will have at least one page or component
where the user must go to in order to approve the transaction.
Possible actions to include are:
Approve
Deny
Push back
Resubmit
Reassign

Approval Cross Reference Table


Application developers must create a record containing
the applications keys, and include the Approval
Framework-supplied subrecord EOAW_XREF_SBR.

View of Users
The approval user info view is a view that is used to display
additional information about Approval Framework participants
in the Approval Status Monitor. l

View of Users
The approval user info view is a view that is used to display additional
information about Approval Framework Participants. When an individual
user is displayed as being a participant of an approval process in the
Approval Status Monitor, only his or her operator ID is displayed. By
defining an Approval User Info View, when a user selects the Operator ID of
a participant in the system, the Approval Framework will display the
additional information that you have defined in your view on the Approver
Information page.

For example:

SELECT A.oprid
, B.eoawbu

, B.phone_work

,B.email_addr

FROM psoprdefn A

, ps_ut_person B

WHERE A.oprid = B.oprid

Approval Event Handler Class


Each time an event occurs, the Approval Framework notifies
the application. For applications to receive the notifications,
application developers must extend the event handler class,
ApprovalEventHandler.
The Approval Framework is designed around a series of
specific, pre-defined events. Approval Framework then
leverages PeopleSoft Application Classes in order to allow
applications to extend its own processing.
This allows the adopting application to assign specific
pieces of PeopleCode to be fired during these events

Extending ApprovalEventHandler
Class

You will be required to create your own version of


ApprovalEventHandler class. When you extend the
superclass, make sure that your class only contains the
methods that you want to extend.
Within each method (which corresponds to a single event)
you can write whatever code you feel necessary to modify
the transaction.

import EOAW_CORE:*;
import EOAW_CORE:ENGINE:*;
class ApprovalHandler extends EOAW_CORE:ApprovalEventHandler
method ApprovalHandler();
method OnProcessLaunch(&appInst As EOAW_CORE:ENGINE:AppInst);
method OnHeaderApprove(&appinst As EOAW_CORE:ENGINE:AppInst);
method OnHeaderDeny(&userinst As EOAW_CORE:ENGINE:UserStepInst);
private
method updateProcessFlag(&status As string);
instance Record &vndrRecord;
Constant &APPROVED = "A";
Constant &DENIED = "D";
Constant &PENDING = "E";
end-class;

method ApprovalHandler
%Super = create EOAW_CORE:ApprovalEventHandler();
&vndrRecord = CreateRecord(Record.VNDR_AF_HDR_VW);
end-method;
The private method updateProcessFlag is used to update the vendor
status.
method updateProcessFlag
/+ &status as String +/
Local string &setid, &vndrID;
&setid = &vndrRecord.SETID.Value;
&vndrID = &vndrRecord.VENDOR_ID.Value;
SQLExec(SQL.AP_VNDR_AF_UPD_APPR_FLAG, &status, &setid, &vndrID);
end-method;

method OnProcessLaunch
/+ &appInst as EOAW_CORE:ENGINE:AppInst +/
/+ Extends/implements
EOAW_CORE:ApprovalEventHandler.OnProcessLaunch
+/
&appInst.thread.SetAppKeys(&vndrRecord);
%This.updateProcessFlag(&PENDING);
end-method;

method OnHeaderApprove
/+ &appinst as EOAW_CORE:ENGINE:AppInst +/
/+ Extends/implements EOAW_CORE:ApprovalEventHandler.OnHeaderApprove
+/
&appinst.thread.SetAppKeys(&vndrRecord);
%This.updateProcessFlag(&APPROVED);
end-method;
method OnHeaderDeny
/+ &userinst as EOAW_CORE:ENGINE:UserStepInst +/
/+ Extends/implements EOAW_CORE:ApprovalEventHandler.OnHeaderDeny
+/
&userinst.thread.SetAppKeys(&vndrRecord);
%This.updateProcessFlag(&DENIED);
end-method;

Setting Up the Transaction


Registry

Transaction Registry
The transaction definition is the metadata that describes the
transaction setup to the Approval Framework.
You must create a unique approval process ID for each
transaction and enter all the necessary transaction specific
information, including:
Notification options.
Approval event handler class.
Transaction approval levels.
Email notifications.
Ad hoc approver class logic.

Transaction Configuration

The Configure Transactions component is used to:


Select and define elements that determine what triggers a
notification.
Determine who receives a notification.
Define the content of the notification

Approval User Info View Provides details about which view a user sees when
using the Approval Monitor. Data in this view dictates what is displayed in the
approver links.
Ad Hoc User List :This is a filter used to display only a list of users who can be ad
hoc approvers.
Notifications Options:the Notification Options section appears when the Use
Email Approvals check box is selected for the Process ID on the Register
Transactions page.
User Utilities:User Utilities are the mechanism that the user changes to modify
the behavior of delegation and reassignment.
The UserUtilities class's main purpose is for delegation support. The default setting
points to EOAW_USER_UTILS:UserUtilities. This delivered default will allow the
Approval Framework to apply the delegation rules that are set up for each user in
PSOPRDEFN.
User Utilities Package
Select the parent application class through which alternate users are selected.
User Utilities Path
Select a path that uses a specific class within the root package.

Events
Notifications are mapped to work with the approval transaction
registry and include a path to the approval component as will as a
SQL definition if an email template is being used. The events for
which the system sends notifications include:
Launch of the approval process on a transaction.
Queue of approval step to an approver.
Queue of a review step to a reviewer.
Denial of a line or header.
Approval of a line or header.
Completion of the approval process.

Trigger Workflow Notification


Notifications are triggered by event. The events section defines the
information to build the default URL to include in notification for each
of the participants that you specify in the Notifications section.
For each of these events to be notified, you must select the level of
the transaction.
Header
Line
Select the event for which you want to send a notification. The
approver is always notified of an event. The Oracle University and Jolt
Technologies Pvt Ltd use only
requester and the system administrator is notified when an error
occurs

Menu Name/Approval Component


Select the menu name that contains the component you want the notification
recipient to link to. This identifies where the person should go upon notification.
If you do not enter values, the recipient is sent to the same menu and
component that is defined for the Worklist Approval component.
Approval Component
Select the component you want to make available to the notification recipient.
Page Name
The page defined is the page approvers are redirected to from the URL sent
within the email notification.
Menu Action
This is the action of the page users see when directed to the page from the URL
sent within the email notification
SQL Identifier
Select the SQL definition identifier you want to use to get content for the email.
The SQL must accept bind inputs equal to the number of keys at the notification
level. For example, header or line keys.

Describing User Lists

User Lists define user sources for use with steps in the approval
process. Users List source type can be:
Role
SQL
Query
Application Class

User Lists

Role
Select to use a role as the source for this user list. A role is a list of users who perform the
same type of work, such as buyers or managers. Each role has a set of parameters that
determine the limits of the role in the organization and in the workflow process.
SQL Definition (structured query language definition)
Select to use an SQL definition as the source for this user list. The SQL must return OPRID
field.
Query
Select to use a query as the source for this user list. When a source is defined as a query, the
system determines who should receive a work item based on the field values on the page that
triggers the routing.
Application Class
Select to use an application class as the source for this user list.
When you select an application class, the system passes the originator of the transaction and
then determines the approver for that originator. For subsequent approval steps, the system
passes the approver from the previous step.
Include Users as Input
Select to indicate that the system uses the originator of a transaction as the first step in each
path. For subsequent steps in each path, the system uses the approver from the previous step.
This field is not available when the User List Source is User List

Das könnte Ihnen auch gefallen