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

时间:2017-06-08 21:54:58

标签: javascript servicenow

我有一个excel文件,其中包含以下信息:

用户名 - | - 组名称 - | - 用户名

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

所有列出的"用户"和"组"用户表和组表中存在,ex(User1,user2,user3在sys_user表中,group1,group2,group3在sys_user_group中) 我只想将用户添加到excel中相应的组提及。

任何人都可以通过任何方式建议如何在服务中自动执行此操作,因为excel文件包含更多的数据并且无法手动执行。

1 个答案:

答案 0 :(得分:1)

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

要在插入

上设置两个字段
  • 组 - 组的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);