cannot get change record sys id when created from workflow

Saranya2
Tera Contributor

Hi All,

we have a catalog item, from there we will create change request once sctask is closed complete. I have written below code. It is creating change request, but i couldn't get sys id of the change record. I need to use the change record sys id in other activity. i am not sure what i have done mistakes. can anyone please help me for debugging.

also I have tried to get change number, I am not able to get it, it is returning as undefined.

 

var chg = new GlideRecord('change_request');
chg.newRecord();
chg.parent = current.sys_id;
if (current.variables.risk == "true")
    chg.risk = 2;

var ven_conn_type = current.variables.is_the_vendor_connectivity_type_checkpoint_client_based_vpn;

if (ven_conn_type == 'Yes') {
    var std_temp = new GlideRecord('std_change_record_producer');
    if (std_temp.get(gs.getProperty('fedex.firewall.sys_id.changetemplate1'))) {
        chg.std_change_producer_version = std_temp.current_version;
    }

chg.requested_by = current.request.requested_for;
chg.assigned_to = workflow.scratchpad.change_assignee;
if (chg.insert()) {
    var attachments = new GlideRecord('sys_attachment');
    if (attachments.get('table_sys_id', current.sys_id)) {      
        var attach = new GlideSysAttachment();
        attach.copy('sc_req_item', current.sys_id, 'change_request', chg.getUniqueValue());
              }
      chg.update();
}
workflow.scratchpad.parent_chgreq = chg.sys_id;
current.comments = "Change Request-" + chg.number + " has been created for " + current.number + ".";

 

Thanks,

Saranya

12 REPLIES 12

This is not your full code is it? Because if running this:

 

Javascript compiler exception: missing } in compound statement (null.null.script; 

 

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

hi @Mark Roethof,

 

below is the full code

 

var chg = new GlideRecord('change_request');
chg.newRecord();
chg.parent = current.sys_id;
if (current.variables.risk == "true")
    chg.risk = 2;

 

var ven_conn_type = current.variables.is_the_vendor_connectivity_type_checkpoint_client_based_vpn;
if (ven_conn_type == 'Yes') {
    var std_temp = new GlideRecord('std_change_record_producer');
    if (std_temp.get(gs.getProperty('fedex.firewall.sys_id.changetemplate1'))) {
        chg.std_change_producer_version = std_temp.current_version;
    }

chg.requested_by = current.request.requested_for;
chg.assigned_to = workflow.scratchpad.change_assignee;
chg.watch_list = current.watch_list;
if (chg.insert()) {
    var attachments = new GlideRecord('sys_attachment');
    if (attachments.get('table_sys_id', current.sys_id)) {
         var attach = new GlideSysAttachment();
        attach.copy('sc_req_item', current.sys_id, 'change_request', chg.getUniqueValue());
        
    }
      chg.update();
}
workflow.scratchpad.parent_chgreq = chg.sys_id;
current.comments = "Change Request-" + chg.number + " has been created for " + current.number + ".";

Have you tried debugging when moving the code, if workflow.scratchpad.parent_chgreq does hold the change sys_id? And that only the current.comments is the issue?

 

I think that is correct. At least because there is no update after the current.comments etc..

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

yes, I have tried debugging, workflow.scratchpad.parent_chgreq is not holding sys id, getting undefined value in the logs for  chg.sys_id, chg.getUniqueValue(), chg.number.

When I strip your code from the parts that I cannot test, it works fine. If ofcourse I move both lines of code inside the if. And current.comments might need to be provided with a following current.update() (not sure since I don't have your setup).

 

So I think something else in the code is breaking it. Did you try applying log statements to debug? Or is for example the attachment correctly created?

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn