Search the FirstSpirit Knowledge Base
Hallo zusammen,
wir haben einige Aufträge, die wir je nach Bedingungen innerhalb eines ScriptTask abbrechen.
Beispiel:
ScriptTask actualRunningTask = context.getTask();
List<ScheduleEntryControl> runningEntries = actualRunningTask.getScheduleEntry().getRunningEntries();
if (runningEntries.size() == 1) {
runningEntries.get(0).stopExecution();
}
In der Auftragsverwaltung werden diese Auftrage dann als "Abgebrochen" markiert. Sie sind NICHT grün hinterlegt, so dass es auf dem ersten Blick nach einem Fehler aussieht.
Kann man den Job irgendwie so abbrechen/beenden, dass er als "Erfolgreich" gekennzeichnet und grün angezeigt wird?
Eine Möglichkeit wäre sicherlich alle anderen Tasks zu deaktivieren - > ScheduleTask.setActiv(false)
Vielleicht gibt es aber eine einfache/schönere Variante?
Liebe Grüße
Marcel
Keiner eine andere Idee?
Hey Marcel,
keine schöne Lösung, aber vielleicht ein Ansatz?
Wenn ich das richtig verstehe, wollt ihr einfach alle folgenden Tasks des Auftrags überspringen, korrekt? (Falls es technisch klappt, da bin ich mir nicht sicher) Ihr könntet versuchen euch alle Tasks des Auftrags zu holen und die nachfolgenden auf inaktiv (ScheduleTask.setActive(false)) zu setzen. Diese werden dann übersprungen und der Auftrag bleibt erfolgreich.
Damit am Ende der Ausführung der Ursprungszustand wiederhergestellt wird, legt ihr einen zusätzlichen Task am Ende des Auftrags an (diesen natürlich nicht auf inaktiv setzen lassen). Vor dem "Inaktivieren" der Tasks schreibt ihr euch den Zustand aller Tasks über setParameter an diesen Task und könnt dann in der Ausführung den Zustand entsprechend setzen.
Beste Grüße,
Florian
Hallo Florian,
Danke für deine ausführliche Antwort!
Das war auch meine Idee, die ich in der Frage erwähnt hatte:
Eine Möglichkeit wäre sicherlich alle anderen Tasks zu deaktivieren - > ScheduleTask.setActiv(false)
Der von dir vorgeschlagener letzter Task wäre für uns überflüssig, da beim Überspringen der Zustand immer Success wäre. Dies muss man ja nicht explizit setzten, da das der Default-Zustand ist, wenn keine Fehler geschmissen werden.
Liebe Grüße
Marcel