schedule job
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2024 09:46 AM - edited ‎06-26-2024 09:47 AM
I have a schedule job which runs when the user does not login for 30 days that is working fine ,but now i need to exclude some users from the list ,i have tried with the below code but its not working
inactiveUsers.addEncodedQuery('active=true^last_login_time<=' + DaysAgo + '^roles=ITIL^web_service_acess=false^email!=sdi@dsk.com');
please guide

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2024 09:55 AM
Can you advise what you're wanting to exclude?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2024 10:10 AM - edited ‎06-26-2024 10:12 AM
i am sending a notification to users who have not logged in for 30 days :
{
var DaysAgo = new GlideDateTime();
DaysAgo.addDaysUTC(-30);
var inactiveUsers = new GlideRecord('sys_user');
inactiveUsers.addEncodedQuery('active=true^last_login_time<=' + DaysAgo + '^roles=ITIL^web_service_acess=false^email!=sdi@dsk.com');
inactiveUsers.query();
while (inactiveUsers.next() {
gs.eventQueue('itil_user_inactive_30days',inactiveUsers,inactiveUsers.email,inactiveUsers.manager.email);
}
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2024 03:00 PM
Hi @spectura77,
I am assuming that you want to filter the active users with the ITIL role who haven't logged in for the last 30 days.
Instead of using the roles field on the [sys_user] table, you will need to query the [sys_user_has_role] table. I believe the roles field has been deprecated or is no longer used.
So your scheduled job should look something like this:
{
var DaysAgo = new GlideDateTime();
DaysAgo.addDaysUTC(-30);
var inactiveUsers = new GlideRecord('sys_user_has_role');
inactiveUsers.addEncodedQuery('user.active=true^user.last_login_time<=' + DaysAgo + '^role.name=itil^user.web_service_acess=false^user.email!=sdi@dsk.com');
inactiveUsers.query();
while (inactiveUsers.next() {
gs.eventQueue('itil_user_inactive_30days', inactiveUsers.user inactiveUsers.user.email, inactiveUsers.user.manager.email);
}
})();
Cheers