- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-28-2023 09:43 AM - edited 03-28-2023 10:01 AM
Hi all,
We are trying to get the template name which is used to create change request using the field std_change_producer_version(proposal) it is a reference filed in the change form that is a reference field if open that record there will one template) std_change_producer which store the template name which is used in change record we are trying to fetch by dot walking like this ( current.std_change_producer_version.std_change_producer) but it is not working can anyone help us how to fetch the standard template name business rule using the field proposal.
var name = GlideTemplate.get(current.std_change_producer_version.std_change_producer);
var template_name = name.getDisplayName();
gs.log("Template lode using" +template name);
gs.log("template change type 1" + type_of_change);
if (type_of_change == 'standard') {
gs.log("template change type 2" +name);
var standard_template = new GlideRecord('std_change_template');
standard_template.addQuery('name' , template_name);
standard_template.query();
}
Anyone please
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-29-2023 03:32 AM
Here is the updated BR with a method getValueForKey(key).
(function executeRule(current, previous /*null when async*/ ) {
// Add your code here
var templateObjectArray = [];
var producer_version = new GlideRecord('std_change_producer_version');
if (producer_version.get(current.std_change_producer_version)) {
var template = new GlideRecord('std_change_record_producer');
if (template.get('sys_id', producer_version.std_change_producer)) {
gs.addInfoMessage('Template name ' + template.name);
var glideTemplate = new GlideRecord('std_change_template');
if (glideTemplate.get('name', template.getValue('name'))) {
var templateArray = glideTemplate.getValue('template').split('^');
for (var i = 0; i < templateArray.length; i++) {
var tempObject = {};
tempObject[templateArray[i].split('=')[0]] = templateArray[i].split('=')[1];
templateObjectArray.push(tempObject);
}
//gs.addInfoMessage(JSON.stringify(templateObjectArray));
}
}
//Following code shows how you should extract template fields
// for (var key = 0; key < templateObjectArray.length; key++) {
// gs.addInfoMessage('Field is <b>' + Object.keys(templateObjectArray[key])[0] + '</b> Value is <b>' + templateObjectArray[key][Object.keys(templateObjectArray[key])[0]]+'</b>');
// }
//Use the function here
gs.addInfoMessage('Field is <b>' + 'short_description' + '</b> Value is <b>' +getValueForKey('short_description') +'</b>');
}
//Function to get value for a specific key
function getValueForKey(key){
var valueForKey = '';
for(var k=0;k<templateObjectArray.length;k++){
var tempField = templateObjectArray[k];
if(Object.keys(tempField).indexOf(key)>-1){
valueForKey=tempField[key];
break;
}
}
return valueForKey;
}
})(current, previous);
In function getValueForKey(key) here key is the name of template field whose value you would like to extract
For e.g.
gs.addInfoMessage('Field is <b>' + 'short_description' + '</b> Value is <b>' +getValueForKey('short_description') +'</b>');
Here I am fetching the value of template field short_description by calling the method

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-28-2023 12:19 PM
Use the following code in the before business rule on change_request table to get the template name.
(function executeRule(current, previous /*null when async*/ ) {
// Add your code here
var producer_version = new GlideRecord('std_change_producer_version');
if (producer_version.get(current.std_change_producer_version)) {
var template = new GlideRecord('std_change_record_producer');
if (template.get('sys_id', producer_version.std_change_producer)) {
gs.addInfoMessage('Template name ' + template.name);
}
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-29-2023 01:12 AM
Hi,
Thanks for the reply the given code is working i need one more thing after retrieving the template name i need retrieve the template from std_change_template table and i need to get value of that template how we can achieve this

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-29-2023 02:04 AM
Here is the updated business script.
(function executeRule(current, previous /*null when async*/ ) {
// Add your code here
var templateObjectArray = [];
var producer_version = new GlideRecord('std_change_producer_version');
if (producer_version.get(current.std_change_producer_version)) {
var template = new GlideRecord('std_change_record_producer');
if (template.get('sys_id', producer_version.std_change_producer)) {
gs.addInfoMessage('Template name ' + template.name);
var glideTemplate = new GlideRecord('std_change_template');
if (glideTemplate.get('name', template.getValue('name'))) {
var templateArray = glideTemplate.getValue('template').split('^');
for (var i = 0; i < templateArray.length; i++) {
var tempObject = {};
tempObject[templateArray[i].split('=')[0]] = templateArray[i].split('=')[1];
templateObjectArray.push(tempObject);
}
//gs.addInfoMessage(JSON.stringify(templateObjectArray));
}
}
//Following code shows how you should extract template fields
for (var key = 0; key < templateObjectArray.length; key++) {
gs.addInfoMessage('Field is <b>' + Object.keys(templateObjectArray[key])[0] + '</b> Value is <b>' + templateObjectArray[key][Object.keys(templateObjectArray[key])[0]]+'</b>');
}
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-29-2023 02:59 AM
Hi @Sandeep Rajput ,
how to retrieve value for specific key for example if key is 'environment'. we need to fetch the value of that key
Thanks