在我的表单上,我有一个在加载时自动填充的变量。该值来自用户配置文件。表单上有一个列表收集器变量,该变量仅应显示基于自动填充变量的值。我已经编写了一个目录onChange脚本来过滤列表收集器。
`function onChange(control, oldValue, newValue, isLoading) {
var collectorName = 'cn';
var filterString = '';
var dynamicQuery = "" ;
var order=g_form.getValue('autopopulatedvariable');
dynamicQuery = "u_order="+order;
try{
var myListCollector = g_list.get(collectorName);
myListCollector.reset();
myListCollector.setQuery(dynamicQuery);
}
catch(e){
//Reset the filter query
window[collectorName + 'g_filter'].reset();
window[collectorName + 'g_filter'].setQuery(dynamicQuery);
window[collectorName + 'acRequest'](null);
}
}`
将加载表格,您会在过滤器中看到值,但没有结果。我可以单击放大镜,然后从列表中选择相同的值,然后它会正确过滤。
感谢您提供的任何帮助。
答案 0 :(得分:0)
自Jakarta发行版发布以来,Service Now在List收集器变量上引入了动态参考限定符字段,您无需为此创建客户端脚本。
引用qual在服务器端执行,因此它不支持任何客户端API。如果您有任何简单的查询,则可以直接从列表视图过滤器中将其复制并粘贴到字段中。
如果查询是动态的,并且依赖于表单上的其他变量。例如,您在事件表上有一个列表收集器,以显示分配给请求者的所有事件。您可以将其添加为参考质量
javascript:'assigned_to='+current.variables.requested_for;
requested_for是存储请求者名称的变量
对于您的情况,您可以将查询添加为
javascript:'u_order='+current.variables.autopopulatedvariable;
如果查询是高度动态的,则可以像在高级引用限定符中一样,将其编写为脚本include并在引用限定符内调用它。
以下是关于同一主题的不错的博客:link