Invoice Approval Workflow

Embed Size (px)

DESCRIPTION

Payables Invoice Approval Workflow

Citation preview

  • Invoice Approval Workflow An Oracle White Paper February 2005

  • Invoice Approval Workflow Page 2

    Invoice Approval Workflow

    Introduction...................................................................................... 3 Scope ................................................................................................ 3

    Overview ...................................................................................... 3 Pre-requisites ................................................................................ 4 Features......................................................................................... 4 Setup ............................................................................................. 5

    HRMS......................................................................................... 5 Sysadmin ................................................................................... 7 Oracle Approvals Management (OAM)................................. 10

    Attribute............................................................................... 11 Conditions ........................................................................... 12 Actions................................................................................. 13 Action Group ...................................................................... 15 Rules.................................................................................... 15 Test ...................................................................................... 19

    Oracle Payables ...................................................................... 22 Simulation ................................................................................... 23 Troubleshooting ......................................................................... 29

    Technical Overview of Invoice Approval Flow.................... 29 Tables Related to Invoice Approval ...................................... 30

    Workflow Tables ................................................................ 30 AME Tables ......................................................................... 31 Invoice Approval Program Flow........................................ 31 How to Track the Workflow Process ................................ 33

    Conclusion...................................................................................... 35

  • Invoice Approval Workflow Page 3

    Invoice Approval Workflow

    INTRODUCTION In todays world, business conglomerates and MNCs process huge number of invoices daily. Approving all the invoices by the appropriate authority is a painful process. Payables Invoice Approval Workflow process automate the approval process.

    SCOPE Scope of this white paper is as follows:

    Setup details involved in o Oracle Payables

    o Oracle Approval Management

    o Workflow

    A full Cycle explaining the usage of Invoice Approvals

    This paper will not cover general AME details and Worflow details

    Trouble shooting of Invoice Approval Workflow

    Overview What do you mean by Invoice Approval Workflow?

    It is a workflow process that enables you to automate the approval process. It helps in customizing and setting approval methodology based on:

    o Approver

    o Sequence of approval

    o Criteria for approval

    In what cases Invoice Approval workflow will not apply?

    o When the Expense Report is imported

    o In the case of Recurring invoices, if approval is not required as per the template

    o For those invoices before this feature is enabled

  • Invoice Approval Workflow Page 4

    o For invoices which are already processed

    Pre-requisites What are the basic requirements to enable the Invoice Approval Workflow?

    o Oracle Payables Patchset 11i.AP.I (2266251) and above

    o Oracles Approval Management with following patches (2198768,2220334,2228792,2257526,2271164,2274701)

    Features The approval can be submitted through:

    o Invioces > Actions > Initiate Approval

    o Concurrent Program Invoice Approval Workflow

    The approval can be done through

    o E-mail

    o Workflow notification

    If the invoice is rejected, user has three options:

    o Force approve the invoice or

    o Cancel the invoice or

    o Re-submit the invoice

    Invoice can be re-submitted only if Approval Status is Required/Not Required/Rejected/Approved using Invoices > Action > Initiate approval only

    If Require Validation before approval is enabled in Payable Options, then Invoice must be validated before approval

    If you submit the approval using Invoice approval workflow, then invoice must meet following criteria for selection:

    o Should be validated if Require Validation before approval is enabled in Payable Options

    o Approval Status should be

    o Required

    o Other than Initiated or Manually approved

    o Invoice amount equals distributions total

  • Invoice Approval Workflow Page 5

    o Ready for approval is checked for invoice

    o Requestor field should not be null

    Setup As far as setup is concerned with regard to Invoice Approval Workflow, it involves

    o HRMS

    o Sysadmin

    o Oracle Approvals Management (AME)

    o Workflow

    o Payables

    HRMS

    In HRMS, you need to create employees and assign supervisors.

    In our test case, we are going to create the following employees and their supervisors:

    Employee Name Supervisor Name

    The Clerk The Supervisor

    The Supervisor The Manager

    The Manager The CEO

  • Invoice Approval Workflow Page 6

  • Invoice Approval Workflow Page 7

    Sysadmin

    In System Adminstrator Responsibility, you need to create the following users and assign them the following responsibilities:

    User Name Responsibilites (minimum responsibilities to be assigned)

    THE CLERK Payables, Approval Management (OAM), Workflow

    THE SUPERVISOR Payables, Approval Management (OAM), Workflow

    THE MANAGER Payables, Approval Management (OAM), Workflow

    THE CEO Payables, Approval Management (OAM), Workflow

  • Invoice Approval Workflow Page 8

    Following are the screenshots of the above:

  • Invoice Approval Workflow Page 9

  • Invoice Approval Workflow Page 10

    Oracle Approvals Management (OAM)

    In Oracle Approvals Management, You need to create a Rule for the Transaction Type Payables Invoice Approval. In our test case, we will see how to create a Rule in AME for Payables Invoice Approval. We will not be going indepth about Oracle Approvals Management in this white paper.

    To create a rule in Approval Management, we need to create the following and then attach to the rule:

    1. Attribute

    An attribute is a business variable that has exactly one value for a given transaction. Examples are Invoice Amount, Invoice Lookup Type, Payment terms etc.,

    2. Condition

    The IF part of an approval rule is the condition. It may consistis of one or more conditions each of which is either true or false. For a rule to apply to a transaction, all the condition must be true for the transaction. We can create conditions based on the attributes. Ordinary header condtions are based on columns of the Invoice Header i.e, AP_INVOICES_ALL table

    Example are if the INVOICE_AMOUNT

  • Invoice Approval Workflow Page 11

    Once we create the above for the transaction type Payables Invoice Approval, we need to create a rule and attach the above for the rule.

    Following are the screenshots of how to create an attribute, condition and approval and then attach all these to a rule.

    Attribute

    Responsibility: AME Application Administrator

    N > Approvals > Attributes

    1. Change the transaction type to Payables Invoice Approval from the list of values and select the continue button.

    2. Scroll to the end of the attributes page and select the Add Attribute button.

    3. Select the header attribute button.

    4. Select Create New Name button from the Create an Attribute.

    5. Enter SUPPLIER INVOICE AMOUNT in the name field and select the continue button.

    6. Select an Attribute type of currency.

    7. Enter Invoice amount in the description field.

    8. Select static usage as no. Attribute usages define how the value is determined at the run time. If it is a static usage, then you can define a constant value for the transaction type. If it is a dynamic usage, then you need to define a SQL query for the transaction type that uses the attribute. In our case, it is a dynamic usage and the following SQL query is used

    select fnd_number.number_to_canonical(ai.INVOICE_AMOUNT),

    nvl(ai.Invoice_Currency_Code,asp.Invoice_Currency_Code),

    nvl(ai.Exchange_Rate_Type,asp.Default_Exchange_Rate_Type)

    from ap_invoices_all ai, ap_system_parameters_all asp

    where ai.invoice_id = :transactionId

    and ai.org_id = asp.org_id

    9. Select the Create Attribute button.

    Note: AME will confirm the creation of the attribute for you.

    10. Select the Quit button to return back to the main menu page.

  • Invoice Approval Workflow Page 12

    Conditions

    Responsibility: AME Application Administrator

    N > Approvals > Conditions

    1. Change the transaction type to Payables Invoice Approval from the list of values and select the continue button.

    2. Scroll to the end of the conditions page and select Add a Condition button.

    3. Select an ordinary header condition type.

    4. Select the continue button.

    5. In the attribute field select SUPPLIER INVOICE AMOUNT from the list of values.

    6. Select the continue button.

    7. Select the Currency code as USD

    8. Enter 0 in the lower limit field.

    9. Enter 5000 in the upper limit field.

    10. Select yes for include lower limit.

  • Invoice Approval Workflow Page 13

    11. Select yes for include upper limit

    12. Select the Create Condition button.

    13. AME will confirm the condition being added successfully.

    Actions

    Responsibility: AME Application Administrator

    N > Approvals > Approvals

    Note: that actions are common to all transaction types so you do not need to select the Payables Invoice Approval transaction type.

    In the actions types page view scroll down to view the absolute job level action type and note that it has 2 required attributes:

    INCLUDE_ALL_JOB_LEVEL_APPROVERS

  • Invoice Approval Workflow Page 14

    JOB_LEVEL_NON_DEFAULT_STARTING_POINT_PERSON_ID

    Verify that these attributes have been defined with the Payables Invoice Approval transaction type.

    N > Approvals > Attributes

    1. Select the Payables Invoice Approval transaction type from the list of values.

    2. Select the continue button.

    3. Scroll down and check the non-mandatory attributes list to see if the following two attributes appear:

    INCLUDE_ALL_JOB_LEVEL_APPROVERS

    JOB_LEVEL_NON_DEFAULT_STARTING_POINT_PERSON_ID

    4. Add these attributes if they are missing.

    5. Select the Quit button to return back to the main menu page.

    AME includes a set of seeded action types, many of which enable you to ascend commonly used organizational hierarchies. If none of the seeded action types meets your organization's requirements, you need a custom action type. An AME user with administrative privileges must use the actions tab to define a new action type. (this is not the scope of this paper and hence not

  • Invoice Approval Workflow Page 15

    disucussed here). For our test case, we will use the seeded action type absoulute job level).

    Action Group

    Action Group is out of the scope of this material. If you want to know more about Action Group, then please refer Implementing Oracle Approvals Management, Release 11i10.

    Rules Creating rules and rule usages is the main step in the AME implementation process. Rarely will an organizations business rules match any rules that are seeded with a transaction type. Instead, you must translate the business rules you documented into AME rules yourself. Rule associate one or more conditions with an approval in an if-then statement. Before you can create rules, you must create conditions for the rules to use. You may need to create (or have a system administrator create) some custom attributes and/or approvals. You may also need to create some approval groups. Thus, while creating rules is your ultimate goal, it is also the last thing you do when you set up AME. How to creat a Rule: N > Approvals > Approvals 1. Press on Rule tab 2. Click on the Add Rule and Usage tab 3. Give the name of the Rule in the Description. Rule Key will be

    automatically displayed. 4. Give appropriate Start and End date for the rule and then

    press continue button 5. Select the appropriate Action Types (in our case chains of

    authority based on absolute job level action type is selected) and press continue. The action type will change according to the Rule Type selected.

    6. Select the appropriate absoulute job level actions and press continue

    7. Select the appropriate Subordinate item class and press continue

    8. Select the appropriate Header Attributes. In our case SUPPLIER_INVOICE_AMOUNT is selected and press continue

    9. Select the appropriate condition and press continue. 10. This will create the rule

  • Invoice Approval Workflow Page 16

    Creation of Rule Step 1

    Creation of Rule Step 2

  • Invoice Approval Workflow Page 17

    Creation of Rule Step 3

    Creation of Rule Step4

  • Invoice Approval Workflow Page 18

    Creation of Rule Step 5

    Creation of Rule Step 6

  • Invoice Approval Workflow Page 19

    Creation of Rule Step 7

    Test

    Approval Management allows users to test the approval process independent of the Invoice Approval Workflow. This will help determine where the problem is occurring, either in OAM or the Invoice Approval Workflow.

    How to test a rule in OAM:

    N > Approvals > Approvals

    1. Go to Test Tab

    2. Select a Test Type

    a. to test a real transactions approval process, you need to give the item key which will be the invoice_id. In this case check the View a real transactions approval process check box

    b. to test the rule created in OAM in order to check the approval process, you can select create a test transaction

    3. Select the transaction requestor type

    4. Search for the person and select the person

  • Invoice Approval Workflow Page 20

    5. Enter the transaction attribute values

    6. Press View approval process button to view the approval process

    7. Press View approver list to view the list of approvers

    Testing a Rule Step 1

    Testing a Rule Step 2

  • Invoice Approval Workflow Page 21

    Testing a Rule Step 3

  • Invoice Approval Workflow Page 22

    Oracle Payables

    N > Payables > Setup > Options > Payables Options

    1. Check the Use Invoice Approval Workflow check box.

    2. Check the Allow Force Approval vheck box, if you want to force approve the invoice in which case the approval process will be bypassed.

    3. Check the Require Validation before Approval check box if you want to validate the invoice before it is picked up by the approval process

  • Invoice Approval Workflow Page 23

    Simulation 1. Go to Oracle Payables

    2. Enter a Standard Invoice with Requestor name populated

    3. Validate the invoice

  • Invoice Approval Workflow Page 24

    4. Intitiate the invoce by checking the Intitate Approval Checkbox in the Action window

    5. Check the approval field and view the Invoice Approval History (Tools > View Invoice Approval Hisotry)

  • Invoice Approval Workflow Page 25

    6. Run the Workflow Listener for Agent name WF_DEFFERED in Sysadmin

  • Invoice Approval Workflow Page 26

    7. Check on the status of the approval process in Payables in View Invoice Approval History form by querrying the invoice.

    8. Login in to corresponding User Name in whose name the action is pending (Login as Supervisor)

    9. Selection the Notification from the worklist

    10. Check the Notification details and approve

  • Invoice Approval Workflow Page 27

    11. Check the invoice Approval Status after the Supervisors approval.

  • Invoice Approval Workflow Page 28

    12. Similarly you need to login as next approver (manager) and repeat the process and following will be the invoice approval status after managers approval

    13. Invoice Approval status after the final approver (CEO)

  • Invoice Approval Workflow Page 29

    Troubleshooting

    Technical Overview of Invoice Approval Flow

    Initiate Approval calls: ap_wfapproval_pkg.iaw_raise_events

    ap_wfapproval_pkg.iaw_raise_events calls: Wf_event.raise

    Wf_event.raise puts data in: wf_deferred table (Queue)

    On running the Wf Agent Listener: Event subscriptions are executed

    Event subscriptions Triggers: APINV workflow Process

    APINV_MPO Node check PO Match ap_wfapproval_pkg

    APINV_IA Node get approvers: using AME_APIs in ap_wfapproval_pkg.get_approvers

    APINV_SN Node: send notifications and gets the feedback

    APINV_UAH Node: Updates the history

    APINV_UAH1 Node: Updates the history

    Approval Process ends (No More Approvers)

    Approval Process ends (If Rejected)

    Approval Process ends (If matched)

  • Invoice Approval Workflow Page 30

    Tables Related to Invoice Approval

    Workflow Tables

    Table Name Usage

    WF_EVENTS, WE_EVENTS_SUBSCRIPTIONS

    Consists complete list of events and events subscriptions along with licensing details

    WF_DEFERRED Stores details of the events that requires to be submitted to workflow

    WF_ERROR If the Workflow Agent Listener errors, then a record is logged in this table

    Query to access WF_DEFERRED and WF_ERROR table details

    Select w.user_data.event_name EVENT_NAME,w.user_data.event_key EVENT_key, w.* from WF_DEFERRED w

    where w.user_data.event_name like 'oracle.apps.ap.event.invoice.approval and w.user_data.event_key like '57936_1';

    Note : 1. These tables consists data-type Object.

    2. Above queries will work on 8.1.5+ Sql*Plus version.

    3. Can replace WF_DEFERRED with WF_ERROR

    WF_ITEM_TYPES_TL Consists complete list of workflow item types

    WF_ITEM_ATTRIBUTES_TL Consists attributes defined for a workflow item type

    WF_ACTIVITIES_TL, WF_PROCESS_ACTIVITIES

    Consists activities defined for a workflow item type

    WF_ITEMS Consists item type and item key. One record exists for every invoice submitted for approval

    WF_ITEM_ATTRIBUTE_VALUES Consists attribute values used during approval workflow

    WF_ITEM_ACTIVITY_STATUSES Consists item key activity status

  • Invoice Approval Workflow Page 31

    WF_NOTIFICATIONS Consists notification details

    Query to get notification details

    select NOTIFICATION_ID, MESSAGE_TYPE, substr(subject,1,30), STATUS,

    substr(RECIPIENT_ROLE,1,20) from wf_notifications

    where message_name = 'APINV_MRA and RECIPIENT_ROLE = 'THECEO'

    Note: In where clause we can use notification_id from the WF_ITEM_ACTIVITY_STATUSES.Notification_id

    WF_USERS, WF_ROLES, WF_USER_ROLES

    Used to identify the notification users notification preferences

    AME Tables

    AME_TRANSACTION_TYPES_V Consists AME transaction types lists

    AME_ATTRIBUTES, AME_CONDITIONS, AME_ACTIONS, AME_ACTION_TYPES, AME_APPROVAL_GROUPS

    Consists details of AME attributes, condistions and approval lists

    AME_RULES, AME_CONDITION_USAGES, AME_ATTRIBUTE_USAGES, AME_RULE_USAGES, AME_ACTION_TYPE_USAGES

    Consists rules and usage of attributes, conditions and approval list in the rules

    AME_APPROVAL_HISTORY Stores transaction id of the approval process and the peron id who approved the transactions

    Query to retrieve details from approval history

    select * from AME_APPROVALS_HISTORY where TRANSACTION_ID = '57936 (transaction_id = invoice_id)

    Invoice Approval Program Flow

    On initiating the invoice approval process from APXINWKB (invoice work bench form) program unit inv_sum_actions_wfapprove.do_wfapproval is called.

    inv_sum_actions_wfapprove.do_wfapproval calls ap_wfapproval_pkg.iaw_raise_event

  • Invoice Approval Workflow Page 32

    ap_wfapproval_pkg.iaw_raise_event calls wf_event.raise. This enqueues the event in appropriate queue (e., WF_Deferred queue) after checking the license and enabled flag

    Web agent listener (FNDWFLST) with WF_deferred as parameter executes PL/SQL function wf_event.listen_concurrent. This executes the event subscriptions after checking the license and enabled flag

    Subscription execution can be (defined in action section)

    o Rule function execution (PL/SQL program)

    o Or Starting a Work flow process (APINV) .

    APINV (AP Invoice), workflow process start at event activity receive and control is passed to Node APINV_MPO (Check if Matched to PO)

    APINV_MPO (Check if Matched to PO) is function activity. Checks the invoice match to PO using PL/SQL function AP_WFAPPROVAL_PKG.iaw_po_check

    If the Match is No then the control is passed to Node APINV_IA (Identify Approver).

    APINV_IA (Identify Approver) is Function activity. PL/SQL function AP_WFAPPROVAL_PKG.get_approvers is executed.

    AP_WFAPPROVAL_PKG.get_approvers in turn calls AME_API and gets approver. It also assign value for Item attribute Role_Name

    If AP_WFAPPROVAL_PKG.get_approvers returns Yes then the control is passed to Node APINV_SN (Send Notifications)

    APINV_SN (Send Notifications) is Process Activity. So this process is triggered and starts at function activity Start and control is passed to Node APINV_AR (Approval request)

    APINV_AR (Approval request) is Notification Activity. This sends the notification to performer defined. (i.e role_name. Should exists in wf_users). Row is inserted in wf_notifications table.

    Once the performer approves the invoice PL/SQL function AP_WFAPPROVAL_PKG.notification_handler is executed

    After this the APINV_SN (Send Notifications) ends with Approved status. So, control is passed to parent Process onto the Node APINV_UAH (Update Approval History) .

    APINV_UAH (Update Approval History) is Function activity and PL/SQL function AP_WFAPPROVAL_PKG.update_history is

  • Invoice Approval Workflow Page 33

    executed and control is passed back to Node APINV_IA (Identify Approver)

    Cycle of APINV_IA (Identify Approver) ---> APINV_SN (Send Notifications) ---> APINV_AR (Approval request) ---> APINV_UAH (Update Approval History) ends once APINV_IA (Identify Approver) returns No.

    Important packages involved:

    AP : AP_WFAPPROVAL_PKG

    AME : AME_API, AME_API2, AME_UTLI

    WF : WF_EVENT, WF_ENGINE, WF_DIRECTORY etc.,

    Other details:

    Event : oracle.apps.ap.event.invoice.approval

    Wf_item_type : APINV

    WFT file name : apfiawie.wft (APInvoice)

    AME Transaction type : APINV

    How to Track the Workflow Process

    Event Queue Summary

    o WF_DEFERRED Queue (when approval is initiated a request with the invoice id is placed in this queue)

    After an invoice is initiated, it will be viewable via the Event Queue Summary window through the System Administrator Responsibility.

    N > Syadmin > Workflow > Event Queue Summary

    1. Check the agent name WF_DEFERRED and press torch icon in View detail column

    2. Find the Event in WF_DEFERRED Queue

    Find Process to attribute values and error details

    Once the Workflow Agent Listener has completed, you can view this status of this invoice_id.

    N > Sysadmin > Workflow > Find Processes

    1. Enter criteria to Find Process

    2. Check the Process Status (Item Key will be invoice_id followed by underscore 1. Ex: 22403_1). Flag indicates that

  • Invoice Approval Workflow Page 34

    the process is completed successfully. Red traffic light indicates that the process did not completed successfully

    Find Notifications page

    Once the notification process has completed, you can view the status of the notification if the invoice.

    N > Sysadmin > Workflow > Find Notifications

    If you know the notification_id, you can query the notification otherwise, you can query the notification of the particular owner or type or status.

    Test tab to check the Approval details in AME

    Once you know the invoice_id for which the approval process is initiated, you can check the approval status for the invoice_id in AME.

    N > Approvals > Test tab

    1. Check View a real transaction approval process and press continue

    2. Provide the invoice_id value in the field Transaction ID and press Fetch attribute values

    3. Press View approval process button to view the approval process

    4. Press View approver list to view the list of approvers

    Admin tab to check the Approval Exception Log in AME

    Exception logs of the approval process can be viewed in AME to know the details of the exception

    N > Approvals > Admin tab

    You need to choose the activity View a transactions type exception log and press continue to view the details of the exception

    Wfstatus.sql

    This script is used to get the details of the Item Key (invoice_id) and its attribute values.

    How to run this script

    1. Go to $FND_TOP/sql

    2. Connect to SQLPLUS as apps

    3. Run the following command

  • Invoice Approval Workflow Page 35

    @wfstatus

    Ex:

    @wfstatus APINV 57936_1

    APINV is the item type and 57936_1 is the item key (invoice_id)

    CONCLUSION

    In todays complex business sceanario, Invoice Approval Workflow will help in great extent in automating the Invoice Approval Process which will save time and cost to the company and will help in business growth.

  • White Paper Title January 2005 Author: Sundaram Sriram Contributing Authors: Tumu Krishna Ashok Srinivasan Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 www.oracle.com Copyright 2003, Oracle. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.