How to add an user to glide list field and group member as well

sinu2
Tera Expert

Hi Team,

 

I have a requirement.

 

1.I have a field called "manager" in group table. If i add some one to "manager field" in the group table. the person should be added to group member in that particular group. As well as he should add an user in another table "sysauto_report"  field called "user_list" its a glide list field.

 

2. And "previous.manager" should be removed from both group_member of that group and remove from report user(list field).

 

 

Report table list  field:

sinu2_0-1694494844599.png

Add/remove from group member as well

 

sinu2_1-1694494946941.png

 

 

8 REPLIES 8

Below is full Business rule and working for me.

Type : before update business rule

 

(function executeRule(current, previous /*null when async*/ ) {

    /* Store current & previous value of manager */

    var currentManager = current.getValue('manager');

    var previousManager = previous.getValue('manager');

    var groupSysId = current.getUniqueValue();

    var groupDisplay = current.getDisplayValue();

//gs.addInfoMessage("current=" + currentManager);

//gs.addInfoMessage("previous=" + previousManager);

    if (currentManager) {

        /* Glide record on "sys_user_grmember" to add group member */

        var grMem = new GlideRecord('sys_user_grmember');

        grMem.addEncodedQuery('group=' + groupSysId + "^user=" + currentManager);

        grMem.query();

        if (grMem.next()) {

            //Already an member

        } else {

            // Add member to group

            grMem.initialize();

            grMem.setValue('group', groupSysId);

            grMem.setValue('user', currentManager);

            grMem.insert();

        }

        /* End of Glide record on "sys_user_grmember" to add group member */

        /* Glide record on sysauto_report */

        var grReport = new GlideRecord('sysauto_report');

        grReport.addEncodedQuery('name=' + groupDisplay);

        grReport.query();

        if (grReport.next()) {

            // Update the user list field

            var getUserList = grReport.getValue('user_list');

            grReport.setValue('user_list', getUserList + ',' + currentManager);

            grReport.update();

        } else {

            //create new record in sysauto_report

            grReport.initialize();

            grReport.setValue('name', groupDisplay);

            grReport.setValue('user_list', currentManager);

            grReport.insert();

        }

    }

   

   

    if(previousManager) {

       gs.addInfoMessage("previous");

        /* Glide record on "sys_user_grmember" to remove group member */

        var grMem = new GlideRecord('sys_user_grmember');

        grMem.addEncodedQuery('group=' + groupSysId + "^user=" + previousManager);

        grMem.query();

        if (grMem.next()) {

            grMem.deleteRecord();

        }

        var grReport = new GlideRecord('sysauto_report');

        grReport.addEncodedQuery('name=' + groupDisplay);

        grReport.query();

        if (grReport.next()) {

            // Remove the user from user list field
            var getUserList = grReport.getValue('user_list');
            var listArray = getUserList.split(",");
            var index = listArray.indexOf(previousManager);
            if (index > -1) {
                listArray.splice(index, 1);
            }
            var updatedList = listArray.join(",");
            grReport.setValue('user_list',updatedList );

            grReport.update();

        }

    }

})(current, previous);


 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

got it @Vishal Birajdar 

 

but how to add user to list collector

It has been provided in script know...!!

 

VishalBirajdar7_0-1694514028667.png

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

Hi @Vishal Birajdar 

 

but we need to check wheather manager is already exists in list collector field we should not add user.