Wait for condition based on script tasks created

HenryD
Tera Guru

Hello, I have an interesting question for me I've created a script that creates tasks based on how many roles are in a Group, right now I'm using the "wait for condition." that comes in the workflow editor, but i approve a task and its getting stuck in the wf.

 

So is there a script i can run in a workflow that "waits" for all approvers in that certain stage to approve, how would that look like? or any tips or suggestions are welcomed. 

4 REPLIES 4

Sohithanjan G
Kilo Sage
Kilo Sage

Hi @HenryD , 

You can use approval coordinator in Wokflow.

The Approval Coordinator activity creates an approval whose outcome depends on the outcome of one or more child activities, including one or more Approval - User, Approval - Group, and/or Manual Approval activities.

Note: This activity is only available when the workflow runs on a table that extends Task.

To create an Approval Coordinator activity, first drag the activity onto the workflow canvas, causing the activity form to display. On the activity form, fill in the appropriate fields, then click Submit.

After you click Submit, the activity appears on the workflow canvas. From there, specify the child activities by clicking the links that appear on the body of the activity.

When the Approval Coordinator activity completes, all pending approvals that were created by any of the Approval Coordinator approval activities are immediately set to No Longer Required. If a single user is called as an approver twice by the same workflow, such as when a single user is both a product approver and an executive approver, any approvals for that user after the first are skipped.

Results

The result value of the Approval Coordinator activity depends on the approval actions taken by the approvers and the approval conditions specified in the Wait for field. Possible result values are:
  • Approved
  • Rejected
  • Deleted
  • Cancelled

Input variables

Input variables determine the initial behavior of the activity.

Approval Coordinator activity input variablesField Description
Wait for
Indicate what to wait for to indicate that the approval activity is approved or rejected. Options are:
  • Any child activity to be approved: Any child activity (User, Group, or Manual Approval) that completes with a result of approved causes the Approval Coordinator activity to complete with a result of approved.
  • All child activities to be approved: All child activities of the Approval Coordinator activity must complete with a a result of approved to cause the Approval Coordinator activity to complete with a result of approved.
  • The first approval or rejection from any child activity: The first child activity that completes with a result of approved or rejected causes the Approval Coordinator activity to complete with the same result.
  • Condition based on script:Call a script to determine how to manage an approval or rejection.
When a rejection occurs

Only appears if Wait for is set to All child activities to be approved or Any child activity to be approved.

Specify what the coordinator should do when it sees a rejection from any one of the child activities. Options are:
  • Reject the approval: Immediately complete the Approval Coordinator activity with a result of rejected.
  • Wait for other responses before deciding: Wait until we get other responses from other child activities before making an approval or rejection decision.

    This allows users to change their minds until a decision is made.

    In addition, if Wait for is set to Any child activity to approve then a single child activity completion with a result of approved will cause the Approval Coordinator activity to complete with a result of approved even if other child activities have completed with a result of rejected.

Approval script

Only appears if Wait for is set to Condition based on script.

If the Wait for variable is set to Condition based on script this script is called to determine how to handle an approval or rejection. The script needs to set the variable answer to , approved or rejected to indicate the overall approval status for this approval. When called, the following variable is available to the script:
counts.total = total number of child approval activities that are part of this approval
      counts.approved = # of child approval activities that approved so far
      counts.rejected = # of child approval activities that rejected so far
      counts.requested = # of child approval activities that are pending approval
 

Conditions

The conditions determine which transition runs after this activity.
Note: Approval activities run as the user whose actions match the approve or reject conditions the workflow was waiting for and advances the workflow.
Approval Coordinator activity conditionsCondition Description
ApprovedThe users from the groups have approved the request based on the Wait for rules.
RejectedThe users from the groups have rejected the request based on the Wait for rules.

States

The activity state tells the workflow engine what to do with the activity.
 
Approval Coordinator activity statesState Description
ExecutingThe workflow engine starts the execute function of the activity.
WaitingThe workflow engine ignores the activity until a specific event to restart the activity is fired.
FinishedThe activity finished running. See the result value for the outcome of the activity.
CancelledThis activity, or the workflow that contains this activity, was canceled.
ErrorA JavaScript error occurred. Review the logs for error details.




Please mark as Accepted Solution if this solves your query and HIT Helpful if you find my answer helped you. This will help other community mates too..:)

Hello, ive put it in the workflow but the activity is just skipping over before i can even approve the tasks created by the script

Sumanth16
Kilo Patron

Hin @HenryD ,

 

Please refer to below thread:

https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0693292

 

If I could help you with your Query then, please hit the Thumb Icon and mark it as Correct !!

 

Thanks & Regards,

Sumanth Meda

 

Hello, i believe i need to have in the wait for condition a script on the sc_task table, to when its "closed complete" or "pending" so it can move onto the IFs to then make its decision. ive attached a screenshot of where the wf is getting stuck if you can help