Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Calling Script Include from catalog client script

chidanandadhath
Kilo Guru

I have below Catalog client script which calls the script include. I'm getting the answer as null

function onChange(control, oldValue, newValue, isLoading) {
	
	if(newValue == oldValue) {
		return;
	}
	var answer_json = [];
	var gaj = new GlideAjax('x_113476_managed_c.getCiClass');
	gaj.addParam('sysparm_name','getPrimaryCiClass');
	gaj.getXML(ajaxResponse);
	function ajaxResponse(response) {
		var answer = response.responseXML.documentElement.getAttribute("answer");
		alert(answer);
		if(answer) {
			answer_json = answer.evalJSON();
			//alert(answer_json);
		}
		
	}
	
	var collectorName = 'CIs';
	var filterString = 'sys_class_nameIN'+answer_json;
	
	try{
		var myListCollector = g_list.get(collectorName);
		myListCollector.reset();
		myListCollector.setQuery(filterString);
	}
	
	catch(e){
		
		window[collectorName + 'g_filter'].reset();
		window[collectorName + 'g_filter'].setQuery(filterString);
		window[collectorName + 'acRequest'](null);
	}
}
//}

Script include

var getCiClass = Class.create();
getCiClass.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
	
	initialize: function() {
	},
	
	getPrimaryCiClass : function()
	{
		gs.addInfoMessage('calling script include');
		var strCiClass = '';
		var arrConfigItemClass = [];
		var grPrimaryCiClass = new GlideRecord('x_113476_managed_c_managedciclass');
		grPrimaryCiClass.addActiveQuery();
		grPrimaryCiClass.addQuery('primary_ci_class',true);
		grPrimaryCiClass.query();
		while (grPrimaryCiClass.next())
			{
			strCiClass = grPrimaryCiClass.ci_class;
			arrConfigItemClass.push(strCiClass.toString());
			
			
		}
		return arrConfigItemClass;
	},
	
	type: 'getCiClass'
});
1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron

Hi,

remove initialize() function from that client callable script; it is not required; remove this and it should work

If you want to make a script "Client callable", you can't have "initialize" function.

initialize: function() { },

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  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

10 REPLIES 10

chidanandadhath
Kilo Guru

I have the below script 

function onChange(control, oldValue, newValue, isLoading) {

if(newValue == oldValue) {
return;
}

var gaj = new GlideAjax('x_113476_managed_c.getCiClass');
gaj.addParam('sysparm_name','getPrimaryCiClass');
//gaj.getXML(ajaxResponse);
gaj.getXMLWait();


var strAnswer = gaj.getAnswer().toString();
var getAnswer=strAnswer.split(',');
alert(getAnswer);
var filterString = [];
filterString = 'sys_class_name=' + getAnswer[0];

if(getAnswer.length > 1){


for (var i=1; i<getAnswer.length;i++){


filterString += '^ORsys_class_name=' + getAnswer[i];


}

var collectorName = 'CIs';

try{
var myListCollector = g_list.get(collectorName);
myListCollector.reset();
myListCollector.setQuery(filterString);
}

catch(e){

window[collectorName + 'g_filter'].reset();
window[collectorName + 'g_filter'].setQuery(filterString);
window[collectorName + 'acRequest'](null);
}
}
}



//}

But on change I'm not getting the value

find_real_file.png