- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-16-2023 11:31 PM
Hi,
How to write on change client script to auto populate assignment group and assigned to based on caller on incident table.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-17-2023 12:49 AM - edited 01-17-2023 12:50 AM
@Alon Grod write an on change client script on called ID field and call a script include using glide ajax like below
Make sure your script include name is getStandardFields
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue == '') {
return;
}
//Type appropriate comment here, and begin script below
var ga = new GlideAjax('getStandardFields');//this is the script include
ga.addParam("sysparm_name", "getFields"); //this is the function within the script include
ga.addParam("sysparm_std", newValue);
ga.getXML(getResponse);
}
function getResponse(response) {
var values = response.responseXML.documentElement.getAttribute('answer');
g_form.setValue('assignment_group', values);
}
Script include :
Script Include: (Ensure the client callable checkbox is checked)
var getStandardFields = Class.create();
getStandardFields.prototype = {
getFields : function() {
var std = this.getParameter('sysparm_std');
var standardFields = new GlideRecord('sys_user_grmember');
standardFields.orderBy('sys_created_on');
standardFields.addQuery('user', std);
standardFields.query();
if(standardFields.next()) {
return standardFields.group.toString();
}
},
type: 'getStandardFields'
};
Hope this helps
Mark my answer correct if this helps you
Thanks

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-17-2023 12:28 AM
You need to write a client callable script include to achieve this.
Below is the code which can help you
Client script
var caller = g_form.getValue("caller_id);
var si = new GlideAjax("script include name");
si.addParam("sysparm_name","functionName");
si.addParam("sysparm_caller_id",caller);
si.getXMl(callback);
function callback(response){
var answer= response.responseXML.documentElement.getAttribute("answer");
g_form.setValue("assignment_group", answer);
}
Script include
var getCaller = this.getParameter('sysparm_caller_id'); //
var gr = new GlideRecord('sys_user_grmember_list');
gr.addQuery('user',getCaller);
gr.query();
if(gr.next()){
//Do your scripting to fetch assignment group
return assignmentGroup;
}else{
return false;
}
Please mark correct if my response has solved your query.
Cheers,
Mohammed Basheer Ahmed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-17-2023 12:49 AM
@Basheer Hi Im getting this error.
Client script:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
if (oldValue != newValue) {
var caller = g_form.getValue('caller_id');
var si = new GlideAjax("SetAssign");
si.addParam("sysparm_name", "isGroup");
si.addParam("sysparm_caller_id", caller);
si.getXMl(callback);
}
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue("assignment_group", answer);
g_form.setValue('assigned_to',g_form.getValue('caller_id'));
}
}
Script Include:
var SetAssign = Class.create();
SetAssign.prototype = Object.extendsObject(AbstractAjaxProcessor, {
isGroup: function(caller) {
var getCaller = this.getParameter('sysparm_caller_id'); //
var gr = new GlideRecord('sys_user_grmember_list');
gr.addQuery('user', getCaller);
gr.query();
if (gr.next()) {
return gr.group;
}
},
type: 'SetAssign'
});

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-17-2023 12:58 AM
In the scriptinclude you have written isGroup: function(caller)
it should be isGroup:function()
the correct table name is sys_user_grmember //Apologies form my previous reply where I've included _list as well.
var SetAssign = Class.create();
SetAssign.prototype = Object.extendsObject(AbstractAjaxProcessor, {
isGroup: function() {
var getCaller = this.getParameter('sysparm_caller_id'); //
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('user', getCaller);
gr.query();
if (gr.next()) {
return gr.group;
}
},
type: 'SetAssign'
});
Please mark correct if my response has solved your query.
Cheers,
Mohammed Basheer Ahmed.