- 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' };