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.
The Contract Invoice 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 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
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.
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.
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
- Approvers
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:
-
Navigate to Setup and Maintenance > Manage Task Configurations for Project Financial Management.
The BPM Worklist tool appears.
- Search and open InvoiceApprovalHumantask.
- Click the Edit Task icon to open the task in Edit mode.
-
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.
-
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.
- 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.
- Click the Insert Action icon above the now empty rule and, from the drop-down options that appear, select Add Approver > Supervisory.
- Enter 1 in the Number of Levels field.
- Perform the following steps to add the Starting
Participant. This is the first participant–typically a
manager–in the approval process.
-
Click the Search icon adjacent to the Starting Participant.
The Add Hierarchy Participant dialog box appears.
- Select the Get User radio button to indicate that you want to specify a user who must approve invoices.
-
Click the Expression Builder icon adjacent to the Reference User field.
The Expression Builder dialog box appears.
-
Click the Task > creator option in the expression builder and click Insert into Expression.
The value in the Expression field now reads Task.creator.
- 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.
- Enter "" in the Hierarchy Type field to indicate that the task creator can belong to any hierarchy type.
-
Click OK to populate these details into the Starting Participant field.
The value in this field must now read HierarchyBuilder.getPrincipal(Task.creator,-1,"","").
-
- Populate the Top Participant field with the same value. The top participant is the last approver of a request.
- Set Auto Action Enabled to True.
- Specify the Auto Action as "APPROVE" (including the quotation marks) to instruct the application to automatically approve all project contract invoice approval requests.
-
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.