- 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 10:52 AM
Hi James,
You have to return the whole query here and not just the sys_id. Returnsed string should be something like this
sys_idIN<list of sys_id separated by comma>
Try this
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 'sys_idIN'+arrVettingCallers.toString();
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2015 12:12 PM
Thank you for the help. I changed the code around to return a string of sys_ids with the sys_idIN prefix and that part seems to be working. It is logging a string that appears to be correct but the reference field still shows all options. I included my modified code below.
function filterVettingCallers() { 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; };
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2015 12:16 PM
can you put a log on "current.u_category;" to see if it holds the value you are expecting
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2015 12:18 PM
I am logging the variable a bit lower in the code on line 6. It does log the correct category. In addition the output at the end has the correct entries in the log, it just doesn't seem to do anything with it.