log user error(a,b,[c,d,e])
Gruppe |
Wenn diese Funktion wenigstens einmal aufgerufen wurde, wird nach Ende der Phase 3 (Mapping) das Profil mit einem Fehler abgebrochen. Wird die Funktion mehr als 150 Mal aufgerufen, wird auch schon vor Ende der Phase 3 mit einem Fehler abgebrochen.
Fehler-Jobs, die mit dieser Funktion als fehlerhaft markiert wurden, werden im Control Center unter Logs/Fehler mit einem Ausrufezeichen ! vor dem Profilnamen gekennzeichnet.
Fehler dieser Art können im Control Center auf eine spezielle Weise betrachtet und bearbeitet werden. Dort werden dann auch die benutzerdefinierte Fehlermeldung b oder c sichtbar (diese Meldung wird auch als Ergebnis der Funktionsausführung zurückgeliefert). Die Fehlermeldung kann wahlweise als Parameter b direkt übergeben oder aus der Ersetzungsdatei ./conf/user_errors.properties mit dem Schlüssel c gelesen werden. Wenn unter dem Schlüssel c eine Meldung in der Datei existiert, wird diese verwendet, sonst Parameter b.
Der Parameter a dient der internen Markierung eines Quellfelds (deshalb sind auch nur die Parameter-Typen Feld und Zuordnung erlaubt). Im Control Center wird dann die mit dem markierten Quellfeld korrespondierende Stelle in der Eingangsdatei gezeigt. Der optionale Parameter d kann den Namen des Quellfeldes enthalten - dadurch wird das Feld in der Fehlerbearbeitung besser dargestellt bzw. gefunden.
Hinweis: Der Sinn dieser Funktion ist, dass man für einen bestimmten Wert eines Quellfeldes ein Mapping abbricht und dieses Quellfeld intern markiert damit die korrespondierenden Eingangsdaten im Control Center dann gesichtet und korrigiert werden können. Die Funktion wird daher in einem Funktions-Konstrukt verwendet, dass zuvor den Wert des Quellfeldes überprüft und diese Funktion hier nur ausführt, wenn ein unerwünschter/problematischer Wert im Quellfeld vorgefunden wurde.
Parameterbeschreibung
Parameter |
Beschreibung |
a |
Quellfeld, das markiert werden soll (Parameter-Typ Feld oder Zuordnung), ansonsten der unzulässige Wert. |
b |
Fehlermeldung, die geloggt werden soll. |
c |
(optional) Schlüsselname aus einer Ersetzungsdatei. Diese Datei muss im Ordner ./conf liegen und user_errors.properties heißen. Siehe folgendes Beispiel. Siehe auch Parameter e. |
d |
(optional) Name des Quellfeldes, falls Parameter a einen Wert und nicht ein Quellfeld darstellt. |
e |
(optional) Hier kann der Pfad zu der Ersetzungsdatei angegeben werden. Default: ./conf/user_errors.properties |
Beispiel
Wir wollen bei der folgenden Eingangsdatei (eine Bestellung) überprüfen, ob eine Bestellung eine negative Menge enthält.
9879871234,Peter Dunn,4,25-04-2017
9879871235,Max Keller,-5,24-04-2017
9879871236,Michael Peterson,7,08-02-1999
Dazu prüfen wir im Mapping (Quellfelder Order_number, Customer_name, Quantity, Date) das Mengenfeld (Quantity). Ist die Menge negativ, dann rufen wir die Funktion log user error(a,b,[c]) auf.
Gegeben sei folgende Ersetzungsdatei user_errors.properties im Verzeichnis ./conf
negative_amount=The quantity is negative!
date_in_past=The date is in the past!
Folgend ein paar Beispiele, was wir bei einem Funktionsaufruf als Ergebnis für diverse Parameterwerte erhalten würden. Hinweis: Wird für den Parameter a der Typ Zuordnung ausgewählt, dann muss (um in unserem Beispiel zu bleiben) das Feld, auf dem die Funktion ausgeführt wird natürlich mit dem Quellfeld Quantity gemappt sein.
Parameter a |
Parameter b |
Parameter c |
Parameter d |
Parameter e |
Ergebnis |
Feld: Quantity |
|
negative_amount |
|
|
The quantity is negative! |
Feld: Quantity |
The quantity is negative! |
|
|
|
The quantity is negative! |
Feld: Quantity |
Processing error. |
date_in_past |
|
|
The date is in the past! |
Zuordnung |
Processing error. |
date_in_past |
|
|
The date is in the past! |
Zuordnung |
Processing error. |
non_existent_value |
|
|
Processing error. |
-100 |
Processing error. |
non_existent_value |
Quantity |
|
Processing error. |
Für unser Beispiel verwenden wir die erste Parameterkonstellation. Wir geben in Parameter a das Quellfeld Quantity an. D. h. in den Eingangsdaten werden die Stellen, die mit diesem Feld korrespondieren, als fehlerhaft markiert. Das erlaubt uns, wie wir weiter unten sehen werden, diese Daten später gezielt im Control Center zu korrigieren.
Wird die Funktion im Profil mit dem Namen Profil_mit_Funktion_log_user_error aufgerufen, wird der Abbruch im Control Center unter Logs/Übersicht angezeigt. Dabei ist unter Log-Meldungen die Anzahl der Aufrufe der Funktion zu sehen: Defined user errors (1) detected - aborting bedeutet, dass die Funktion einmal aufgerufen wurde (also eine Markierung vorgenommen wurde) und deshalb die Verarbeitung des Profils nach Phase 3 abgebrochen wurde.
Unter Logs/Fehler wird der Abbruch folgendermaßen angezeigt.
Wenn Sie diesen Fehlereintrag markieren (Fehler dieser Art werden mit einem Ausrufezeichen ! gekennzeichnet), können Sie über das Kontextmenü die Option Fehler bearbeiten wählen. Dadurch wird ein neuer Dialog geöffnet.
(1) Fehler-Meldung: Dies ist die Liste aller durch die Funktion erfolgten Markierungen (bei uns eine). Wenn Sie einen Eintrag der Liste markieren, dann erscheinen in (2) und (3) die spezifischen Daten.
(2) Fenster rechts oben: Hier werden Details zur Zielstruktur angezeigt. Das Zielstruktur-Feld, auf dem die Funktion ausgeführt wurde, in der wievielten Iteration sich der Knoten, in dem sich das Zielfeld befindet, befand, als die Funktion ausgeführt wurde und in welchem Datenblatt diese Ausführung stattfand. Zur Erinnerung: Die Funktion wird auf einem Zielfeld ausgeführt, um ein Quellstrukturfeld zu markieren.
(3) Fenster unten: Hier wird die Eingangsdatei angezeigt. Wird in (1) ein Eintrag selektiert, dann wird die Stelle in den Eingangsdaten hervorgehoben, die mit dem markierten Quellstrukturfeld korrespondiert. In unserem Fall -5 (also die als fehlerhaft erkannte negative Menge).
(4) Speichern & Job neu starten: Wenn die Datei korrigiert wurde, kann diese (auf dem Server) gespeichert werden. Mit dieser korrigierten Eingangsdatei kann dann ein Neudurchlauf des Jobs durchgeführt werden.