- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
07-20-2022 09:42 AM
If user selects any Requester in 'USER NAME' field. Then 'Line Manager' field should be auto populated with requester Manager. PFA
My Code is :
Script Include:
 var getUserDetails = Class.create();
getUserDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {   
getManager:function() {
        var user = this.getParameter('sysparm_manager');
        gs.log('USER Manager :'+user);
        var mgr = new GlideRecord('sys_user');
        mgr.addQuery('manager', user);
        mgr.addQuery();
        gs.log('manager1 :' + mgr.manager);
        if(mgr.next()){
            gs.log('manager2 :' + mgr.manager);
            return mgr.manager;
        }
} ,
    type: 'getUserDetails'
});
OnChange Client script:
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading) {
        return;
    }
    if (newValue == '') {
        g_form.clearValue('linemanager');
    }
    var ga = new GlideAjax('getUserDetails');
    ga.addParam('sysparm_manager', 'getManager');
    ga.addParam('sysparm_manager', g_form.getValue('user_name'));
    ga.getXML(getManagerDetails);
}
function getManagerDetails(response) {
    var mgrVal = response.responseXML.documentElement.getAttribute("answer");
     alert(mgrVal);
    g_form.setValue("linemanager", mgrVal);
}
Please help on this
Solved! Go to Solution.
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
07-20-2022 10:23 AM
Hello Suresh
please replace this line mg.addQuery(); WITH mg.query(); in the script include and try
Please mark my answer correct if it helps you
Just replace your script include to below
var getUserLineManager = Class.create();
getUserLineManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getManager:function() {
        var user = this.getParameter('sysparm_req');
        var mg = new GlideRecord("sys_user");
        mg.addQuery("sys_id", user);
        mg.query();
        if(mg.next()){
            return mg.manager.toString();
        }
    },
    type: 'getUserLineManager'
});
Please mark my answer correct if it helps you
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
07-20-2022 09:49 AM
Hello,
You can write an on change client script on requestor field and call a script include for this using glide ajax
Client script:
function onChange(control, oldValue, newValue, isLoading) {
	if (isLoading) {
		return;
	}
	if(newValue == ''){
		g_form.clearValue('manager_field_name');
	}
	var ga = new GlideAjax('getUserLineManager');
	ga.addParam('sysparm_name', "getManager");
	ga.addParam('sysparm_req', g_form.getValue('requestor_field_back_end_name'));
	ga.getXMLAnswer(function(answer){
		
			g_form.setValue("manager_field_name", answer);
		
	});
	
}
Script include:
var getUserLineManager = Class.create();
getUserLineManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
	getManager:function() {
		var user = this.getParameter('sysparm_req');
		var mg = new GlideRecord("sys_user");
		mg.addQuery("sys_id", user);
		mg.addQuery();
		if(mg.next()){
			return mg.manager.toString();
		}
	} ,
	type: 'getUserLineManager'
});
Please mark my answer correct if it helps you
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
07-20-2022 10:15 AM
var getUserLineManager = Class.create();
getUserLineManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getManager:function() {
        var user = this.getParameter('sysparm_req');
        var mg = new GlideRecord("sys_user");
        mg.addQuery("sys_id", user);
        mg.addQuery();
        if(mg.next()){
            return mg.manager.toString();
        }
    },
    type: 'getUserLineManager'
});
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading) {
        return;
    }
    if(newValue == ''){
        g_form.clearValue('linemanager');
    }
    var ga = new GlideAjax('getUserLineManager');
    ga.addParam('sysparm_name', "getManager");
    ga.addParam('sysparm_req', g_form.getValue('user_name'));
    ga.getXMLAnswer(function(answer){
        alert(answer);
            g_form.setValue("linemanager", answer);
        
    });
    
}
i am getting answer as 'null' value
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
07-20-2022 10:23 AM
Hello Suresh
please replace this line mg.addQuery(); WITH mg.query(); in the script include and try
Please mark my answer correct if it helps you
Just replace your script include to below
var getUserLineManager = Class.create();
getUserLineManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getManager:function() {
        var user = this.getParameter('sysparm_req');
        var mg = new GlideRecord("sys_user");
        mg.addQuery("sys_id", user);
        mg.query();
        if(mg.next()){
            return mg.manager.toString();
        }
    },
    type: 'getUserLineManager'
});
Please mark my answer correct if it helps you
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
07-20-2022 09:54 AM
Hi Suresh,
Just change this line in client script
ga.addParam('sysparm_manager', 'getManager');
to
ga.addParam('sysparm_name', 'getManager');
Mark as correct and helpful if it solved your query.
Regards,
Sumanth
