How to update Workflow version of existing records with skipping approval and task creation activities?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-04-2022 07:13 AM
Hello,
I have a number of ritms with workflow which is in faulty state. I have created a newer version of the workflow which works just fine. How do I update ritms workflow version(in faulty state) with skipping the approval activity as well as task creation activity?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-04-2022 07:27 AM
That is not possible as instance of old workflow is running. Cancel all those contexts and resubmit the form to trigger the updated workflow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-04-2022 07:35 AM
Hi
Refer to this thread for explanation :https://community.servicenow.com/community?id=community_question&sys_id=b29ac32ddb5cdbc01dcaf3231f96...
You can run a Background script something like this, but this works for one record:
var gr = new GlideRecord("sc_req_item");
gr.addQuery("sys_id", "6eea0285db419c10053830cf9d9634d4");
gr.query();
if (gr.next()) {
new WorkflowApprovalUtils().cancel(gr);
new Workflow().startFlow(new Workflow().getWorkflowFromName('myWorkflowName'), gr, '');
}
Also,
You can run the glide query inside a for loop. Please see the example below:
var sysIDs = "sys_id_0,sys_id_1,sys_id_2";
// Convert the above string into an array
var arr = sysIDs.split(',');
for (var i = 0; i < arr.length; i++) {
var gr = new GlideRecord("sc_req_item");
gr.addQuery("sys_id", arr[i].toString());
gr.query();
if (gr.next()) {
new WorkflowApprovalUtils().cancel(gr);
new Workflow().startFlow(new Workflow().getWorkflowFromName("<Name of the Workflow>"), gr, '');
}
}
Mark my answer correct & Helpful, if Applicable.
Thanks,
Sandeep