Invoice Approval Workflow
Invoice Approval Workflow
Jeannie Dobney
EduSource
Introduction
Oracle has introduced a new Workflow in later releases of 11i which allows the automation of invoice approval processing in Payables.
This paper provides a high level overview of that Workflow, focussing on the business benefits and effort required to implement the workflow.
Overview of Functionality
The Invoice Approval Workflow automates your invoice approval process. Based on rules you define (using the Approvals Management Application), the workflow determines if an invoice needs approval, who the appropriate approvers are, and in what order approvers should approve payment of the invoice. The workflow then sequentially asks each approver in the approval list to approve invoices online. For example, you can define a rule so invoices over $100,000 require CFO approval and then CEO approval. If you use Invoice Approval Workflow, then every invoice that requires approval must be approved before you can pay it. Payables indicates that an invoice requires approval by setting the value in the Approval status field in the Invoices window to Required. When you use this feature, all invoices require approval, with the following exceptions. Payables sets the Approval status of the following invoices to Not Required: Expense Reports imported through the Payables Expense Report Import Program (because these expense reports have already been through an approval process) Recurring Invoices if the recurring invoice template did not have the Approval Workflow Required option enabled (because recurring invoices are often approved in advance) Invoices that existed before you enabled the feature Invoices that the Invoice Approval Workflow process determined did not require approval according to the rules you set up in Oracle Approvals Management. You can set up your system to request and receive approval through the approvers email, through the approvers Oracle Workflow Notifications Workflow web page, or both. You can review the approval status of an invoice that has started the Invoice Approval Workflow in the following ways: Invoice Approval History window. Invoice Approval Status Report.
Business Background
This new workflow has been introduced at an optimal time, in the wake of Enron and other corporate scandals, when many organisations are reviewing their organisational controls. Here are two common Applications scenarios into which this new workflow might be used:
approvals, sites typically forward the actual invoices (in hard copy) to the relevant Cost Centre manager who reviews and signs them before the system data entry is done. This paperwork is then retained for audit purposes.
Demonstrably objective application of approval rules (i.e. automated). Audit documentation stored in soft copy. Automatic redirection available if first approver is unavailable.
Implementation Overview
So assuming that you have decided to implement the Invoice Approval Workflow, whats involved? Quite a lot as it turns out! Heres an overview. Later in the paper well look at each step in turn. Document the business logic that you want the process to reflect. Check your patching levels this functionality depends heavily on the correct patches having been applied. Enable the invoice approval workflow functionality in Payables. Install and set up Oracle Approvals Management. This application is used to create the approval rules used by the workflow process. Review the Workflow and modify it if required. Test the process. It will become obvious as we look at each of these steps, that the skills and implementation resources required should not be underestimated.
Note that in 11i, Oracles approach to patching has changed and your organisation probably needs to consider this. Patching to near current levels is now recommended. (See Alicia Hoekstras excellent paper cited in the References section for an excellent coverage of this important topic.)
3. Payables Set-Up
The set-up required in Payables is fairly straightforward. In the Invoice tab of the Payables Options window, check the Use Invoice Approval Workflow checkbox (see following image). In the same window, there are also some other settings you may like to consider: Allow Force Approval. Select this checkbox if you want to enable selected AP staff to override the workflow and manually approve invoices by using the Force Approval option in the Invoice Actions window. This might be required if the Invoice Approval Workflow does not complete for an invoice that you do wish to pay. Require Validation Before Approval. If you enable this option, then Invoice Approval Workflow does not select any invoice for processing unless the invoice status is Validated. You might enable this option if you want the Invoice Validation process to create tax distributions for an invoice before approvers review it. After your workflow is set-up and tested you will also have to submit the Invoice Approval Workflow Program (from standard report submission). Consider resubmission options that fit with the schedule of your validation program options.
Page 3
Note that the documentation variously lists the Oracle acronym for Oracle Approvals Management application as either AME or OAM (presumably the conflict with the Application Management tool is the reason for this ambivalence). This paper will use the acronym OAM to signify the Oracle Approvals Management application. Understanding OAM is a non-trivial task and should not be underestimated in your planning. That will probably become obvious as we step through the screens in the following section. OAM is a web Applications which can be accessed from 3 default responsibilities. To set up the approvals required for the Invoice Approval Workflow you should be assigned, and select, the responsibility AME Application Administrator. (If you are unable to access OAM, check the value of the profile option AME: Installed at site level. It should be set to Yes. You may also need to modify the securing attributes when you are assigned the responsibility.) The following screen shows the OAM access screen. Note that users who do not access the Applications from a Personal Home Page will see a navigator with a single menu entry Approvals. Either way the window which opens as a result of clicking on the Approvals item are the same HTML pages.
After selecting Approvals above (or in the Navigator), the following screen is displayed:
Each tab displayed in the image shown above relates to a task which will be required to set up the Invoice Approvals. As we work through these screens, lets assume that the business logic which we have documented in step 1 above, requires all invoices with a value of more than $100, to be approved by the manager of the requester. An attribute (tab shown above) is a business variable with a specific value for a given type of transaction. When you select the Attributes tab, the system therefore first prompts the user to specify which Transaction Type is required.
Page 5
Each application that can use OAM defines one or more transaction types. Each transaction type has its own set of approval rules. You will be prompted for a Transaction Type in a number of OAM screens but this will not be shown again in this paper. In each case, you should select Payables Invoice Approval as shown above. By setting the values of the attributes displayed for this Transaction Type, you control the behaviour (or logic) of the invoice approval process. In the following screen shot, you can see some of the mandatory attributes for the Invoice Approvals process. The OAM User Manual provides details about the function of each of these attributes, to assist you in setting each value appropriately for your sites business needs. For example in the following screen shot, the second attribute is: ALLOW_REQUESTOR_APPROVAL This is a Boolean attribute (i.e. either True or False) whose value determines whether OAM lets a requestor approve their own transaction, (if the requestor has sufficient signing authority). The attributes value (or static usage in OAM jargon), can be set as follows: 1. Click the name of the attribute that you want to edit. 2. Make your changes on the Edit an Attribute page (e.g. by typing the value true). 3. Click the Submit Changes button to save your changes. Note that the description here of the required set up is highly simplified and used only to indicate the process flow. You will need to study the OAM User Guide before proceeding.
Shown below is another screen shot showing a second attribute, this one has a dynamic usage i.e. its value is determined at run time by the SQL query shown in the Usage field. In addition to thoroughly reading the OAM manual in order to understand which attributes are used by the Invoice Approval process and how to set them, it is probably also advisable to run queries like that shown below through TOAD or SQL*Plus in order to validate they will give you the results you expect. Functional users who are not familiar with the use of tools like TOAD and the Examine function within the Apps, will need to collaborate with a technical resource on this. At the time of writing this paper, there were a number of open TARs relating to OAM. It is inevitable that with any new functionality there will be issues which have to be resolved as the product matures. Do not, however, underestimate the time which will have to be factored in to your implementation of Invoice Approval functionality due to the combination of a relatively complex set-up with unresolved (and perhaps not yet fully revealed) product issues.
Page 7
The next tab is the Conditions tab. An approval rules if part consists of one or more conditions, each of which is either true or false. For the rule to apply to a transaction, all of its conditions must be true for the transaction. For our example the syntax for the required condition would look something like this the : TRANSACTION_AMOUNT > 100 NZD It is also possible to have conditions which use list operators or simple Boolean tests. You may also have multiple conditions, allowing complex rules, for example so that high value invoices are routed to senior executives, but that invoices for specific categories of goods (like IT purchases) are also routed to specific managers.
The following sequence of screens shows the process of creating a condition which will identify amounts less than $1.000 USD. First specify that this will be an ordinary condition, i.e. this condition will be used at the invoice header level to identify the usual conditions under which the rule we are creating should apply. (Exception conditions are used specifically to create Exception rules. Listmodification conditions are used to substitute an approver in a list-modification rule. Line level conditions identify variables in detail lines of a transaction.)
Next specify the business variable which should be evaluated as shown in the following image:
Then enter the value(s) within which the variable must fall for the rule to apply:
and then click the Create Condition button to add this condition to the list shown previously.
Page 9
The Approvals tab (following image) enables you to instruct OAM to include a given set of approvers in a transactions approver list. Approvals constitute the then part of approval rules. In our example business process, the supervisor of the requestor of the goods or services represented by the invoice is to be asked to approve the invoice. The appropriate Approval Type in this case is Relative Job Level with a parameter of 1 to indicate that only the immediate supervisor should be required to approve the invoice.
Notes:
At the time of writing this paper, an enhancement request (Bug 3197499) had been logged to allow the use of the Position Hierarchy often used with PO approvals to also be used for Invoice Approvals. (See also Bug references 2433615 and 3011106). The fix was due in 2003 however, the MetaLink documentation does not make it clear if it has been delivered.
By default, the hierarchy ascent starts with the supervisor of the transactions requestor, identified by the attribute: TRANSACTION_REQUESTOR_PERSON_ID. It is, however, possible to amend this so that the ascent start is based on some other system data such as a project or descriptive flexfield value. Such changes however require PL/SQL skills as well as further information from the OAM manual. In addition to the seeded Approval Types, it is possible to create new Approval Types using PL/SQL procedures (called handlers by OAM). To create a new Approval Type, click the Add Approval button shown in the next slide.
Approval groups are optional and typically represent functional approvers outside a transactions chain of authority, such as an HR manager or specialist procurement advisor, who must approve a transaction before or after line management has done so. When you create an approval group, OAM automatically creates the corresponding approvals of the pre and postapproval approval types. These approvals are then also available to all transaction types. The tab used to create these additional approval groups is shown below. Note that someone in your team will need a good working knowledge of the underlying data-structures to write the required SQL Query .
Rules associate one or more conditions with an approval in an ifthen statement. Before you can create rules, you must create conditions for the rules to use (as previously described). So in this step we are actually tying together the logic components we have previously configured. Our example rule should be like the following statement when it is finished: If TRANSACTION_AMOUNT > 100 NZD
Page 11
There are a number of steps in creating the Rule, as shown in the screen shots on the following pages.
For our simple business scenario, the following would be required: Enter an Approval Description (this description should uniquely identify the rule and communicate the business case to which the rule applies.). In this example it would be: require approvals up to the first superior Select the appropriate Rule Type, in this example that would be List Creation Rule (because this Rule identifies the list of required approvers). Allow the Start Date to default to todays date (except for final validation in Production as described in the OAM User Guide). Click Continue (in the screen shown above) to move to step 2.
Page 13
In the screen shown above, select the third list item Chains of Authority based on relative job level. (Note that it is this that tells the workflow which of the approval types will be used by this rule). Click Continue In the next screen (not shown here), allow the constraint type which restricts the rules application, to default to none. This means the rule applies to all organizations, business groups and sets of books. Select the Ordinary Condition attribute TRANSACTION_AMOUNT Select the Ordinary Condition TRANSACTION_AMOUNT > 100 NZD No exception conditions are required, so simply click Continue and OAM saves the new rule and displays it on the rules list. You have completed your first simple rule! The set up in OAM is now complete. The next step is to review and possibly modify the actual Workflow.
Once you are logged into the database, you will be able to select the Invoice Approval Workflow process (in the right pane shown in the next image) and load it into the Builder by clicking on the arrow button in the centre of the dialog box.
Page 15
Note that the workflow may also be named AP Invoice Approval in your database. Note also that this process of opening the database store and loading the workflow process into the Builder can be a little slow and you may need to be patient. The image on the following page shows the Invoice Approval displayed in the Workflow Builder.
The left pane in the image above represents all the components of the workflow hierarchically. Right of centre is a graphical display of the main process. Each coloured icon represents a step in the process.
Note that understanding and modifying Workflow processes is a significant topic in its own right and is only touched on here to indicate the scope of the process of implementing the Invoice Approval workflow. The default process shown above can be edited to fit your sites requirements as required. The following discussion outlines the default processing and possible modifications. Node 1: Receive Invoice Approval This activity selects invoices. An invoice must meet all of the following criteria to be processed: If the Require Validation Before Approval Payables option is enabled, then the invoice must be validated. The Approval field value in the Invoices window must be: Required if you submit the workflow program from the Submit Requests window. Anything except Initiated or Manually Approved, if you submit the workflow program from the Invoice Actions window. The invoice amount must equal the distribution total. The Ready for Approval check box in the Invoices window must be enabled. This check box is enabled by default for all invoices. Node 2: Check if Matched to PO This activity is disabled by default because a constant value of No is seeded for the Exclude PO Matched Invoices attribute in workflow (as shown in the following image). When this activity is enabled, if all distributions on the invoice are purchase order matched, then this activity sets the Invoice Approval status to Not Required. The process then exits. If all distributions on the invoice are not matched to a purchase order, then the process branches to Node 3. Note: To edit a workflow you may need to review its protection level and change some settings. Before you do so, you should read Oracles Support Guidelines in MetaLink Note: 97381.1 (I would also recommend you save both the original workflow and your modified workflow in flat file format somewhere safely.) To get started with understanding Workflow, try reading Karen Brownfields whitepaper for which you will find a reference at the end of this paper.
Page 17
End Nodes
These nodes all signify the end of the process due to various outcomes.
Node 1: Start
This is a standard function activity that simply marks the start of the sub-process.
If the approver approves the invoice, then the process branches to an End node and the sub-process ends. If the approver rejects the invoice, then the process branches to an End node and the sub-process ends.
If the approver does not respond within the time you specified for a timeout, then the process branches to Node 3.
If the approver approves the invoice, then the process branches to an End node and the sub-process ends. If the approver rejects the invoice, then the process branches to an End node and the sub-process ends.
If the approver still does not respond within the time you specified for a timeout, then the process branches to Node 4.
Note that these notification activities (nodes 2 and 3) are have a Timeout transition (the time period in which an approver needs to respond before sending a reminder notification or
Invoice Approval Workflow Page 19
escalating the request to the approvers manager). Review this and consider changing the timeout value,. Node 5: Escalated Approval Request
This activity sends the approvers manager an email or workflow notification (or both) requesting invoice approval and informing the manager that the invoice approval was escalated because the original approver did not respond.
If the approvers manager approves the invoice, then the process branches to an End node and the sub-process ends. If the approvers manager either rejects the invoice or does not respond within a specified time limit, then the process branches to an End node and the sub-process ends.
End Nodes
These nodes all signify the end of the process due to various outcomes. They return values of Approve or Reject depending on which branch they terminated.
7. 8. 9.
Page 21
You can also test to OAM as a standalone process. 1. Log into self-service OAM web application using AME Application Administrator responsibility. 2. Click Approvals to open the OAM form. 3. Select the Test tab (shown in the following images). 4. Select Create a Test Transaction and then click Continue. 5. Select Person as Test-Transaction Requestor Type. 6. Search for the requestor. 7. If the approver is found you should get a list the test transaction attribute values. 8. Make any necessary changes to the values and click the View Approval Process button. If an error appears the error is within OAM. If the approval completes without any errors, then OAM is set up correctly.
Cancelled Invoices
Consider the following modifications to handle cancelled invoices. In Oracle Workflow, modify the predefined workflow notifications to show the invoice status. In OAM, set a rule to remove invoices from the approvers list when the status becomes Cancelled.
Handling Exceptions
If the workflow program fails, then the workflow sends an email or workflow notification (or both) to a designated person such as your system administrator. This person can abort the workflow program, retry the failed workflow activity, or resolve the problem that caused the error to occur. If you want to override the Invoice Approval Workflow for an invoice, a Payables user can force approve it. You might want to use force approval if there is a problem with the Workflow program and you need to pay an invoice immediately. To force approve an invoice, select it in the Invoices window, then in the Invoice Actions window choose the Force Approval option. This stops the workflow program for the invoice and sets the approval status to Manually Approved. This invoice status cannot be updated, even if the pending approver subsequently approves or rejects the invoice. Also, you cannot resubmit the Invoice Approval Workflow for an invoice that has a status of Manually Approved. If you want to resubmit an invoice for approval then you can resubmit Invoice Approval Workflow from the Invoice Actions window. You can resubmit the invoice if the approval status is Required, Not Required, Rejected, or Approved. Because the workflow program selects only invoices that require approval and have never started the approval process (approval status is Required), you cant use the Submit Request window to resubmit approval for an invoice. You cannot delete an invoice if the Invoice Approval Workflow is processing or has processed it (bug 2386392).
Page 23
Workflow Administration
If the Invoice Approval Workflow is the only workflow your site is using. additional workflow administration tasks. You will also have some
Schedule the Workflow Agent Listener to run regularly (as System Administrator from standard report submission or from Oracle Applications Manager). This task may not be necessary if you are already using other workflow processes just check to ensure that the seeded agent listener service component named Workflow Deferred Agent Listener, is running for the WF_DEFERRED agent. Set up and test Workflows use of email notifications (including possibly modifying the standard email template.) Do not underestimate the scope of this task it is rarely straightforward and will require a technical resource. Identify and set up a designated person as your workflow administrator to receive notification of workflow errors through the Oracle Workflow Default Error Process. Oracle recommend that the person who receives OAM error notifications should also receive Oracle Workflow process error notifications. If a technical user is assigned this role, consider also assigning a functional user a monitoring role to ensure that any non-technical issues are detected and resolved. Review and set Workflow profile options. For example WF: Mailer Cancellation Email prevents notification mailers from sending any notification cancellation messages. If you are new to all these tasks and find the Oracle Workflow Administrators Guide a bit daunting initially, you might start by reading Donna Christies Workflow Admin paper cited in the Appendix of this paper. It provides a good introduction to Workflow Administrator functionality.
Conclusion
This high level overview has covered the implementation of the Invoice Approval Workflow process. The author would like to thank Brisbane City Council for allowing access to their test environment to obtain some of the screen shots used in this paper. The author would also like to thank ASSIST for allowing Donna Christie to referee this paper. Donna provided helpful comments and input and her contribution was significant.