【问题标题】:ServiceNow- How add user to a grup from excel fileServiceNow-如何将用户从Excel文件添加到组
【发布时间】:2017-11-10 18:53:17
【问题描述】:

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

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

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

所有列出的“用户”和“组”都存在于用户表和组表中,例如(用户 1、用户 2、用户 3 存在于 sys_user 表中,组 1、组 2、组 3 存在于 sys_user_group 中)
我只想将用户添加到 excel 中提到的相应组中。

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

【问题讨论】:

    标签: javascript servicenow


    【解决方案1】:

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

    在插入上有两个字段要设置

    • 组 - 组的 sys_id
    • User - 用户的 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);
    

    【讨论】:

    • 您能否详细解释一下。 :)
    • 导入集:wiki.servicenow.com/… 导入集将数据按原样加载到 servicenow 中的临时表中 转换映射具有将原始数据(显示值,如“John Doe”)转换为目标表上的适当引用 (sys_user_grmember)。
    • 用更多细节更新了答案,并包括了@Joey 提到的内容。
    猜你喜欢
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    相关资源
    最近更新 更多