You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ServiceNow目录项变量中Reference qualifier未按预期生效

问题分析与解决方案

核心问题

  1. Reference Qualifier 用法错误:Reference类型变量的参考限定符需要返回可被GlideRecord解析的查询条件字符串(如'account=' + current.variables.account),你当前调用的Script Include返回的是JSON数组,系统无法识别这个无效的限定条件,因此默认显示表中所有记录。
  2. Script Include 代码存在语法错误:代码中重复定义了var OfferingServices = Class.create();,会导致类加载异常。
  3. 查询逻辑冗余:当value已经是account的sys_id时,直接使用gr.addQuery('account', value)即可,无需拼接.sys_id。

修正步骤

步骤1:修复Script Include代码

删除重复的类定义,调整方法逻辑(如果要在参考限定符中复用,需返回查询条件而非JSON):

var OfferingServices = Class.create();
OfferingServices.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
    getOfferingQuery: function(accountSysId){
        if(!accountSysId) return '';
        // 返回查询条件字符串,供Reference Qualifier使用
        return 'account=' + accountSysId;
    },

    // 保留原方法(如果其他地方需要用Ajax调用返回JSON)
    gettingList: function(value){
        var results = [];
        if(value){
            var gr = new GlideRecord('service_offer');
            gr.addQuery('account', value);
            gr.query();
            while (gr.next()) {
                results.push({
                    name: gr.getValue('name'),
                    deviceSolutionID: gr.getValue('sol_id')
                });
            }
        }
        gs.info('JSON.stringify(results) ==> '+JSON.stringify(results));
        return JSON.stringify(results);
    },

    type: 'OfferingServices'
});

步骤2:修正Reference Qualifier

将参考限定符改为调用返回查询条件的方法,或者直接写简化逻辑:

  • 方式一(复用Script Include):
    javascript: new OfferingServices().getOfferingQuery(current.variables.account)
    
  • 方式二(直接写逻辑,更简洁):
    javascript: current.variables.account ? 'account=' + current.variables.account : ''
    

步骤3:验证效果

  1. 保存Script Include和目录项配置
  2. 打开目录项表单,选择account后,listId变量应该只显示关联的service_offer记录
  3. 查看日志,确认查询逻辑正常执行

补充说明

如果你的场景需要通过Ajax动态加载选项(而非使用Reference类型的默认过滤),则应该将listId变量改为Select Box类型,然后通过客户端脚本调用Script Include的gettingList方法,动态填充选项。但当前你使用的是Reference类型,必须遵循其参考限定符的规则。

内容的提问来源于stack exchange,提问作者Tarique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:55:05