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

ServiceNow Flow Designer无效属性ID错误排查请求

解决ServiceNow "invalid property id"错误并实现类别自动指派组功能

首先明确错误根源:你遇到的invalid property id错误指向代码第10行current.assignment_group = assignedGroup;,问题出在直接给引用字段赋值字符串名称。ServiceNow里assignment_group是引用类型字段,它只接受组的sys_id或者对应的GlideRecord对象,不支持直接传入组名称字符串。

修改方案一:通过组名称查询并赋值(通用场景)

修改代码,新增组查询逻辑,获取组的sys_id后再赋值:

// 获取事件类别
var category = current.category;

// 定义类别到组名称的映射
var assignmentMap = {
  "Hardware": "Hardware",
  "Software": "Software",
  "Network": "Network",
  "Inquiry/Help": "Help Desk",
  null: "Incident Management",
};

var targetGroupName = assignmentMap[category];
var assignedGroupSysId = null;

// 查询对应的组记录
if (targetGroupName) {
  var grp = new GlideRecord('sys_user_group');
  grp.addQuery('name', targetGroupName);
  grp.setLimit(1); // 确保只取一条匹配记录
  grp.query();
  if (grp.next()) {
    assignedGroupSysId = grp.sys_id;
  }
}

// 赋值指派组
if (assignedGroupSysId) {
  current.assignment_group = assignedGroupSysId;
} else {
  gs.info("未找到对应类别的指派组:" + category);
}

// 注意:如果是业务规则中执行,无需手动调用current.update(),系统会自动处理更新
// current.update();

修改方案二:直接使用组sys_id(性能更优)

如果提前知晓各组的sys_id,可以直接把映射表的值换成sys_id,省去查询步骤:

var category = current.category;

// 定义类别到组sys_id的映射(替换为实际的组sys_id)
var assignmentMap = {
  "Hardware": "abc123xyz",
  "Software": "def456uvw",
  "Network": "ghi789rst",
  "Inquiry/Help": "jkl012opq",
  null: "mno345stu",
};

var assignedGroupSysId = assignmentMap[category];

if (assignedGroupSysId) {
  current.assignment_group = assignedGroupSysId;
} else {
  gs.info("未找到对应类别的指派组:" + category);
}

关键注意事项

  1. 移除current.update():如果这段代码是在业务规则中运行,ServiceNow会自动处理记录更新,手动调用会触发额外的更新操作,可能引发循环更新问题。
  2. 组名称唯一性:方案一中依赖组名称查询,确保你的组名称在sys_user_group表中是唯一的,避免匹配到错误的组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 11:02:24