ValidateSubflows
Summarize
Summary of ValidateSubflows
The ValidateSubflows validator is a critical tool within ServiceNow that identifies issues with workflows that include inactive, deleted, or unpublished subflows. If a parent workflow encounters such conditions, it may hang indefinitely, preventing execution and leading to critical errors.
Show less
Key Features
- Validation Summary: The validator provides a risk assessment highlighting critical errors caused by invalid subflows.
- Results Reporting: It categorizes workflows as valid or invalid, offering messages that detail the count of valid or invalid subflows.
- Suggested Actions: Upon detecting issues, it recommends removing or correcting the subflow and revalidating the workflow.
Key Outcomes
By utilizing the ValidateSubflows validator, customers can:
- Ensure that parent workflows can execute without interruption due to invalid subflows.
- Identify and rectify issues with subflows to maintain seamless workflow operations.
- Prevent critical errors that could halt workflow processes, enabling more reliable service delivery.
The ValidateSubflows validator detects any workflows included as subflows that are either inactive, deleted, or not available as a published workflow for the current user.
Validation summary
- Risk: A parent workflow that transitions to a deleted subflow hangs indefinitely, with no recovery options.
- Severity Level: Critical
- Valid Result: Valid
- Valid Message: This workflow contains <count> valid subflows.
- Invalid Result: Invalid
- Invalid Message: This workflow contains <invalid count> invalid subflow(s) of <total subflow count> total subflows.
- Suggested Action: Remove the link in the parent workflow to the questionable subflow, examine the subflow to ensure that it is valid and published, or that it is checked out to the current user. After making the correction to the state of the subflow, run the validation again to test your changes.
- Publishable: No
- Runnable: No
- Related Information: Workflows used as subflows
Troubleshooting
When a workflow runs, regardless of whether it is a subflow or a main flow, the script engine determines which version of a workflow should execute, given the current user and workflow conditions. When a workflow is checked out by the same user who is running the workflow, the checked out version is the version that executes. If the user is not the same person who has the workflow checked out, the published version of the workflow executes. If there is no published workflow, no workflow runs.
One scenario addressed by the ValidateSubflows validator is when a workflow:
- Is checked out to User A.
- Is a subflow in a parent workflow being run by User B.
- Has no published alternative to the subflow being run by User B.
When this occurs, the parent workflow runs to the execution of the unpublished subflow and then hangs at that activity, with no means to transition forward. Main flows that encounter this condition in a subflow are not permitted to execute against a current record's transaction. Instead, a critical log entry detailing the subflow's state is added to the current workflow's Workflow Context record. To correct the problem, remove the subflow from the main flow, or publish the subflow so it is available to User B. This allows the workflow to execute on the next appropriate transaction.
Another scenario addressed by the ValidateSubflow validator is when a workflow:
- Is a subflow in a parent workflow being run by any user.
- Has no published alternative to the subflow, because the workflow has been deleted or all versions of the workflow are unpublished or inactive.