ServiceNow- 如何从 excel 文件将用户添加到组

ServiceNow- How add user to a grup from excel file

我有一个包含以下信息的 excel 文件:

用户名--|--组名--|--用户id

用户 1--------|--- 组 1------|-----1
用户 2--------|---组 2--------|-----2
用户 3--------|---组 3--------|-----3

所有列出的 "users" 和 "group" 都存在于用户 table 和组 table 中,例如(用户 1、用户 2、用户 3 在 sys_user table 和 group1, group2 , group3 存在于 sys_user_group)
我只想将用户添加到 excel.

中的相应组提及

任何人都可以建议如何通过任何方式在服务中自动执行此操作,因为 excel 文件包含大量数据,手动操作是不可能的。

您可以使用 导入集 并将记录添加到 sys_user_grmember table.

插入有两个字段要设置

  • 组 - sys_id组
  • 用户 - sys_id 的用户

更新 @Joey 提到了转换集,它是整个导入集的一部分,请查看您的版本的详细信息。例如,伊斯坦布尔 https://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/script/server-scripting/task/t_CreateATransformMap.html

本质上,导入集使用它来将电子表格映射到 ServiceNow 中的字段。

在你的情况下,它稍微复杂一些,因为你需要为用户和组获取 sys_id,虽然听起来你有用户名和组名。使用变换映射的 Script 部分应该适用于您的情况。

下面代码中的一些内容是一个大概的想法。但是我还没有对此进行任何测试,您需要在开发环境中进行彻底测试才能使其正常工作。

此处 source.u_user_namesource.u_group_name 是您在导入集中加载的数据的字段

(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {
    // get the user
    var usr = new GlideRecord('sys_user');
    usr.get('user_name',source.u_user_name.toString());

    // get the group
    var grp = new GlideRecord('sys_group');
    grp.get('name',source.u_group_name.toString());

    // insert group membership
    var grMember = new GlideRecord('sys_user_grmember');
    grMember.initialize();
    grMember.user = usr.sys_id;
    grMember.group = grp.sys_id;
    grMember.insert();

})(source, map, log, target);