Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

best scripting practice

tghadage124
Tera Contributor

hi all , 


Active (checkbox) field ----> if true add user to a system support group.
                                       -----> if false remove user from a Group.

 

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

    // Add your code here
    if (active != true) {
        var userrecord = new GlideRecord('sys_user_grmember');
        userrecord.addQuery('user', current.sys_id);
        userrecord.addQuery('group', '0a52d3dcd7011200f2d224837e6103f2');
        userrecord.query();

        if (userrecord.next()) {
            userrecord.deleteRecord();
        } else {
            var userrecords = new GlideRecord('sys_user_grmember');
            userrecord.initialize();
            userrecord.user = current.sys_id;
            userrecord.group = '0a52d3dcd7011200f2d224837e6103f2';
            userrecord.insert();
        }
    }
})(current, previous); 
 
can anyone please help me how to make this code optimize ?
thanks!! 
3 REPLIES 3

Uncle Rob
Kilo Patron

Optimize usually means to make something work BETTER.
I'm not 100% sure "this" works at all.
What are you running?  A business rule?  Background script?  

a business rule

Omkar Mone
Mega Sage

Hello

 

Considering your BR is on sys_user table, please check the below code and see if this helps - 

 

 

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

    if (!current.active) {
        var userRecord = new GlideRecord('sys_user_grmember');
        userRecord.addQuery('user', current.sys_id);
        userRecord.addQuery('group', '0a52d3dcd7011200f2d224837e6103f2');
        userRecord.query();

        if (userRecord.hasNext()) {
            while (userRecord.next()) {
                userRecord.deleteRecord();
            }
        } else {
            userRecord.initialize();
            userRecord.user = current.sys_id;
            userRecord.group = '0a52d3dcd7011200f2d224837e6103f2';
            userRecord.insert();
        }
    }

})(current, previous);