- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-28-2014 07:11 AM
The "Run" choices we have when setting up a Discovery Schedule are:
- Daily
- Weekly
- Monthly
- Periodically
- Once
- On Demand
We would have to create multiple schedules in order to run a Discovery every weekday or just weekends. Or do we?
It may not be obvious, but because the Discovery Schedule table is a subclass of the Scheduled Job table, we have access to the Conditional checkbox and Condition script fields. By adding those fields to the Discovery Schedule form, we can now use a script to decide when it should run. So for example, set the "Run" field to "Daily", check the "Conditional" field and add the following script to the "Condition" field to run a Discovery on weekends only:
(function() {
//run on weekends only
var day = new Date().getDay();
return (day == 0 || day == 6);
})();
Skip Sundays:
(function() {
//skip Sundays
var day = new Date().getDay();
return (day != 6);
})();
This script for Monday to Friday:
(function() {
//run Monday to Friday
var day = new Date().getDay();
return (day != 0 && day != 6);
})();
This one for Monday, Wednesday and Fridays:
(function() {
//run on Monday, Wednesday and Fridays
var day = new Date().getDay();
return (day == 1 || day == 3 || day == 5);
})();
So what happens is the Discovery Schedule will in fact "run" every day at the specified time, but if the condition fails, the job ends without actually kicking off a Discovery.
Solved! Go to Solution.
- Labels:
-
Discovery
-
Service Mapping
- 5,458 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-20-2018 06:03 AM
Just setting this answer as correct as the actual thread was not meant as a question and it cannot be changed because it came from the original Community site.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-08-2016 07:36 AM
You are welcome.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-13-2017 09:38 AM
Jim,
I want to create a schedule to run on the first Sunday of every quarter. Any advice is greatly appreciated.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-14-2017 12:53 PM
This should do the trick - set the "Run" field to "Weekly" and "Day" to "Sunday", check the "Conditional" checkbox and use the following script in the "Condition" field:
(function(){
//run on the first Sunday of every quarter
var gdt = new GlideDateTime();
var month = gdt.getMonthLocalTime();
var day = gdt.getDayOfMonthLocalTime();
//returns true if the month is January, April, July or October AND the day is within the first week
return (month == 1 || month == 4 || month == 7 || month == 10) && (day <= 7);
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-14-2017 01:34 PM
Jim,
Thank you so much.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-14-2017 01:54 PM