Description
Approval rules are not conditional. Once a condition is evaluated to be false, the entire approval chain is aborted.
Our approvals process has multiple layers, and one of those approval layers is conditional:
- Approval 1 = Demand manager
- Approval 2 = Compliance (if a box is checked in the UI in step 1)
- Approval 3 = User's manager
- Approval 4 = Vice president
These approval rules are all set to run after each other, but if the condition isn't met at approval #2, then none of the other rules are evaluated (and the request is set to Approved).
Steps to Reproduce
As an Express admin:
- Add a custom field called Compliance with a data type of True/False to a task-based table, such as change_request or incident. Ensure this field is visible on the form layout.
- Create an Approval chain that consists of four approval rules, one rule running after another. Ensure that each approval rule contains a user or group to approve.
- On the second stage approval rule, which runs after the first rule, set the condition to: [Compliance] [is] [True].
- Create a new record on the table you added the Compliance field to in Step 1 and ensure the Approval chain created in Step 2 is triggered.
- As one of the approvers for the first Approval rule, view the record created in Step 4 and keep the compliance checkbox unchecked.
- Notice that the record never moves on to the third approval rule.
Workaround
As an Express admin, create a unique approval rule flow for each permutation to solve for condition approvals at different levels.
For example:
- Approval 1 = Demand manager
- Approval 2 = Compliance (if a box is checked in the UI in step 1)
- Approval 3 = User's manager
- Approval 4 = Vice president
Create one approval with the first approval rule containing the condition of compliance true:
- Approval 1 = Demand manager
- Condition: box is checked = true
- Approval 2 = Compliance
- Approval 3 = User's manager
- Approval 4 = Vice president
Create another approval rule with the condition of compliance false:
- Approval 1 = Demand manager
- Condition: box is not checked = false
- Approval 2 = User's manager
- Approval 3 = Vice president
As long as the step 1 conditions are mutually exclusive, the proper rule flow will run.
To learn more about the approval processing logic, please see the diagram below.
Related Problem: PRB713121