Da mir heute die Frage gestellt wurde, ob ich eine Möglichkeit wüsste, Aktionen nur an bestimmten Daten auszuführen, hier ein einfacher Lösungsansatz.
Als erstes müssen zwei Systemvariablen angelegt werden.
Die erste ist eine Zeichenkette mit dem Namen Termine.
Die zweite ist ein Logikwert mit dem Namen Termin_heute.
Die erste Variable befüllt man dann mit den Daten, an denen das Programm später ausgeführt werden soll. Die Tage werden dabei, durch Komma getrennt, wie folgt eingetragen:
03.01., 10.01., 17.01., 24.01., 31.01., 07.02., etc…
Das kann man entweder über eine App machen, bei der man in der Regel eine Systemvariable befüllen kann oder alternativ über die WebUI.
Hier kann man unter
Programme und Verknüpfungen ->
Programme & Zentralenverknüpfung
auf den Button Skript testen klicken und folgende Zeile eingeben (die Daten natürlich durch die eigenen Daten ersetzen) und dann auf Ausführen klicken:
dom.GetObject("Termine").State("03.01., 10.01., 17.01., 24.01., 31.01., 07.02.");
Die Systemvariable sollte jetzt mit den Daten gefüllt sein.
Im nächsten Schritt schreibt man ein Programm, dass durch das Zeitmodul täglich (z.B. um 0:05 Uhr getriggert wird).
Unter Aktivität: Dann… trägt man nun folgendes Skript ein:
!Systemvariable bei Datum setzen string termine = dom.GetObject("Termine").Value(); string heute = system.Date("%d.%m."); if (termine.Find(heute) > (-1)) { dom.GetObject("Termin_heute").State(1); } else { dom.GetObject("Termin_heute").State(0); }
Der Zustand dieser Systemvariable kann nun in allen Programmen als Zusatzbedingung genutzt werden, wenn diese Programme nur an bestimmten Daten ausgeführt werden sollen.
Wenn das Programm Nachts getriggert wird, setzt es die Systemvariable Termin_heute auf ist wahr, wenn das aktuelle Datum in der Liste der Termine ist und auf ist falsch, wenn es nicht in der Liste ist.