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