How to Get Reference field values

Pratik Parikh
Tera Contributor

name  & approver Variable are  Reference field from sys_user.

how can I get  All Department head name as approver for choice onChange client Script?

 

find_real_file.png

Here I teste GlideAjax but i get only one Approver but i can not get other Department Head.

 

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

    ApproverAjax: function() {
        var grUser = new GlideRecord('sys_user');
        var userSysID = this.getParameter('sysparm_Test1');
        grUser.addQuery('sys_id', userSysID);
        grUser.query();

        
        while (grUser.next()) {
        
            return grUser.department.dept_head.getValue('sys_id');

        }

    },
    type: 'Print_Approver'
});

 

 

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

    var ga = new GlideAjax('Print_approver');
    ga.addParam('sysparm_name', 'ApproverAjax');
    ga.addParam('sysparm_Test1', g_form.getValue('name'));
    ga.getXML(TestCallBack);

    function TestCallBack(response) {
        var answer = response.responseXML.documentElement.getAttribute('answer');
        g_form.setValue('approver',answer);
    }

}

 

1 ACCEPTED SOLUTION

Mohith Devatte
Tera Sage
Tera Sage

hello @Pratik Parikh ,

you want to return the head of the department for the selected name in the name field right ?

is that your requirement ?

if yes what you have done is correct .

but can you explain in detail about this below statement?

but i get only one Approver but i can not get other Department Head.

 

View solution in original post

5 REPLIES 5

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

you want to filter Approver OR you want to set it?

If you want to filter -> then use advanced ref qualifier

javascript: 'sys_id=' + current.variables.name.department.dept_head;

If you want to set then update script as this

ApproverAjax: function() {
		var grUser = new GlideRecord('sys_user');
		var userSysID = this.getParameter('sysparm_Test1');
		grUser.addQuery('sys_id', userSysID);
		grUser.query();
		if (grUser.next()) {
			return grUser.department.dept_head.toString();
		}
	},

Client script

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

	var ga = new GlideAjax('Print_approver');
	ga.addParam('sysparm_name', 'ApproverAjax');
	ga.addParam('sysparm_Test1', g_form.getValue('name'));
	ga.getXMLAnswer(TestCallBack);

	function TestCallBack(response) {
		var answer = response;
		g_form.setValue('approver',answer);
	}

}

Regards
Ankur

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