How to auto populate assignment group and assigned to based on caller

Alon Grod
Tera Expert

Hi,

 How to write on change client script to auto populate assignment group and assigned to based on caller on incident table. 

1 ACCEPTED SOLUTION

@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

View solution in original post

7 REPLIES 7

Basheer
Mega Sage

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 hit like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

Cheers,
Mohammed Basheer Ahmed.

@Basheer Hi Im getting this error.

Screen Shot 2023-01-17 at 10.49.18.png

 

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'
});

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 hit like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

Cheers,
Mohammed Basheer Ahmed.