Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-30-2023 01:36 AM
Hi Experts
i need to update the owner/manager of a group with a random member from the group
the attached script is it missing something
var query = 'group.typeLIKE1234b144db24abc030a94815059619bf^ORgroup.typeLIKEcfd76180db219c5018ca11b14a961957^ORgroup.typeLIKEf3072900db219c5018ca11b14a96193b^ORgroup.typeLIKE9b776540db219c5018ca11b14a961918^group.active=true^group.u_ownerLIKE3cd7dda1db5c1b005070326f7c961985'
var group_memberArr = []; // here we are getting list of member of group passed in below query
var groupMember = new GlideRecord('sys_user_grmember');
groupMember.addEncodedQuery(query); // if you dont want specific group member you can remove
groupMember.query();
while (groupMember.next()) {
group_memberArr.push(groupMember.getValue('user'));
}
var random = Math.floor((Math.random() * group_memberArr.length));
// now we have list of user and Random will assign any random user from list to
var groupGR = new GlideRecord('sys_user_group');
groupGR.addActiveQuery();
groupGR.query();
while (groupGR.next()){
groupGR.setValue('owner', group_memberArr[random]);
groupGR.update();
}
Thanks
Levino
Solved! Go to Solution.
1 ACCEPTED SOLUTION
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-30-2023 02:39 AM
I think your script should be similar to below code snippet.
var query = 'typeLIKE1234b144db24abc030a94815059619bf^ORtypeLIKEcfd76180db219c5018ca11b14a961957^ORtypeLIKEf3072900db219c5018ca11b14a96193b^ORtypeLIKE9b776540db219c5018ca11b14a961918^active=true^u_ownerLIKE3cd7dda1db5c1b005070326f7c961985';
//first loop in thru all groups
var groupGR = new GlideRecord("sys_user_group");
groupGR.addEncodedQuery(query);
groupGR.query();
while (groupGR.next()) {
//get members of each group added to the below array
var group_memberArr = []; // here we are getting list of member of group passed in below query
var groupMember = new GlideRecord('sys_user_grmember');
groupMember.addQuery("group", groupGR.sys_id);
groupMember.query();
while (groupMember.next()) {
group_memberArr.push(groupMember.getValue('user'));
}
var random = Math.floor((Math.random() * group_memberArr.length));
// now we have list of user and Random will assign any random user from list to
groupGR.setValue('u_owner', group_memberArr[random]);
groupGR.update();
}
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-30-2023 02:39 AM
I think your script should be similar to below code snippet.
var query = 'typeLIKE1234b144db24abc030a94815059619bf^ORtypeLIKEcfd76180db219c5018ca11b14a961957^ORtypeLIKEf3072900db219c5018ca11b14a96193b^ORtypeLIKE9b776540db219c5018ca11b14a961918^active=true^u_ownerLIKE3cd7dda1db5c1b005070326f7c961985';
//first loop in thru all groups
var groupGR = new GlideRecord("sys_user_group");
groupGR.addEncodedQuery(query);
groupGR.query();
while (groupGR.next()) {
//get members of each group added to the below array
var group_memberArr = []; // here we are getting list of member of group passed in below query
var groupMember = new GlideRecord('sys_user_grmember');
groupMember.addQuery("group", groupGR.sys_id);
groupMember.query();
while (groupMember.next()) {
group_memberArr.push(groupMember.getValue('user'));
}
var random = Math.floor((Math.random() * group_memberArr.length));
// now we have list of user and Random will assign any random user from list to
groupGR.setValue('u_owner', group_memberArr[random]);
groupGR.update();
}