Please enable JavaScript to view this site.

Prozess Designer

Navigation: PHP API > Allgemeines

Fehlerbehandlung und Fehlerausgabe

Scroll Zurück Oben Weiter Mehr

Fehlerbehandlung

Beim Schreiben von PHP-Funktionen ist es unbedingt notwendig mögliche Laufzeitfehler (Exceptions) abzufangen und explizit zu behandeln. Verwenden Sie dazu einen try-catch-Block.

Alle nicht explizit innerhalb einer PHP-Funktion behandelten Exceptions werden von JobRouter abgefangen und führen dazu, dass die weitere reguläre Programmausführung abgebrochen wird. Bei während des Sendens von Schritten ausgeführten PHP-Funktionen (Regelbedingungs- und Regelausführungsfunktionen) führt dies dazu, dass der Schritt in den Fehlerstatus versetzt und das Senden des Schrittes abgebrochen wird.

Beispiel:

try {

 $jobDB = $this->getJobDB();

 $sql = 'DELETE FROM JRUSERS WHERE username = ' . $jobDB->quote('mmustermann');

 $result = $jobDB->exec($sql);

 if ($result === false) {

         throw new JobRouterException($jobDB->getErrorMessage());

 }

} catch (JobRouterException $e) {

 // Code für Fehlerbehandlung...

}

Fehlerausgabe

Sie können Exceptions in PHP-Funktionen gezielt nutzen, um Fehlerausgaben erzeugen. Bei während des Sendens von Schritten ausgeführten PHP-Funktionen (Regelbedingungs- und Regelausführungsfunktionen) führt dies dazu, dass der Schritt in den Fehlerstatus versetzt und die Fehlermeldung beim Schritt gespeichert wird. Die Prozessverantwortlichen können die Fehlermeldung in der Schrittübersicht einsehen. Bei Benutzerschritten wird die Fehlermeldung außerdem im Dialog angezeigt.

Um eine Fehlermeldung zu erzeugen, fügen Sie die folgende Zeile in Ihr Skript ein:

try {

 // Programmcode, der JobRouterException auslöst

} catch (JobRouterException $e) {

 $errorMessage = 'Löschen des Benutzers fehlgeschlagen: ' . $e->getMessage();

 throw new JobRouterException($errorMessage);

}

Übergeben Sie die Fehlermeldung als Parameter an den Konstruktor der JobRouterException.

Beispiel 1 (Ausgabe eines Validierungsfehlers):

if ($this->getTableValue('RECHNUNGSNUMMER') == '') {

     throw new JobRouterException('Rechnungsnummer fehlt.');

}

 

Beispiel 2 (Ausgabe einer Datenbank-Fehlermeldung):

$jobDB = $this->getJobDB();

$sql = 'DELETE FROM JRUSERS WHERE username = ' . $jobDB->quote('mmustermann');

$result = $jobDB->exec($sql);

if ($result === false) {

 throw new JobRouterException($jobDB->getErrorMessage());

}