Skip to main content
Skip table of contents

Logging

Grundlagen

Fehler, die während der Ausführung eines Prozesses auftreten, werden in der Datenbank für den Prozess protokolliert. Diese Protokollierung ist direkt in CURSOR-BPM zum jeweiligen Prozess einsehbar. Die Tabelle lädt in der Standard-Konfiguration die letzten 100 Einträge und erlaubt das Filtern und Sortieren. Über das Kontextmenü auf dem Tabellenkopf können Sie Spalten ein- bzw. ausblenden. Über den Schalter  Alle Logs laden werden alle Fehlereinträge zu diesem Prozess geladen.

Folgende Informationen zu einem Fehler sind verfügbar:

  • Anlagedatum: Zeitpunkt des Auftretens des Fehlers

  • Log & Log-Name: Kategorie des Fehlers (wie Skript-Aktion, Prozess-Start usw.)

  • Version: Version des ausgeführten Prozesses

  • Aktion & Aktions-ID: Der sprechende Name einer Aktion aus dem technischen Modell und die interne ID

  • Benutzer: Der ausführende Benutzer dieser Aktion

  • Meldung: Die interne Meldung

  • Fehlermeldung & Fehler-ID: Der Meldungstext z.B. über den Fehler im BPM-Skript und die Fehler-ID zum Auffinden des Fehlers in den Log-Dateien

Ist der Fehler einer Aktion im technischen Modell zugeordnet, so kann man über den Schalter

 

zu der betreffenden Aktion gelangen. Alte Einträge können je nach Selektion oder Anlagedatum entfernt werden.

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.

Warnung

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.

Warnung

Diese Option 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

 Fehlermeldungen und Infos werden immer im Log ausgegeben:

  • StringUtils.error(String): Fehlermeldungen mit dem Präfix ERROR

  • StringUtils.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.

Diese Debug-Meldungen müssen zuvor aktiviert werden, damit sie im Log erscheinen. Dies ermöglicht Meldungen während dem Test, die aber im Produktivsystem ausgestellt werden können, ohne den Prozess zu verändern.

  • ScriptUtils.enableDebug(boolean): Aktiviert die Ausgabe von Debug-Meldungen in der aktuellen Aktion

  • StringUtils.debug(String): Ausgabe von Meldungen mit dem Präfix DEBUG

Log anzeigen

Im Cockpit können sowohl das Prozess-Log des Applikationsservers und als auch das des aktuellen Clients geöffnet werden.

Beim Betätigen des Schalters wird eine Kopie der Log-Dateien erstellt und diese geöffnet.


Die Log-Dateien werden mit der Anwendung Notepad++ geöffnet, welches im CRM-Client mit ausgeliefert wird (client/bin/notepadmini/notepad++.exe).

Jede Ausgabe wird mit Zusatzinformationen angereichert, um die Ausgabe einem Prozess, der Prozess-Instanz, der Aktion und einem Benutzer zuordnen zu können.

CODE
2013-02-22 14:51:20,775 INFO  [ProcessScript] [Process: Prozess(4) 'Prozess'] [Instance: f02bfe11-7cf6-11e2-b5e1-c86000771447] [Task: cid_fvvvvvv074r1g17k0tsgijScriptTaskProperty ''] [User: ADMIN] - Starten der Aktion

Log-Ausgabe ändern

Ist die Ausgabe der Log-Datein nicht in Notepad++ gewünscht und steht Ihnen ein anderes Programm zur Verfügung, so können Sie den Pfad über die Datenbank ändern:

Beispiel für Oracle
SQL
INSERT INTO PropertyMapper (Pk, Id, PropertyValue, PropertyType, Property, Principal, Active, CreateDate, CreateUser, UpdateDate, UpdateUser)
VALUES
('SYSTEM.ProcessPreferences.logViewer','SYSTEM_NODE:/de/cursor/jevi/common/process/ProcessPreferences$!!$logViewer',
'c:/pfad/logprogramm.exe', 'SYSTEM', '', '', 1, SYSDATE, 'TECH_USER', SYSDATE, 'TECH_USER')
ab 17.1
INSERT INTO PropertyMapper (Pk, Id, PropertyValue, PropertyType, Property, Principal, CustLayer, Active, CreateDate, CreateUser, UpdateDate, UpdateUser)
VALUES
('SYSTEM.ProcessPreferences.logViewer','/de/cursor/jevi/common/process/ProcessPreferences$!!$logViewer',
'c:/pfad/logprogramm.exe', 'SYSTEM', '', '', 'CN' 1, SYSDATE, 'TECH_USER', SYSDATE, 'TECH_USER')

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.

CODE
> jboss\bin\jboss-logging.bat processExecution true

Die Log-Datei zeigt nun die verschiedenen Ausführungspunkt eines Prozesses.

CODE
//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 Skriptaktionen

Um Performance-Probleme durch laufenden Prozesse besser in der Anwendung verfolgen zu können, wurde ein spezielles Logging für die Ausführung von Skriptaktionen eingeführt. Überschreitet eine Aktion die Ausführungshäufigkeit von 90 Durchläufen in 15 Minuten, so wird dies im Server-Log protokolliert und als Service-Mail an den Empfänger von System-Mails versendet. Der Schwellenwert von 90 Durchläufen kann global auf Anforderung des Kunden angepasst werden.

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.

Wurde der Schwellenwert überschritten, so wird dies im ProcessExecution.log vermerkt. Die Benachrichtigung erfolgt pro Prozessaktion maximal einmal in der Stunde.

ProcessExecution.log
CODE
2019-03-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.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.