The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Returning values from script include in client script

Anna Gausel
Giga Expert

My script include is getting values from the 'sys_user' table and 'cmdb_ci_computer' table. However the values are not returning (and not returning in my log statements).

I'm just trying to return one of the functions form my script include in my client script, but am getting a js console error: 'Unhandled exception in GlideAjax.' - old_function(text);

Need help to troubleshoot it. My client script is:

function onChange(control, oldValue, newValue, isLoading) {
	//call script include to return user fields
	var ga = new GlideAjax('ITSMws1Fields');
	ga.addParam('sysparm_name','getPosition');
	ga.addParam("sysparm_user", newValue);
	ga.getXMLAnswer(setField);
}
//set position and location field values
function setField(response) {
	var answer = response;
	if (answer != '') {
		g_form.setValue('position_title', position);
		
	}
	
}

My script include set to client callable and is:

var ITSMws1Fields = Class.create();
ITSMws1Fields.prototype = Object.extendsObject(AbstractAjaxProcessor, {
	
	getPosition: function() {
		var user_id = this.getParameter('sysparm_user');
		var position = '';
		var gr = new GlideRecord('sys_user');
		gr.addQuery('title');
		gr.query();
		
		if(gr_user.get(user_id)) {
			position = title; }
			
		gs.log('postion');	
		
			return position;
	},
	
	getLocation: function() {
		var user_id = this.getParameter('sysparm_user');
		var work_location = '';
		var gr = new GlideRecord('sys_user');
		gr.addQuery('location');
		gr.query();
		
		if(gr_user.get(user_id)) {
			work_location = location; }
			
		gs.log('location');	
		
			return location;
	},
	
	getComputer: function(user_id) {
	  var ans = '';
	  var gr_computer = new GlideRecord('cmdb_ci_computer');
	  if(gr_computer.get('assigned_to', user_id))
		  ans = gr_computer.getUniqueValue();
		 gs.log('ans');
	  return ans;
	},
	
	type: 'ITSMws1Fields'
});

cheers

11 REPLIES 11

Ankur Sharma
Tera Guru
GlideRecord variable is defined as gr in getPosition and getLocation function but if statement is using g_user variable. Please change it to gr and try. Let me know if it helps.

Hi Ankur,

Thanks - I've changed it, but am still not getting the correct values returned.

getPosition: function() {
		var user_id = this.getParameter('sysparm_user');
		var position = '';
		var gr = new GlideRecord('sys_user');
		gr.addQuery('title', getDisplayValue);
		gr.query();
		
		gs.log('title'); //nothing returned
		
		if(gr.get(user_id)) {
			position = title; }
			
		gs.log('AG:  ' + title); //noting returned	
		
			return value; //nothing returned
	},

 

try this

getPosition: function(){

var position = '';

var user_id = this.getParameter('sysparm_user');

var gr = new GlideRecord('sys_user');

gr.get(user_id);

position = gr.getDisplayValue('title');

return position;

},

Thanks Gareth. I've tried and that is not returning the position either. Looking at the full script - for the getComputer function - i'm returning the string 'computer' instead of the value as well. 

 

var ITSMws1Fields = Class.create();
ITSMws1Fields.prototype = Object.extendsObject(AbstractAjaxProcessor, {
	
	// 	getPosition: function() {
		// 		var user_id = this.getParameter('sysparm_user');
		// 		var position = '';
		// 		var gr = new GlideRecord('sys_user');
		// 		gr.addQuery('title', getDisplayValue);
		// 		gr.query();
		
		// 		gs.log('title');
		
		// 		if(gr.get(user_id)) {
			// 			position = title; }
			
			// 		gs.log('AG:  ' + title);
			
			// 			return postion;
			// 	},
			
			getPosition: function(){
				var gr = new GlideRecord('sys_user');
				gr.get(user_id);
				position = gr.getDisplayValue('title');
				gs.log('position');
				return position;
			},
			
			getLocation: function() {
				var user_id = this.getParameter('sysparm_user');
				var work_location = '';
				var gr = new GlideRecord('cmn_location');
				gr.addQuery('name');
				gr.query();
				
				if(gr.get(user_id)) {
					work_location = name; }
					
					gs.log('work_location');
					
					return work_location;
				},
				
				getComputer: function(user_id) {
					var computer = '';
					var gr_computer = new GlideRecord('cmdb_ci_computer');
					if(gr_computer.get('assigned_to', user_id))
						computer = gr_computer.getDisplayValue();
					gs.log('computer');
					return computer;
				},
				
				type: 'ITSMws1Fields'
			});