Set Up Parallel Approval
You can create an approval workflow that requires approval from a group of people, in any order.
This is called parallel group approval. In parallel approval, all members of a list of approvers must approve a process in any order (the order of approvers in the list isn't relevant, but all approvers must approve it). You manage this using Oracle Business Process Manager (BPM) and object workflows.
This topic describes the following:
-
Creating the group of approvers.
-
Creating the approval flow.
-
Deploying the project.
-
Including the approval flow in an object workflow.
For more information about human tasks, refer to the Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.
Create the Group of Approvers
To set up parallel group approval, you must first create the group for your approvers.
-
Sign in to the BPM worklist application.
-
Navigate to Administration, Approval groups.
-
Create a group named CRMCommonApprovalGroup. Note that you must give the group this name.
-
Add the members of the group (the people you want to designate as approvers).
-
Save the group.
Create the Approval Flow
Next, you create the approval flow, which is based on the standard approval flow template ExtnBusinessProcessComposite.
Modifying templates in BPM Composer might be disabled for your implementation in this release. If so, contact Oracle Support for assistance.
-
Click New on the Business Processes page.
-
Select ExtnBusinessProcessComposite as the base template.
-
Remove the standard human task step named SerialApproval.
-
From the component palette on the right side of BPM Composer, drag an interactive task step into the approval flow in the same place where you removed the existing SerialApproval step.
-
Rename the new task step (for example, ParallelApproval).
-
Select the task, click the four lines icon against it and click Open Properties.
-
At the bottom of the screen, search for all patterns and select the ParallelApprovalGroupApproval task.
-
Click Apply changes.
-
Select the task again, click the four lines icon against it and click Open Data Association.
-
Map the inputs and outputs as shown in the table below.
Inputs
GroupApproval
Outputs
taskTitle
title
Not applicable
taskOwner
taskOwner
Not applicable
taskOwner
errorAssignee
Not applicable
"REJECT"
defaultOutcome
Not applicable
100
VotingPercentage
Not applicable
Not applicable
outcome
taskOutcome
parentIdVar
parentObjectId
Not applicable
heldEntityIdStringVar
ObjectId
Not applicable
In parallel approval, you must pay attention to the parameter votingPercentage. This parameter determines how many group members need to approve the request for the record to be considered approved. By setting the parameter to be 100, you specify that every approver in the list must approve the request.
-
Click Apply.
-
Save the process.
Deploy the Project
Finally, you deploy the project.
-
From the main menu, select Deployment, Deploy Project.
-
In the Deploy Project dialog box, enter the following:
Field
Value
Revision ID
Provide an identifiable ID.
Deployer User Name
Your sign-in name.
Password
Your password.
Mark composite revision as default
Select this option.
-
Click Deploy.
A confirmation message appears after the project has been deployed successfully.
Include the Approval Flow in an Object Workflow
Now you can create an approval workflow that includes a parallel list of approvers. To do this, create an object workflow that uses the ParallelApproval flow that you created above.
-
Make sure you're in an active sandbox.
-
In Application Composer, click Object Workflows.
-
Enter a name for the object workflow, and select an object (for example, Opportunity).
-
Click Create.
-
Click the Create icon next to Business Process Flow.
-
Enter a name for the flow.
-
Click Search next to Project Name.
-
Select GroupApproval from the list and click OK.
-
Click Save.
When the object workflow is triggered, all the users that are part of CrmCommonApprovalGroup will see the approval request. Based on the voting percentage, the outcome of the approval task is determined. In this example, because we mapped votingPercentage to 100, all the members of the group must approve the task before the record is finally approved.
The flow is considered complete when the specified percentage of members of the approval group (in this case, 100%) approve the request. If any member of the group rejects the request, then the record's status is changed to Rejected.