Restarting the Updated Workflow

Burhan Shah
Tera Contributor

Dear Community,

 

I have updated a specific catalog item workflow. The new RITMs are following the updated workflow.

 

How can I restart the workflow with the updated workflow for the previous RITMs. There are almost 18 RITMs that were submitted with the old workflow.

 

Is there a way to trigger/restart the updated workflow for the existing RITMs?

 

Regards,

Burhan

2 REPLIES 2

SN_Learn
Kilo Patron
Kilo Patron

Hi @Burhan Shah ,

 

Please check the below post and try it in non-prod instance/environment first, hopefully it will fulfill your requirement.

 

How to delete and attach a new workflow in the RITM 

 

 

----------------------------------------------------------------
Mark this as Helpful / Accept the Solution if this helps.

LAXMI TODAKAR2
Tera Contributor

Hi @Burhan Shah ,

 

There are 2 ways to restart workflows.

  1. No code.

    • Delete the workflow context record. I do this by going to the record in question. E.g. /sc_req_item.do?sysparm_query=number=RITM0012345
    • Click into the "Show Workflow Context" UI Action Link (above the related lists)
    • Click Delete on the top right of the workflow context record !!! BE SURE YOU'RE ON THE WF_CONTEXT !!!
    • Goto the RITM and update the stage to request_approved
    • That's it.
  2. With Code.

    • Delete the workflow context record. I do this by going to the record in question. E.g. /sc_req_item.do?sysparm_query=number=RITM0012345
    • Click into the "Show Workflow Context" UI Action Link (above the related lists)
    • Click Delete on the top right of the workflow context record !!! BE SURE YOU'RE ON THE WF_CONTEXT !!!
    • Goto the wf_workflow.list table and find the workflow you want to start, copy it's sys_id.
    • Run this script in a background script;

 

 

 

var current = new GlideRecord('sc_req_item');
  current.get('number','RITM0012345');
  var id = 'cfe7a62f13958340f415345fd144b075';//wf_workflow sys_id here
  var w = new Workflow();
  var context = w.startFlow(id, current, current.operation(), function(){
      var vars = {};
      for (var n in current.variables) 
          vars[n] = current.variables[n];
      return vars;
  });