Wir lieben Herausforderungen und laden Sie dazu ein, uns zu testen. Unsere Timescheduling-Funktionaliät ist durch die Möglichkeit der Und / Oder-Verknüpfung extrem mächtig, deswegen bitten wir unsere Kunden und Partner ab und zu, uns zu challengen.
Johns Challenge:
“Ich möchte einen Job, der üblicherweise am 5. jeden Monats läuft, nur dann laufen lassen, wenn das ein Arbeitstag ist. Fällt der 5. auf einen Feiertag, oder auf das Wochenende, soll der Job einen Tag früher laufen. Handelt es sich dabei auch um einen freien Tag, soll der Job am ersten Arbeitstag nach dem 5. des Monats laufen.”
Und hier ist die Lösung:
Zunächst brauchen wir eine Definition der Schweizer Arbeitstage, die zum einen die Arbeitstage Montag bis Freitag definiert und gleichzeitig eine Liste alle Feiertage enthält und durch den Status “Inverse” ausklammert. Bei Listen-Einträge ohne Jahreszahl fällt der Feiertag immer auf das gleiche Datum, Einträge mit Jahreszahl sind variable Feiertage, welche jährlich gepflegt werden müssen. Diesen Kalender haben wir “WORKDAYS_CH” genannt:
Jetzt werden zwei Intervalle definiert. Der erste Intervall enthält den 4. und 5. des Monats, sofern es sich dabei um Arbeitstage handelt:
Der zweite Intervall enthält den 5. und einige darauf folgende Tage des Monats, sofern sie in der Schweiz Arbeitstage sind:
Im nächsten Schritt wird nun ein Interval JOHN_CHALLENGE_HLP definiert, welches für den 4. und 5. den letzten Arbeitstag (falls vorhanden) sowie für den 5. und folgenden den ersten Arbeitstag liefert
1. Dispatch Interval 5_OR_WORKDAY_BEFORE:
2. Dispatch Interval 5_OR_WORKDAY_AFTER:
Jetzt packen wir das obige Intervall in das Intervall JOHN_CHALLANGE und selektieren von diesen Tagen den 1. Tag
Jetzt haben wir eine Intervall Definition, welche wir in Job Schedules verwenden können. Folgender Screenshot zeigt die Verwendung in einem Schedule mit den Ausführungen für die nächsten 400 Tage.
Sie haben auch eine Challenge für uns? Wir freuen uns über knifflige Aufgaben. Nehmen Sie mit uns Kontakt auf!