ServiceNow:如何限制事件、问题、变更及任务中配置项的可见性?
解决方案:基于公司维度控制配置项(CI)的可见性
针对事件、问题、变更模块的控制
给这三个模块中配置项(CI)对应的参考字段设置高级参考资格:
- 进入对应模块的表单设计,找到CI参考字段(如
cmdb_ci) - 在字段属性的「参考资格」中选择「高级」,输入以下脚本:
current.company.nil() ? 'sys_idIN' : 'company=' + current.company
- 逻辑说明:当当前记录未选择公司时,返回空查询条件(
sys_idIN),点击放大镜将看不到任何CI;选择公司后,仅显示该公司下的CI。
针对问题任务、变更任务模块的控制
同样给这两个模块的CI参考字段设置高级参考资格,脚本如下:
// 问题任务关联问题的公司 if (current.problem) { return 'company=' + current.problem.company; } // 变更任务关联变更的公司 if (current.change_request) { return 'company=' + current.change_request.company; } // 无关联记录时返回空集合 return 'sys_idIN';
- 简化版脚本(若关联字段支持直接链式访问):
current.problem ? 'company=' + current.problem.company : (current.change_request ? 'company=' + current.change_request.company : 'sys_idIN')
- 逻辑说明:自动读取关联的问题/变更记录中的公司字段,仅返回该公司范围内的CI;无关联记录时同样看不到任何CI。
关键注意事项
不要使用配置字典规则实现该需求——字典规则是对CI表的全局过滤,会影响所有使用CI的模块,无法实现不同模块的差异化控制,而参考资格是针对单个字段的场景化过滤,更适配你的需求。
内容的提问来源于stack exchange,提问作者BigM
相关产品推荐
相关产品推荐

