Logging und Fehleranalyse
Grundlagen
Treten während der Ausführung eines Prozesses Fehler auf, werden diese in der Datenbank für den jeweiligen Prozess protokolliert. Die Fehlerprotokolle sind direkt in der Detailsansicht des Prozesses im Tab Übersicht einsehbar.
Für jeden Fehler stehen u. a. folgende Informationen zur Verfügung:
Anlagedatum und -uhrzeit: Zeitpunkt des Auftretens des Fehlers
Kategorie des Fehlers: z. B. Skript-Aktion, Prozessstart usw.
Meldung: interne Meldung zum Fehler
Benutzer: ausführender Benutzer der Aktion, bei der der Fehler aufgetreten ist
Jeder Fehlereintrag kann aufgeklappt werden und enthält dann weiterführende Details:
Version: Version des ausgeführten Prozesses
Aktion & Aktions-ID: sprechender Name der Aktion aus dem technischen Modell und deren interne ID
Fehlermeldung & Fehler-ID: detaillierter Meldungstext (z. B. aus einem BPM-Skript) und die Fehler-ID zum gezielten Auffinden des Fehlers in den Log-Dateien
Das aktuell geltende Loglevel (siehe Abschnitt Skript-Logging) und die Datenbereinigung werden in den Prozessdetails eingestellt. Ein Speichern bei der Änderung des Log-Levels ist nicht notwendig.

Datenbank-Protokollierung
Die Datenbank-Protokollierung von Fehlern während der Prozessausführung ist im Standard aktiv. Eine erweiterte Suche über die Protokollierung von Fehlern in Prozessen kann im Administrationsmenü unter Laufzeitdaten in der Entität Prozess-Fehlerprotokolle erfolgen.
Die Fehlerprotokollierung in der Datenbank sollte nicht abgeschaltet werden, da sonst Status-Informationen zu laufenden Prozess-Instanzen nicht korrekt angezeigt werden können.
Skript-Logging
In der Konfiguration zu CURSOR-BPM kann auch die Protokollierung aus dem Skript (Verwendung der Klasse ScriptUtils) in die Datenbank aktiviert werden. Diese Einträge tauchen mit der Kennzeichnung DEBUG, INFO oder ERROR auf und enthalten keinen Fehlermeldungstext.
Die Änderung des Loglevels auf DEBUG sollte nur temporär und nicht im produktiven Umfeld eingesetzt werden, da eine ausgiebige DEBUG-Protokollierung in Prozessen die Performanz des Systems stark beeinträchtigen kann!
Fehleranalyse
Um entsprechende Logmeldungen bei der Prozessausführung zu generieren, müssen die entsprechenden Befehle im Prozessskript aufgenommen werden.
Dabei werden Fehlermeldungen und Infos immer im Log ausgegeben:
StringUtils.error(String): Fehlermeldungen mit dem Präfix ERRORStringUtils.info(String): Informationen mit dem Präfix INFO
Um nachzuvollziehen, welche Schritte vom Prozess durchgeführt wurden, können zusätzlich Debug-Nachrichten im Prozess-Skript ausgegeben werden.
ScriptUtils.enableDebug(boolean): Aktiviert die Ausgabe von Debug-Meldungen in der aktuellen AktionStringUtils.debug(String): Ausgabe von Meldungen mit dem Präfix DEBUG
Log-Dateien aufrufen
Logging der Prozessausführung
Die Prozessausführung kann zusätzlich im Applikationsserver in einer eigenen Log-Datei protokolliert werden. Das Logging kann über die Kommandozeile im Applikationsserver aktiviert werden.
> jboss\bin\jboss-logging.bat processExecution true
Die Log-Datei zeigt nun die verschiedenen Ausführungspunkt eines Prozesses.
//Starten des Prozesses
start process <processid> <user>
start actionbox <processid> <user>
start maskscript <processid> <user>
start manual <processid> <user>
start process <processid> <user> <instanceid> successfull
//Weiterführen einer Benutzeraktion
complete task <processid> <user> <instanceid>
complete task <processid> <user> <instanceid> successfull
//Weiterführen eines Nachrichtenereignisses (Webservice, Mail)
resume process <executionId> <user>
resume process <executionId> <user> successful
//Weiterführen über Zeitaktion
process timer <processDeploymentId> <instanceid>
//Ende des Prozesses
end process <processDeploymentId> <instanceid>
Logging vermehrter Skript-Aktionen

Falls einige spezielle Prozesse einen anderen Schwellwert benötigen, um zu häufige Service-Mails zu vermeiden oder hierfür schneller reagieren können, ist eine Anpassung des Schwellenwertes pro Prozess in den Anwendungsvariablen möglich. Hierfür wird ein neuer Eintrag in den Process Preferences vom Typ ScriptCounterThreshold angelegt. In der Eigenschaft muss die Process-ID vermerkt und der Wert passend gewählt werden.

Wurde der Schwellenwert überschritten, so wird dies im ProcessExecution.log vermerkt. Die Benachrichtigung erfolgt pro Prozessaktion maximal einmal in der Stunde, beispielhaft:
2026-01-27 06:13:44,114 ERROR [ProcessExecution] Too many script executions in 15min for [Process: C0PerformanceTest(19|C0) 'Performance-Test'] [Instance: 16cd1cc4-504f-11e9-901f-4cedfb672e62] [Task: cid_96d6sp1brvvdpsiScriptTaskProperty 'Schleifendurchläufe'][User: ADMIN as ADMIN] - 61 > 60
Wurde die Service-Mail-Adresse und Service-Mail-Konfiguration im System hinterlegt, so wird parallel zum Log-Eintrag der Empfänger von System-Mails über die zu häufige Ausführung der Prozess-Aktion per Mail informiert.

