Glide AJAX returning object, object

Pablo H
Tera Contributor

 

Hello,

I have a client script and script include returning a user's primary group,reference field to sys_user_grmember, and populate it to the assignment group. However, my script is returning [object, object] and this result in not being able to populate assignment group and assigned to the field.

Can you help me to find out what's wrong here?

Script include

var GetUserPrimaryGroup = Class.create();
GetUserPrimaryGroup.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getEmployeeDetails: function() {
        var userName = this.getParameter('sysparm_assigned_to');
        var user = new GlideRecord('sys_user');
        var result = { 
            primaryGroup: "",
        
        };
        if (user.get(userName)) { 
            result.primaryGroup = user.u_primary_group.toString(); 
			gs.info(result);
        }
        return JSON.stringify(result);

    },
    type: 'GetUserPrimaryGroup'
});

Client script

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
	var assigned_user = g_form.getValue('assigned_to');
	var ga = new GlideAjax('GetUserPrimaryGroup');
	ga.addParam('sysparm_name', 'getEmployeeDetails');
	ga.addParam('sysparm_assigned_to', assigned_user);
	ga.getXML(EmployeeDetailsLookup); 
}


function EmployeeDetailsLookup(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	var result = JSON.parse(answer);
	g_form.setValue('assignment_group',result.primaryGroup);
}
1 ACCEPTED SOLUTION

Sai Kumar B
Mega Sage
Mega Sage

@Pablo H 

Try the below

var GetUserPrimaryGroup = Class.create();
GetUserPrimaryGroup.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getEmployeeDetails: function() {
var group='';
        var userName = this.getParameter('sysparm_assigned_to');
        var user = new GlideRecord('sys_user');
        if (user.get(userName)) { 
           group = user.getValue('u_primary_group');
        }
        return group;
    },
    type: 'GetUserPrimaryGroup'
});
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
	var assigned_user = g_form.getValue('assigned_to');
	var ga = new GlideAjax('GetUserPrimaryGroup');
	ga.addParam('sysparm_name', 'getEmployeeDetails');
	ga.addParam('sysparm_assigned_to', assigned_user);
	ga.getXML(EmployeeDetailsLookup); 
}


function EmployeeDetailsLookup(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	g_form.setValue('assignment_group',answer);
}

View solution in original post

5 REPLIES 5

Sai Kumar B
Mega Sage
Mega Sage

@Pablo H 

Try the below

var GetUserPrimaryGroup = Class.create();
GetUserPrimaryGroup.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getEmployeeDetails: function() {
var group='';
        var userName = this.getParameter('sysparm_assigned_to');
        var user = new GlideRecord('sys_user');
        if (user.get(userName)) { 
           group = user.getValue('u_primary_group');
        }
        return group;
    },
    type: 'GetUserPrimaryGroup'
});
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
	var assigned_user = g_form.getValue('assigned_to');
	var ga = new GlideAjax('GetUserPrimaryGroup');
	ga.addParam('sysparm_name', 'getEmployeeDetails');
	ga.addParam('sysparm_assigned_to', assigned_user);
	ga.getXML(EmployeeDetailsLookup); 
}


function EmployeeDetailsLookup(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	g_form.setValue('assignment_group',answer);
}

Hello @Sai Kumar B ,

its returning the correct group sys_id but its the client script is not changing the value of the Assignment group, any idea?:)

find_real_file.png

I did not get your point

When I populate assigned to field, then the client script should automatically populate assignment group based on the users primary group. However, this is not working.