Da ich das Problem gerade selber hatte, das ich ein Programm mit Bedingungsprüfung nach einem anderen starten wollte und die Bedingungen in diesem Programm nicht sicher zum Auslösen geführt hätten (ich hätte von "bei Änderung" auf "bei Aktualisierung" umstellen müssen, was ich aber aus naheliegenden Gründen auch nicht wollte), habe ich mal ein paar Lösungswege ausprobiert.
Vorraussetzung: es gibt es bestehendes Programm mit diversen Bedingungen, die auch weiterhin so zutreffen sollen. Ich erzeuge nun eine Systemvariable Typ Logik, z. B mit dem Namen "Auslöser". Die baue ich mit in den Bedingungsblock ein:
Code: Alles auswählen
WENN
Bedingung 1
UND
Bedingung 2
UND
...
UND
Systemvariable Auslöser ist wahr bei Änderung
Jetzt kann ich in einem anderen Programm folgende Aktion einfügen:
Code: Alles auswählen
Systemvariable Auslöser auf falsch
Systemvariable Auslöser verzögert um 1 Sekunde auf wahr
ACHTUNG: das Programm darf kein bedingungsloses SONST haben, das käme dann nämlich zur Ausführung. Und bei einem SONST-WENN muss man auch genau hinsehen!
Der anschließende Wechsel von falsch auf wahr triggert das Programm wieder, diesmal ist die Bedingung WAHR und abhängig von den anderen Bedingungen wird das DANN ausgeführt - oder eben nicht. So wie es die Bedingungsprüfung eben ergibt.
Man kann die Logik auch umdrehen - dann ist die SV Auslöser normalerweise FALSCH und wird nur zum Auslösen auf WAHR geschaltet:
Code: Alles auswählen
Systemvariable Auslöser auf wahr
Systemvariable Auslöser verzögert um 1 Sekunde auf falsch
Code: Alles auswählen
WENN
{Bedingung 1
UND
Bedienung 2
UND
...
}
ODER
{ Systemvariable Auslöser bei wahr bei Änderung auslösen
UND
Systemvariable Auslöser bei falsch nur prüfen
}
Unterschied zur 1. Lösung: das Programm wird 2x ausgeführt. Ist aber eine Lösung, wenn man Bedingungen mit ODER verknüpft hat. Sonst müsste man in jeden ODER Block die SV Auslöser mit ver-und-den.