- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2015 10:39 AM
I am attempting to use a script include to filter a reference field based on a piece of data on the incident form. The script include is being called and returns an array of the correct entries but the reference field is not filtering. I am using javascript:new filterVettingCallers().filterVettingCallers() in the reference qual of the reference field and my code is below. I have tried with both sys_ids and names but neither works. Does anyone know how I can get this filter to work?
function filterVettingCallers() {
var i = 0;
gs.log('Vetting Filter');
var arrVettingCallers = [];
var category = current.u_category;
vettingCallers = new GlideRecord('u_vetting_callers');
gs.log('category is: ' + category);
vettingCallers.addQuery('u_category', category);
vettingCallers.query();
while(vettingCallers.next()) {
var name = vettingCallers.sys_id.toString();
arrVettingCallers[i] = name;
i++
}
gs.log(arrVettingCallers)
return arrVettingCallers;
};
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2015 05:00 PM
It looks like the problem was that I had not surrounded my function with the class code. After doing so it worked properly. My completed code is below.
var filterVettingCallers = Class.create();
filterVettingCallers.prototype = {
initialize: function() {
},
filterVettingCallers:function() {
gs.log('Vetting Filter');
var stringVettingCallers = 'sys_idIN';
var category = current.u_category;
vettingCallers = new GlideRecord('u_vetting_callers');
gs.log('category is: ' + category);
vettingCallers.addQuery('u_category', category);
vettingCallers.query();
while(vettingCallers.next()) {
var name = vettingCallers.sys_id.toString();
stringVettingCallers += (name + ',');
}
stringVettingCallers = stringVettingCallers.slice(0,-1);
gs.log(stringVettingCallers)
return stringVettingCallers;
},
type: 'filterIDVettingCallers'
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2015 12:24 PM
I see that your script include name and function both are same....try changing the function name from both places(script include and reference qual)....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2015 12:40 PM
Hi,
You have to call your function like this: javascript:filterVettingCallers(),
In script include : Client callable should be true
In Type specifications of your field be sure also that "Use Reference Qualifier" field = Advanced
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2015 04:44 PM
It does call this way as well but still logs the correct information while doing nothing to the list.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2015 05:00 PM
It looks like the problem was that I had not surrounded my function with the class code. After doing so it worked properly. My completed code is below.
var filterVettingCallers = Class.create();
filterVettingCallers.prototype = {
initialize: function() {
},
filterVettingCallers:function() {
gs.log('Vetting Filter');
var stringVettingCallers = 'sys_idIN';
var category = current.u_category;
vettingCallers = new GlideRecord('u_vetting_callers');
gs.log('category is: ' + category);
vettingCallers.addQuery('u_category', category);
vettingCallers.query();
while(vettingCallers.next()) {
var name = vettingCallers.sys_id.toString();
stringVettingCallers += (name + ',');
}
stringVettingCallers = stringVettingCallers.slice(0,-1);
gs.log(stringVettingCallers)
return stringVettingCallers;
},
type: 'filterIDVettingCallers'
};
