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

如何在ServiceNow的sc_task中设置所有可见任务变量为只读?

在ServiceNow目录任务(sc_task)中批量设置可见变量为只读的方案

针对San Diego版本的需求,无需硬编码所有变量,可通过客户端脚本动态遍历并处理当前表单上的可见变量,具体实现如下:

实现步骤

  1. 在sc_task表创建目录客户端脚本,类型选择onLoad,按需绑定到指定目录项或设置为全局生效。
  2. 利用ServiceNow内置的g_form API完成变量遍历、可见性判断与只读设置。

脚本代码示例

function onLoad() {
    // 获取当前表单所有可编辑字段(包含变量字段,格式为variables.变量名)
    var editableFields = g_form.getEditableFields();
    
    // 遍历字段并处理可见变量
    editableFields.forEach(function(fieldName) {
        // 筛选变量字段且当前可见的项
        if (fieldName.startsWith('variables.') && g_form.isVisible(fieldName)) {
            // 设置为只读状态
            g_form.setReadOnly(fieldName, true);
        }
    });
}

关键逻辑说明

  • g_form.getEditableFields():获取表单上所有可编辑字段,自动包含目录变量(命名格式为variables.xxx)
  • fieldName.startsWith('variables.'):精准筛选变量字段,避免误处理任务表原生字段
  • g_form.isVisible(fieldName):仅对当前表单上可见的变量进行操作,适配不同任务的变量显示差异
  • g_form.setReadOnly(fieldName, true):将目标变量设置为只读状态

该方案会自动适配不同任务中显示的变量集合,后续新增变量无需修改脚本,比硬编码方式更灵活易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:50:07