The Project Contract Invoice Approval Workflow

Every time someone submits a project contract invoice for approval, the application triggers the Project Contract Invoice Approval workflow. This workflow notifies configured assignees, who must approve or reject the submitted invoice, or seek more information if required.

In the BPM Worklist tool, this workflow is called InvoiceApprovalHumantask, and the default recipient of this workflow is the administrator of the contract for which the invoice was raised.
Note: To instruct the application to skip the approval workflow when someone submits a project contract invoice using the UI or a REST call, create a profile option named PJB_NO_INV_APPR_WF and set its value to Y.

The Contract Invoice Approval Process

The Contract Approval Process

Agent Description Additional Information
Billing Specialist Uses the Manage Invoices, Invoice Overview, or Edit Invoice page to submit an invoice for approval. For information on working with invoices, see the Using Project Revenue and Billing guide.
The Contract Invoice Approval Workflow As soon as someone submits a project contract invoice, the workflow sends notifications to all configured assignees via email or in-app notifications, as configured. For detailed information on how you can customize approval workflow notifications, see Workflow Notifications in the Implementing Common Applications guide.
Workflow Assignees Assignees review and approve or reject the invoice, or seek more information.

If the workflow uses parallel approvers, then the Voting Percentage rule is used to determine final approval.

For detailed information on using BPM Worklist to update approval workflows, see Workflow Approvals and Notifications in the Implementing Common Applications guide.

The Contract Invoice Approval Workflow The workflow updates the invoice status to Approved or Rejected. NA
The Contract Invoice Approval Workflow

The workflow performs the following tasks once the invoice status is updated.

  • If the invoice is approved, the workflow sends notifications to configured recipients if configured. Otherwise, the workflow exits.
  • If the invoice is rejected, the application sends a notification indicating the result to the submittor (Billing Specialist).

If the invoice is approved, the Billing Specialist can release the invoice.

If the invoice is rejected, the submitter (Billing Specialist) moves the invoice back to Draft status, updates it as appropriate, and resubmits it for approval if required. This action retriggers the workflow, and designated approvers receive new notifications, as configured.

Configuring the Project Contract Invoice Approval Workflow

For information on how you can configure the Project Contract Invoice Approval workflow, review the following topics in the Creating Analytics and Reports for Financials guide:

  • Configuring Payables Workflow Notifications
  • Example of Modifying Invoice Approval Workflow Notifications Using Oracle Business Intelligence (BI) Publisher

For generic guidance on customizing workflows and notifications, see the Workflow Approvals and Notifications section in the Implementing Applications guide.

Configurable Attributes in the Project Contract Invoice Approval workflow

There are many attributes that you can use to configure the Project Contract Invoice Approval workflow's behavior. These attributes are associated with:

  • The invoice that is being processed (See Invoice Attributes, below)
  • The project with which the invoice is associated (See Project Attributes, below)
  • The contract with which the project is associated (See Contract Attributes, below)

Invoice Attributes

Here's a table that lists out key project contract invoice attributes that you can use to customize the behavior of the Project Contract Invoice Approval workflow.

Key Invoice Attributes Used to Modify the Project Contract Invoice Approval workflow

Attribute Description
InvoiceId The unique identifier of the invoice.
InvoiceNum The sequential number that identifies the draft invoice within a project.
ContractId The identifier of the contract that funds the invoice.
BillToCustAcctId The identifier of the customer id to which invoices are sent.
BillToDate The date through which to invoice the project. Expenditure items with the expenditure item date on or before the bill to date and events with completion dates on or before the bill through date may be included on an invoice.
InvoiceDate The invoice date passed to Oracle Receivables, which is used to calculate the invoice due date. Upon release of the invoice, this date is defaulted from the released date. The user can override the invoice date at the time of release.
InvoiceStatusCode The code associated with the invoice's payment status. Possible values are Y, N, or P.
InvoiceTypeCode The code associated with the type of Invoice, such as Standard, Credit Memo, Write-Off, Net Invoice, Canceled.
ApprovedDate The date on which the draft invoice is approved.
ApprovedByPersonId The unique identifier of the employee who approved the invoice.
OrgId The unique identifier of the business unit associated with the invoice.
ContractNumber The contract number associated with the invoice.
MajorVersion The major version number of the contract for which the invoice is created.
InvCurrInvAmt Amount for which the invoice is created.
ContractAdminEmail The email address of the administrator of the contract.
BillToCustName The name of the customer to whom the invoice is sent.
InvoiceCurrencyCode The currency code associated with the amount for which the invoice is generated.
ContractAdminName The name of the administrator of the contract.
InvoiceTypeName The invoice type, such as Standard, Credit Memo, Write-Off, Net Invoice, Canceled, used for the invoice.
BillFromDate The date through which to invoice the project.
CustPoNumber The purchase order against which the invoice is issued.
ContractTypeId The unique ID of the contract type to which the contract associated with the invoice belongs.
InvoiceComment Free text comments that can be printed on an invoice. The invoice comment is defaulted from the invoice comment defined for the project. This value can be overridden by a user for each draft invoice.
CreditMemoReasonCode The reason code for releasing credit invoices.
InvoiceInstructions Invoice instructions.
ContractStatusCode The code associated with the contract's fulfillment status.
CreditedInvoiceId The identifier of the invoice that can be fully reversed by a credit or debit memo.
BillingTypeCode The code associated with the billing type used in the project.
ContractType This is a temporary table used internally by Oracle.
BillingType The billing type used in the project. This can either be External, Inter-Company, or Inter-Project.
CreditedInvoiceNumber The number of the invoice that must be fully reversed by a Credit or Debit Memo.
BUName The name of the business unit associated with the invoice.
CreditMemoReason Codes provided by the government or central bank of a country. These codes provide the payment system or bank with additional details about the reason for the payment and are used for regulatory reporting purposes.
ContractStatus The status of the contract, such as Draft, Canceled, Pending Approval, and so on.
ProjMgrsUserNames The names of the project managers associated with the project associated with the invoice.
ParallelVotingPercentage The percentage of votes that an invoice must receive to be approved.
Invoice Header Flexfields General information, such as supplier, supplier site, invoice number, invoice date, as well as default information, used to create invoice lines.

Key Project Attributes Used by the Project Contract Invoice Approval Workflow

Here's a table that lists out key project attributes that you can use to customize the behavior of the Project Contract Invoice Approval workflow.

Note: You can find some of the attributes listed here in folders in the Condition Explorer in the Task Configuration tab in BPM Worklist. The name of the folder is added to every such attribute in this table. Thus, for example, the attribute ProjectTeamMember > ProjectPartyId can be found in the ProjectTeamMember folder.

Key Project Attributes Used to Modify the Project Contract Invoice Approval workflow

Attribute Description
ProjectId The unique identifier of the project.
ProjectName The name of the project.
ProjectNumber The project number.
CarryingOutOrganizationId The unique identifier of the organization that is executing the project.
ProjectOrganizationName The name of the organization that is implementing the project.
ProjectUnitId The unique identifier of the project unit that is implementing the project associated with the invoice.
ProjectUnitName The name of the project unit that is implementing the project associated with the invoice.
ProjectTypeId The unique identifier of the project type.
ProjectTypeName The name of the project type.
BusinessUnitId The unique identifier of the business unit.
BusinessUnitName The name of the business unit.
LegalEntityId The unique identifier of the legal entity that is implementing the project.
LegalEntityName The name of the legal entity that is implementing the project.
WorkTypeId The unique identifier of the work type associated with task for which the invoice is created.
WorkTypeName The name of the work type associated with the task for which the invoice is created.
ProjectCurrencyCode The currency code used by default with amounts in the project.
ProjectLedgerCurrencyCode The currency code used by default with amounts in the project ledger.
SponsoredFlag A flag indicating whether the project is sponsored.
ProjectTeamMember > ProjectPartyId The unique identifier of a party assignment to the project for a project team member associated with the task for which the invoice is created.
ProjectTeamMember > TeamMemberRoleId The unique identifier of the role assigned to a project team member associated with the task for which the invoice is created.
ProjectTeamMember > TeamMemberRoleName The name of the role assigned to a project team member associated with the task for which the invoice is created.
ProjectTeamMember > TeamMemberPersonId The unique ID of a project team member associated with the task for which the invoice is created.
ProjectTeamMember > TeamMemberEmailAddress The email address of a project team member associated with the task for which the invoice is created
ProjectTeamMember > TeamMemberUserName The name of a project team member associated with the task for which the invoice is created
ProjectTeamMember > StartDateActive The start date of a project team member associated with the task for which the invoice is created.
ProjectTeamMember > EndDateActive The end date of a project team member associated with the task for which the invoice is created.
Project Flexfields Custom project-related flexfields created for use in your organization.
ProjectClassification > ProjectClassCategory The project class category to which the project associated with the invoice belongs.
ProjectClassification > ProjectClassCode The project class code that belongs to the project class category, to which the project associated with the invoice belongs.

Contract Attributes

Here's a table that lists out key contract attributes that you can use to customize the behavior of the Project Contract Invoice Approval workflow.

Key Contract Attributes Used to Modify the Project Contract Invoice Approval workflow

Attribute Description
ContractId The unique identifier of the contract associated with the invoice.
Contract Header Flexfields Custom contract-related flexfields created for use in your organization.

Project Contract Invoice Approval Workflow Notifications

The Project Contract Invoice Approval workflow sends notifications when:

  • An invoice requires approval.
  • An invoice is approved or rejected.
  • An invoice requires more information.

Contents of a Project Contract Invoice Approval Workflow Notification

A Project Contract Invoice Approval Workflow notification contains the following details:

  • Header

    • Invoice Approval for <Contract Number>

    • Task Number: <Task number associated with the invoice.>
  • Approval options (if sent to an approver)
    • Approve
    • Reject
    • Request Info
  • Contents Section
    • Invoice Number
    • Contract Number
    • Bill-to Customer
    • Invoice Type
    • Date
    • Invoice Amount in Invoice Currency
    • Tax Amount in Invoice Currency
    • Bill from Date
    • Bill-Through Date
  • Invoice Lines
    • Line Number
    • Description
    • Amount in Invoice Currency
  • Approval options (if sent to an approver)
    • Approve
    • Reject
    • Request Info
  • Approval History: One row per approver.
    • Approvers
      • Assigned to / Approved by / Rejected by <Name of Approver>
      • Date and Time of Assignment / Approval / Rejection
    • Submitter
      • Submitted by <Name of Submitter>
      • Date and Time of Submission
    • Link to invoice

Customizing Project Contract Invoice Approval Workflow Notifications

For details on customizing Project Contract Invoice Approval Workflow notifications, see Example of Modifying Invoice Approval Workflow Notifications Using Oracle Analytics Publisher.

For guidance on how you can work with workflow notifications in BPM Worklist tool, see Workflow Notifications in the Common Implementing Applications guide.

Customizing Notification Templates

You can find the templates and data models used in the Project Contract Invoice Approval workflow in the Shared Folders > Projects > Workflow Notifications > Project Billing folder in the Oracle BI Publisher catalog. In this folder, the ProjectContractInvoiceApprovalReport file contains the template used in the notification report. Expand the Project Billing > Data Model folder to access the ProjectContractInvoiceApprovalDM file, which contains the data model used in the notification report.

For information on how you can customize notification templates, see Configurable Notifications in the Common Implementation guide. For detailed instructions on how to customize Project Contract Invoice Approval workflow notifications, see Example of Modifying Invoice Approval Workflow Notifications Using Oracle Analytics Publisher.

How-to: Setting up Auto-Approval for Project Contract Invoices

In this use case, you set up auto-approval for project contract invoices. This means that instead of routing all invoices to the default participants who must review and approve new invoices, you will configure the InvoiceApprovalHumantask such that all new invoices will be automatically approved and forwarded for processing.

To set up auto-approval for project contract invoices:

  1. Navigate to Setup and Maintenance > Manage Task Configurations for Project Financial Management.

    The BPM Worklist tool appears.

  2. Search and open InvoiceApprovalHumantask.
  3. Click the Edit Task icon to open the task in Edit mode.
  4. Click the Assignees tab in the Task Configuration page.

    This tab displays the participants of the workflow. These are the users who must approve project invoices before they can be processed. Click on each of these participants to review the workflow rules that apply to their approval choices.

  5. Click on Contract Invoice Single Approver Participant in the workflow, then click on the Go to Rule icon, and then on the Go to Rule option that appears.

    The list of rules associated with the participant you selected appears.

    By default, the workflow sends project contract invoices to the contract administrator for approval. You want to remove this requirement, so the approval request will not be routed.

  6. Select the check box adjacent to the Top Participant field in the THEN section of the rule. This enables the Delete Action icon above the rule. Click this icon to delete the action. You have now removed the default approver for your project invoices and must configure the rule such that it automatically approves all new invoices.
  7. Click the Insert Action icon above the now empty rule and, from the drop-down options that appear, select Add Approver > Supervisory.
  8. Enter 1 in the Number of Levels field.
  9. Perform the following steps to add the Starting Participant. This is the first participant–typically a manager–in the approval process.
    1. Click the Search icon adjacent to the Starting Participant.

      The Add Hierarchy Participant dialog box appears.

    2. Select the Get User radio button to indicate that you want to specify a user who must approve invoices.
    3. Click the Expression Builder icon adjacent to the Reference User field.

      The Expression Builder dialog box appears.

    4. Click the Task > creator option in the expression builder and click Insert into Expression.

      The value in the Expression field now reads Task.creator.

    5. Click OK to exit the expression builder and add task.creator as the reference user for the approver. This instructs the workflow to make the creator of the task the approver.
    6. Enter "" in the Hierarchy Type field to indicate that the task creator can belong to any hierarchy type.
    7. Click OK to populate these details into the Starting Participant field.

      The value in this field must now read HierarchyBuilder.getPrincipal(Task.creator,-1,"","").

  10. Populate the Top Participant field with the same value. The top participant is the last approver of a request.
  11. Set Auto Action Enabled to True.
  12. Specify the Auto Action as "APPROVE" (including the quotation marks) to instruct the application to automatically approve all project contract invoice approval requests.
  13. Save and Commit your updates, and enter Comments as appropriate. Click OK.

You have now configured the InvoiceApprovalHumantask workflow to automatically approve all new project contract invoice approval requests using the name of the task creator as the approver.