ServiceNow-使用脚本过滤列表收集器

时间:2018-11-28 18:37:22

标签: servicenow

在我的表单上,我有一个在加载时自动填充的变量。该值来自用户配置文件。表单上有一个列表收集器变量,该变量仅应显示基于自动填充变量的值。我已经编写了一个目录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);
 }

}`

将加载表格,您会在过滤器中看到值,但没有结果。我可以单击放大镜,然后从列表中选择相同的值,然后它会正确过滤。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

自Jakarta发行版发布以来,Service Now在List收集器变量上引入了动态参考限定符字段,您无需为此创建客户端脚本。 List Collector

引用qual在服务器端执行,因此它不支持任何客户端API。如果您有任何简单的查询,则可以直接从列表视图过滤器中将其复制并粘贴到字段中。

如果查询是动态的,并且依赖于表单上的其他变量。例如,您在事件表上有一个列表收集器,以显示分配给请求者的所有事件。您可以将其添加为参考质量

javascript:'assigned_to='+current.variables.requested_for;

requested_for是存储请求者名称的变量

对于您的情况,您可以将查询添加为

javascript:'u_order='+current.variables.autopopulatedvariable;

如果查询是高度动态的,则可以像在高级引用限定符中一样,将其编写为脚本include并在引用限定符内调用它。

以下是关于同一主题的不错的博客:link