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_name
和 source.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);
我有一个包含以下信息的 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_name
和 source.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);