How to redirect from ui action to a record of a table?

jenny32
Tera Guru

I have a requirement, from UI Action i need to get other table record, by taking sys_id as reference from current table, if no matching exist for provided sys_id then new record is to be created.

createRCA();

function createRCA() {

  var proj = new GlideRecord("u_rca");

  rca.addQuery('u_problem_description',current.number);

  rca.query();

  while(rca.next()){

    if(rca.u_incident_number==current.number)

    {

    action.setRedirectURL(rca);

    action.setReturnURL(current);

    }

    else

    {

    rca.u_incident_number=current.sys_id;

    rca.u_problem_description = current.short_description;

    var sysID = proj.insert();

   

    current.parent = sysID;

    var mySysID = current.update();

   

    gs.addInfoMessage("RCA " + rca.number + " created");

    action.setRedirectURL(rca);

    action.setReturnURL(current);

    }

    }

}

This works fine without while and if else, for only else part new record is created, what need to be done, to create new record?

Please respond.

Regards,

jenny

1 ACCEPTED SOLUTION

guhann
Mega Guru

Jenni,



Try the below code,



createRCA();



function createRCA() {


  var rca = new GlideRecord("u_rca");


  rca.addQuery('u_incident_number',current.sys_id);


  rca.query();



  if(rca.next()){    


  action.setRedirectURL(rca);


  action.setReturnURL(current);


  }    


  else {


      rca.inititalize();


      rca.u_incident_number = current.sys_id;


      rca.u_problem_description = current.short_description;


      var sysID = rca.insert();


   


      current.parent = sysID;


      var mySysID = current.update();


   


      gs.addInfoMessage("RCA " + rca.number + " created");


      action.setRedirectURL(rca);


      action.setReturnURL(current);


  }


}


View solution in original post

3 REPLIES 3

guhann
Mega Guru

Jenni,



Try the below code,



createRCA();



function createRCA() {


  var rca = new GlideRecord("u_rca");


  rca.addQuery('u_incident_number',current.sys_id);


  rca.query();



  if(rca.next()){    


  action.setRedirectURL(rca);


  action.setReturnURL(current);


  }    


  else {


      rca.inititalize();


      rca.u_incident_number = current.sys_id;


      rca.u_problem_description = current.short_description;


      var sysID = rca.insert();


   


      current.parent = sysID;


      var mySysID = current.update();


   


      gs.addInfoMessage("RCA " + rca.number + " created");


      action.setRedirectURL(rca);


      action.setReturnURL(current);


  }


}


Hi guhan i need to pass view name also, when we redirect to rca.



view name is RCA



I tried doing using url it is not working can u help me out. Please


Jenni,



Just replace the setRedirectURL in your code with below.



action.setRedirectURL('https://'+gs.getProperty('instance_name')+'.service-now.com/u_rca.do?sys_id='+rca.sys_id+'&sysparm_view=RCA');