- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-02-2019 06:55 AM
HI all,
I have a requirement that "sys_template" fields values needs to populate on "incident" inbound email action
Please find the below script for that but it is not working..This script i have written in my inbound action (this inbound placed in incident table)
u_template is a reference field in incident table
var template_id = '4e0f98cddbbbab0022f5d404ca9619e9';
var systemp = new GlideRecord('sys_template');
systemp.addQuery('sys_id',template_id);
systemp.query();
gs.addInfoMessage("number of templates:"+systemp.getRowCount());
if(systemp.next()){
var IncRec = new GlideRecord('incident');
IncRec.addQuery('u_template.sys_id',template_id );
IncRec.query();
gs.addInfoMessage("temp sys_id is:"+IncRec);
gs.addInfoMessage("number of templates:"+IncRec.getRowCount());
if(IncRec.next()){
IncRec.state = systemp.state;
gs.addInfoMessage("checking template state:"+IncRec.state);
IncRec.short_description = systemp.short_description;
gs.addInfoMessage("checking template short description:"+IncRec.short_description);
var id = IncRec.insert();
}
}
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2019 04:38 AM
Hi Srisk,
Actually, you can use a OOB Function ApplyTemplate to apply it to your incident. Here is how you can do this.
var template_name = 'Your Template Name'; // in place of sys_id mention your template name.
var IncRec = new GlideRecord('incident');
IncRec.applyTemplate(template_name);
IncRec.update();
Mark the comment as a correct answer and also helpful once worked.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2019 12:32 AM
If you want to set values for that template, then you don't' need to use addQuery in the incident table. you can simply check if the template exists, if yes then simply create a incident and set the template.
Try the below code.
var template_id = '4e0f98cddbbbab0022f5d404ca9619e9';
var systemp = new GlideRecord('sys_template');
systemp.addQuery('sys_id',template_id);
systemp.query();
gs.log("number of templates:"+systemp.getRowCount());
if(systemp.next()){
var IncRec = new GlideRecord('incident');
IncRec.initialize();
IncRec.state = systemp.state;
IncRec.u_template = systemp.sys_id; //you can also use tmeplate_id directly here, but best not to hard code.
gs.log("checking template state:"+IncRec.state);
IncRec.short_description = systemp.short_description;
gs.log("checking template short description:"+IncRec.short_description);
var id = IncRec.insert();
}
Mark the comment as a correct answer and also helpful once worked.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2019 02:47 AM
Sure Asif... I will try this and let you know
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2019 02:54 AM
Asif, I have tried your script with removing addQuery still i am able to get script execute up to this log
gs.log("number of templates:"+systemp.getRowCount());

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2019 03:00 AM
Hi,
did you use the latest code that I have given?
If yes, then i think the rowCount might be 0 and not 1. can you check that once?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2019 03:30 AM
Yes i have checked asif the row count is comming 1 not 0