GlideAjax returning null value

Satanik1
Giga Guru

Hello,

I am new in scripting. I have been trying the below code, but its returning null value. What wrong I am doing?

Script Include:

var AssignmentGroupName = Class.create();
AssignmentGroupName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	getName: function() {
  var gr = new GlideRecord("Group");
  gr.get(this.getParameter('sysparm_username'));
  return gr.name;
 },
	
    type: 'AssignmentGroupName'
});

 

Client Script:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '') {
      return;
   }

	var ga = new GlideAjax('AssignmentGroupName');
	ga.addParam('sysparm_name','getName');
	ga.addParam('sysparm_username',g_form.getValue('assignment_group'));
	ga.getXML(GroupNameParse);
	//alert("Group: "+g_form.getValue('assignment_group'));
	
	function GroupNameParse(response){
		var output = response.responseXML.documentElement.getAttribute("answer");
		alert("Group Name: "+output);
	}
}
1 ACCEPTED SOLUTION

Satanik1
Giga Guru

Hello Everybody,

 

Thank you so much to each one of you for helping me in resolving the issue.

Finally I got the resolution from another forum post itself. My script is working. But can somebody please tell me why the usual way did not work and below two lines have worked?

 

this.getRootElement().setAttribute('groupinfo',x); (Script Include)

response.responseXML.documentElement.getAttribute("groupinfo"); (Client Script)

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    var ga = new GlideAjax('AssignmentGroupName');
    ga.addParam('sysparm_name', 'getName');
    ga.addParam('sysparm_grpname',g_form.getValue('assignment_group'));
    ga.getXML(GroupNameParse);
   
 
    function GroupNameParse(response) {
        var answer = response.responseXML.documentElement.getAttribute("groupinfo");
        alert(answer);
		g_form.setValue('short_description',answer);
   
}
}

 

Script Include:

var AssignmentGroupName = Class.create();
AssignmentGroupName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	getName: function() {
		
		var x = '';
		gs.addInfoMessage('Entered the script');
		var gr = new GlideRecord("sys_user_group");
		gr.addQuery('sys_id',this.getParameter('sysparm_grpname'));
		gr.query();
		
		if(gr.next()){
			gs.addInfoMessage('Entered the IF');
			x = gr.getValue('name');
			gs.addInfoMessage(x);
			this.getRootElement().setAttribute('groupinfo',x);
			//return x;
		}
//  gr.get(this.getParameter('sysparm_grpname'));
return x;
 },
	
    type: 'AssignmentGroupName'
});

View solution in original post

11 REPLIES 11

Hi,

onChange client script

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}

var assignmentGrp=g_form.getReference('assignment_group').name;
var ga = new GlideAjax('AssignmentGroupName');
ga.addParam('sysparm_name','getName');
ga.addParam('sysparm_grpname',assignmentGrp);
ga.getXML(callback);
function callback(response)
{
var answer = response.responseXML.documentElement.getAttribute("answer");

alert("Group name is = "+ answer);
}

}

 

 

Script include

 

var AssignmentGroupName= Class.create();
AssignmentGroupName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getName : function()
{
var grp = this.getParameter('sysparm_grpname');
var gr = new GlideRecord('sys_user_group');
gr.addQuery('name',grp);
gr.query();
while(gr.next())
{
return gr.name;
}
},

type: 'AssignmentGroupName'
});

 

Thanks,

Dhananjay.

Hi,

what is present in this variable? sysparm_grpname

the onchange script is on string field or reference field?

If it is sys_id then use this

getName: function() {
  var gr = new GlideRecord("sys_user_group");
  gr.get(this.getParameter('sysparm_grpname'));
  return gr.name;
 },

if it is name then use this

getName: function() {
  var gr = new GlideRecord("sys_user_group");
  gr.get('name',this.getParameter('sysparm_grpname'));
  return gr.name;
 },

Rest all looks good

Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

DScroggins
Kilo Sage

Hello please update your script include to the following:

var AssignmentGroupName = Class.create();
AssignmentGroupName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	getName: function() {
  var gr = new GlideRecord("sys_user_group");
  gr.get(this.getParameter('sysparm_grpname'));
  return gr.getValue('name');
 },
	
    type: 'AssignmentGroupName'
});

 

 

Alok Das
Tera Guru

Hi Satanik,

PLease use the below script and let us know if you face any issue.

Client Script:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    var ga = new GlideAjax('AssignmentGroupName');
    ga.addParam('sysparm_name', 'getName');
    ga.addParam('sysparm_grpname', newValue);
    ga.getXML(GroupNameParse);
}

function GroupNameParse(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
    alert("Group Name: " + answer);
}

Script Include:

var AssignmentGroupName = Class.create();
AssignmentGroupName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getName: function() {
        var gr = new GlideRecord("sys_user_group");
        gr.get(this.getParameter('sysparm_grpname'));
        return gr.name;
    },
    type: 'AssignmentGroupName'
});

 

Please make sure that the selected field on the client script is assignment group. If it's based on the onChange of some other field then you need to replace newValue in line no 8 of client script to g_form.getValue('assignment_group').

Kindly mark my answer as Correct and Helpful based on the Impact.

Regards,

Alok

Satanik1
Giga Guru

Hello Everybody,

 

Thank you so much to each one of you for helping me in resolving the issue.

Finally I got the resolution from another forum post itself. My script is working. But can somebody please tell me why the usual way did not work and below two lines have worked?

 

this.getRootElement().setAttribute('groupinfo',x); (Script Include)

response.responseXML.documentElement.getAttribute("groupinfo"); (Client Script)

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    var ga = new GlideAjax('AssignmentGroupName');
    ga.addParam('sysparm_name', 'getName');
    ga.addParam('sysparm_grpname',g_form.getValue('assignment_group'));
    ga.getXML(GroupNameParse);
   
 
    function GroupNameParse(response) {
        var answer = response.responseXML.documentElement.getAttribute("groupinfo");
        alert(answer);
		g_form.setValue('short_description',answer);
   
}
}

 

Script Include:

var AssignmentGroupName = Class.create();
AssignmentGroupName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	getName: function() {
		
		var x = '';
		gs.addInfoMessage('Entered the script');
		var gr = new GlideRecord("sys_user_group");
		gr.addQuery('sys_id',this.getParameter('sysparm_grpname'));
		gr.query();
		
		if(gr.next()){
			gs.addInfoMessage('Entered the IF');
			x = gr.getValue('name');
			gs.addInfoMessage(x);
			this.getRootElement().setAttribute('groupinfo',x);
			//return x;
		}
//  gr.get(this.getParameter('sysparm_grpname'));
return x;
 },
	
    type: 'AssignmentGroupName'
});