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.

Add condition on script include

tindiz
Giga Guru

Hi Experts, I need help in adding this condition to my script include -

 

var TimeSheetExceptionGenerator = Class.create();
TimeSheetExceptionGenerator.prototype = {
    initialize: function() {
        this.timeCardUserRoleId = TimeCardUtil.getTimeCardUserRoleId();
    },

    run: function(date) {
		var company = gs.getProperty('eps.timesheet.company');
        var gr = new GlideRecord('sys_user_has_role');
        gr.addQuery('role', this.timeCardUserRoleId);
        gr.addQuery('state', 'active');
        gr.addQuery('user.active', true);
	gr.addQuery('user.company', company);	
        gr.query();

        var timeCardUsers = [];
        while (gr.next())
            timeCardUsers.push(gr.getValue('user'));

        this._updateTimeSheetStatusForUser(date, timeCardUsers);
    },

    _updateTimeSheetStatusForUser: function(date, users) {
        if (JSUtil.notNil(users) && users.length > 0) {
            users.forEach(function(user) {
                user = user.toString();
                var weekStartsOn = TimeCardUtil.getStartOfWeekByDate(date, user);
                var timeSheet = new GlideRecord('time_sheet');
                timeSheet.addQuery('week_starts_on', weekStartsOn);
                timeSheet.addQuery('user', user);
                timeSheet.query();

                var state = 'Not_Submitted';
                if (timeSheet.next()) {
                    state = timeSheet.getValue('state');
                }

                this.createOrUpdateExceptionRecord(user, weekStartsOn, state);
            }, this);
        }
    },
    
    createOrUpdateExceptionRecord: function(user, weekStartsOn, state) {
        var gr = new GlideRecord('time_sheet_exception');
        gr.addQuery('user', user);
        gr.addQuery('week_starts_on', weekStartsOn);
        gr.query();
        if (gr.next()) {
            if (gr.getValue('state') != state) {
                gr.setValue('state', state);
                gr.update();
            }
        } else {
            var domainId = TimeCardUtil.getUserDomainId(user);
            gr = new GlideRecord('time_sheet_exception');
            gr.setValue('user', user);
            gr.setValue('week_starts_on', weekStartsOn);
            gr.setValue('state', state);
            if (JSUtil.notNil(domainId))
                gr.setValue('sys_domain', domainId);
            gr.insert();
        }
    },

    type: 'TimeSheetExceptionGenerator'
};

 

The condition that I need to add is active=true^correlation_id=Client Director

However, I don't seem to know where to add it on the script. Please help. Thanks! 

2 REPLIES 2

Runjay Patel
Giga Sage

Hi @tindiz ,

 

you need to add in below function. check the revised code.

run: function(date) {
		var company = gs.getProperty('eps.timesheet.company');
        var gr = new GlideRecord('sys_user_has_role');
        gr.addQuery('role', this.timeCardUserRoleId);
        gr.addQuery('state', 'active');
        gr.addQuery('user.active', true);
gr.addEncodedQuery('user.active=true^user.correlation_id=Client Director');
	gr.addQuery('user.company', company);	
        gr.query();

        var timeCardUsers = [];
        while (gr.next())
            timeCardUsers.push(gr.getValue('user'));

        this._updateTimeSheetStatusForUser(date, timeCardUsers);
    },

 

-------------------------------------------------------------------------

If you found my response helpful, please consider selecting "Accept as Solution" and marking it as "Helpful." This not only supports me but also benefits the community.


Regards
Runjay Patel - ServiceNow Solution Architect
YouTube: https://www.youtube.com/@RunjayP
LinkedIn: https://www.linkedin.com/in/runjay

-------------------------------------------------------------------------

Ankur Bawiskar
Tera Patron
Tera Patron

@tindiz 

how are you calling it?

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader