update owner/manager of a group script

levino
Giga Guru

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

 

1 ACCEPTED SOLUTION

Swapna Abburi
Mega Sage
Mega Sage

@levino 

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();

}

View solution in original post

1 REPLY 1

Swapna Abburi
Mega Sage
Mega Sage

@levino 

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();

}