Fehlermeldungen in gültigen Aktionsbäumen
Bestimmte Arten von Aktionsbäumen können zu einem Rückgabewert Falsch führen, auch wenn der Baum völlig korrekt abläuft. Dieser Zustand wird normalerweise durch MatchReplaceDef-Aktionen erreicht.
Ergebnis-Aktion, AnwendungDas Bild oben zeigt eine sehr einfache Version des beschriebenen Szenarios an. Wenn der Aktionsbaum eine E-Mail-Nachricht mit [ELO]
in der Betreffszeile durchläuft, gibt der Baum einen Wert von Wahr zurück. Wird dieser Text nicht gefunden wird, gibt der Baum Falsch zurück.
Alle E-Mail-Nachrichten ohne [ELO]
im Betreff werden jedoch in den ELOxc-Protokollen als Fehlerzustand aufgezeichnet, egal ob es sich bei diesem Ergebnis tatsächlich um ein Problem handelt oder nicht. Dieses Problem wird nur komplizierter, wenn weitere Verarbeitungszustände zu dem Aktionsbaum hinzugefügt werden.
Die Absicht des Entwicklers hier scheint klar zu sein: ELO-bezogene Nachrichten sollen in einen bestimmten Ordner verschoben werden, und alle anderen Nachrichten können einfach ignoriert werden. Allerdings werden alle nicht-ELO-bezogenen Nachrichten zu einem Falsch-Wert im Baum führen, der wiederum zu Fehlern in den ELOxc-Protokollen führt. Ein Auszug:
Worker-Protokoll:
<<< MatchReplaceAT.EXEC.MSG: no match foundcnf ==> break<<< InternalExecute (Tree)result: res_falseDie Job-Zusammenfassung von ELOxc wird auch einen Fehler für jeden Eintrag protokollieren, den zu diesen Zustand führt.
Die Job-Zusammenfassung schreibt mitunter eine Zusammenfassung der Ursachen jedes Fehlers. Damit wird es relativ einfach zu erkennen, dass kein Fehler im eigentlichen Sinne passiert ist. Das ist allerdings aus zwei Gründen problematisch: Erstens könnte ein unerfahrener Beobachter anhand dieser Übersicht dadurch zu dem Schluss kommen, dass die Software selbst nicht richtig funktioniert. Der zweite und wichtigere Faktor ist, dass der Fehlerbericht diese Informationen mit richtigen Fehlern in der Software vermischt, was die Behebung eventuell auftauchender Fehler erschwert.
Um dieses Problem zu vermeiden, sollten Sie dafür sorgen, dass jeder Aktionsbaum bei einem eigentlich gewünschten Falsch den Wert Wahr zurückgibt. Sie erzielen das, indem Sie eine Aktion Ergebnis zum Baum hinzufügen:
Bitte beachten Sie, dass die Ergebnis-Aktion den Baum am Ende zu einem Wahr zwingt, wo es sonst zu einem Falsch führen würde. Nachdem Sie diese Aktion dem Baum hinzugefügt haben, erscheint die Aktion und der zugehörige Kommentar in den ELOxc-Protokollen, als Fehler erscheint sie aber nicht.
Worker-Protokoll:
>>> ResultNo [ELO] marker; ignoreE-mail item without [ELO] in subject<<< ResultAT.EXEC.MSG: No [ELO] marker; ignoreAT.SUCCDie Job-Zusammenfassung von ELOxc wird keine weitere Fehler berichten.