ServiceNow Utah PDI中字段高级参考限定符不生效求助
排查ServiceNow Utah版PDI中参考限定符失效问题的线索
- 修正查询语句语法格式:你返回的查询字符串
companyIN4b7d13f03710200044e0bfc8bcbe5db6不符合ServiceNow查询规范,操作符IN和值之间必须加空格,正确格式应为companyIN 4b7d13f03710200044e0bfc8bcbe5db6。连写会被系统识别为字段名的一部分,直接导致查询无结果。 - 验证脚本返回值的准确性:在
getCallers方法中添加日志输出,比如gs.info('生成的查询语句: ' + query);,打开caller_id放大镜后,去系统日志(System Log > All)查看实际返回的字符串,确认没有被其他逻辑篡改。 - 检查用户记录的可见性:手动在用户表(sys_user)用该公司sys_id做过滤,看是否能返回结果。同时确认当前登录用户拥有
user_read角色,且没有ACL限制该用户查看目标用户记录;还要检查目标用户的active字段是否为true, inactive用户默认不会出现在参考列表中。 - 确认参考限定符的配置正确性:如果是在字典条目里配置的限定符,要确保选择了
Advanced类型,调用语句正确(比如javascript: new GetCallersforIncident().getCallers()),类名、方法名没有拼写错误。 - 测试直接执行查询语句:在用户表列表视图的过滤器中直接输入
companyIN 4b7d13f03710200044e0bfc8bcbe5db6,如果能返回用户,说明脚本包含的返回值有问题;如果仍为空,要检查用户表的company字段是否真的关联了该sys_id,或用户记录存在其他过滤条件(比如被排除在全局搜索之外)。 - 检查脚本包含的范围权限:确认脚本包含的
Accessible from属性设置为All application scopes(若Incident表在全局范围),或与Incident表的应用范围匹配,范围不匹配会导致方法无法被调用,限定符失效。
内容的提问来源于stack exchange,提问作者user1754019
相关产品推荐
相关产品推荐

