Problem

Sometimes instances of periodic orders have to be skipped, e.g. for maintenance. This recipe describes how to skip one or more planned executions of an order using schedules.

Configuration

Assume you have an order which should be started at 10 p.m. every day. Normally you would add a run-time like this directly to the order configuration:

 <period  single_start="22:00"/>

Using a schedule the run-time is located in a single configuration element:

 <schedule name="every_day_at_10pm">
    <period  single_start="22:00"/>
 </schedule>

The order will reference this schedule as follows:

 <order ...>
    ...
    <run_time schedule="every_day_at_10pm"/>
 </order> 

Now it is possibile to substitute the schedule every_day_at_10pm by another schedule for a specific time range. For our purpose we need a schedule that produces no run-time:

 <schedule substitute="every_day_at_10pm" valid_from="2013-01-01 00:00:00" valid_to="2013-01-01 01:00:00" name="manual_start"/>

In this example the schedule substitute manual_start is effective for the first hour of the year 2013.

Solution

After preparing the configuration described above you can skip the daily run-time for a specific time range using JOC as follows:

  • Choose the Schedules tab in JOC
  • Select the schedule manual_start
  • Choose Edit schedule in the Substitute menu
  • By clicking runtime editor you can change the time range the substitute overlays the default scheduler every_day_at_10pm.