Problem
Sometimes instances of a periodic order execution has to be skipped, e.g. for maintenance. This recipe describes how you can skip one ore more planned executions of an order using schedules.
Solution
Assume you have an order which should be start at 10 p.m. every day. Normally you would place a runtime like this directly in the order:
<period single_start="22:00"/>
Using a schedule the runtime is placed in a single configuration element:
<schedule name="every_day_at_10pm"> <period single_start="22:00"/> </schedule>
The order referenced to 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 one for a specific time range. For our purpose we need a schedule that produces a manual start of the order:
<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"/>
The time range is in the past, so it will have no effect at the time.
After preparing the configuration described above you can skip the daily runtime 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 is active.