Diese Funktionalität ist nur in bestimmten Ausbaustufen verfügbar.

Abbruch von Skripten mit dem AbortExecutionIfErrorCommand

Mit dem Command Engineering.AbortExecutionIfErrorCommand kann die Bearbeitung einer Aktion abgebrochen werden, falls ein Skript einen Fehler in den UserMessageCollector eingetragen hat.

Folgendes Beispiel zeigt das Szenario für ein anskizziertes komplexeres Skript. Bei einem Fehler soll das Skript-Ergebnis (d.h. die erzeugten Änderungen am Modell) nicht gespeichert werden. Die zugehörige Action sieht so aus:

Im zugehörigen ScriptCommand wird im Fehlerfall nun einerseits ein Fehler in den UserMessageCollector eingetragen, als auch die interne rekursive und iterative Skript-Bearbeitung sauber abgebrochen. Dies kann entweder ohne Verwendung von Ausnahmen über ein Skript-globales abortExecution-Flag geschehen, oder mittels der UserScriptException. Der UserScriptException muss eine ID und optional ein Text mitgegeben werden. Dadurch können innerhalb von Skripten verschiedene Abbruchbedingungen behandelt werden. Dies funktioniert auch bei Aufrufen von Skripten in Skripten. Eine, in einem Unterskript geworfene, Ausnahme kann im aufrufenden Skript behandelt werden.