Inhaltsverzeichnis

Debugging

Um die korrekte Funktionsweise einer Mappingtransformation zu testen gibt es verschiedene Möglichkeiten:

  1. Im Mappingdesigner:
    1. mit automatisch generierten Testdaten
    2. Anhand einer bestehenden Datei1) im Mappingeditor
    3. Anhand einer bestehenden Datei mit mehreren Entitäten via Analysator 2) im Mappingeditor
    4. Aus einem BackendObjekt 3) im Mappingeditor
    5. Testen von Transformationsketten
  2. Im Nachrichtenkorb:
    1. Ausgehend von einer bestehenden und analysierten Nachricht4)

1. Quellobjekt instanzieren im Mappingdesigner

Um im Mappingdesigner das Debuggen zu verwenden muss zuerst das Quellobjekt instanziert werden. Wählen Sie in der Mapping Definitionsansicht im linken oberen Bereich Debugging Menu.

Dies bietet vier verschiedenen Möglichkeiten der Objektinstanzierung an.

a) Objektinstanz mit generierten Testdaten erzeugen

Wählen Sie in der Mapping Definitionsansicht im linken oberen Bereich Debugging Menu den Eintrag Testdaten erzeugen aus. Dies generiert automatisch eine Objektinstanz im Quellobjekt mit Datenelementspezifischen Inhalten und jeweils drei Instanzen je ArrayList Item. Mit Testdaten kann schnell geprüft werden ob die Transformation die gewünschten Resultate erzeugt.

b) Objektinstanz aus einer bestehenden Datei mit bekannter Entität erzeugen

Wählen Sie in der Mapping Definitionsansicht im linken oberen Bereich Debugging Menu den Eintrag Aus Datei laden aus. Enthält die, im nun folgenden Dateiauswahldialog selektierte Datei eine Entität welche in das Quellobjekt passt wird dieses mit dem Inhalt der Datei instanziert.

c) Objektinstanz aus einer bestehenden Datei mit mehreren Entitäten via Analysator erzeugen

Dieser Methode bietet sich dann an, wenn Quelldateien mehrere Entitäten des Quellobjekts enthalten. Wählen Sie in der Mapping Definitionsansicht im linken oberen Bereich Debugging Menu den Eintrag Über Analysator laden aus. Zunächst wird der gewünschte Analysator ausgewählt und mit OK bestätigt, mit dem nun folgenden Dateiauswahldialog die gewünschte Datei selektierte. Kann die Datei erfolgreich mit dem ausgewählten Analysator analysiert werden wird in einem folgenden Dialog eine Liste von Entitäten angeboten aus der man nun eine auswählt und mit OK bestätigt.

Hinweis: Sind in einer Nachricht mehrere Entitäten enthalten können diese mit Mehrfachselektion ausgewählt und als Quelle instanziert werden. Dadurch wird es möglich Gruppierungen bzw. Auswertungen und Konvertierungen über den Entitätskontext hinaus machen zu können.

d) Objektinstanz aus einem BackendObjekt erzeugen

Dieser Methode bietet sich dann an, wenn die Datenquelle über eine Datenbankintegration bedient werden kann. Wählen Sie in der Mapping Definitionsansicht im linken oberen Bereich Debugging Menu den Eintrag Aus BackendObject laden aus.

e) Testen von Transformationsketten

Wird ein Zielobjekt erfolgreich instanziert und besitzt das System ein Mapping mit diesem Zieltyp als Quelltyp, dann kann mit dem instanzierten Ziel direkt in eine neue Mappingdesignerinstanz gegangen werden. Wählen Sie in der Mapping Definitionsansicht im *rechten oberen Bereich aus dem Debugging Menu den Menüeintrag Mit anderem Mapping debuggen aus.

2. Quellobjekt instanzieren aus einer Nachricht

Man kann aus Nachrichten heraus direkt in das Debugging von Mappings gelangen. Wenn also eine Nachricht in der Liste der Nachrichten ausgewählt wird kann man via das Kontextmenu

via Nachricht debuggen Mapping debuggen oder in der Detailansicht einer Nachricht über das Menu

den Inhalt der Nachricht als Quellobjekt eines Mappings mit dem Menüeintrag Mapping debuggen instanzieren.

Hinweis: Nur unter der Voraussetzung das die Nachricht bereits erfolgreich analysiert ist. Sonst ist Mapping debuggen nicht aktiv.

3. Mapping anwenden

Hat man das Quellobjekt instanziert, dann kann auf das Ziel übersetzt werden indem man aus dem Debugging Menu den ersten Menueintrag Mapping anwenden5) wählt. Daraufhin werden im Quell-Objekt (linke Seite) die Eingangs- und im Ziel-Objekt (rechte Seite) die Ausgangswerte ausgegeben.

Statusleiste

Die Statusleiste6) gibt via Einfärbung ein erstes Feedback über Erfolg oder Misserfolg der Transformation.

  1. Sie ist grün bei Erfolg:
  2. Sie ist gelb bei Warnungen:
  3. Sie ist rot bei Fehler:

Alle Übersetzungsschritte werden in einem Log-Fenster ausgegeben, dieses muss allerdings erst eingeblendet werden über die Schaltfläche , in der Statusleiste7).

XPath Abfragen

Mit der XPath Abfrage können einzelne Selektionen auf die Quellinstanz getestet werden.

4. Mapping Fehler

Treten Fehler auf, so werden die Einträge der Objekte bei denen ein Fehler aufgetreten ist rot markiert im Logfenster mit Objektname und Fehlerbeschreibung ausgegeben. Anhand der Fehlerbeschreibung können dann, falsche Verknüpfungen lokalisiert und korrigiert werden.

Custom Error Message

Wird eine komplexere Fehlerausgabe benötigt so kann im Map-Editor für jede Mapping-Rule unter Element-Eigenschaften eine eigene CustomErrorExpression definiert werden. Auch hierbei muss es sich um eine XPath-Expression handeln z.Bsp. :

concat('An Position: ', $position,' fehlt die EAN!')


1)
Diese muss einem bestehenden Entitätstyp entsprechen.
2) , 3)
So kann eine spezifische Entität innerhalb einer Datei ausgewählt werden.
4)
Diese muss Entitäten enthalten welche einem bestehenden Entitätstyp entsprechen.
5)
Tastaturshortcut STRG+r ist hier auch möglich.
6) , 7)
Im Mappingdesigner, unten