Altova MapForce 2025 Professional Edition

Mit Hilfe der Wertezuordnungskomponente (Abbildung unten) können Sie einen Wert mit Hilfe einer vordefinierten Lookup-Tabelle durch einen anderen Wert ersetzen. Eine solche Komponente verarbeitet immer nur einen Wert auf einmal, daher hat sie im Mapping einen Input und ein Ergebnis (result).

mf_lookup_01

Eine Wertezuordnung eignet sich, um einzelne Datenelemente in zwei Datensätzen zu mappen, um Datenelemente zu ersetzen. So könnten Sie z.B. in Form von Zahlen ausgedrückte Wochentage (1, 2, 3, 4, 5, 6 und 7) auf die Namen der einzelnen Wochentage ("Montag", "Dienstag", usw.) mappen. Oder Sie können die Namen der Monate ("Januar", "Februar", "März", usw.) auf die Zahlendarstellung der einzelnen Monate (1, 2, 3, usw.) mappen. Zur Mapping-Laufzeit werden die entsprechenden Werte entsprechend Ihrer benutzerdefinierten Lookup-Tabelle ersetzt. Die Werte in den beiden Datensätzen können einen unterschiedlichen Typ haben, doch müssen für jeden Datensatz Werte desselben Datentyps gespeichert sein.

 

Wertezuordnungskomponenten eignen sich für einfache Lookup-Verfahren, bei denen jeder Wert im ersten Datensatz einem einzigen Wert im zweiten Datensatz entspricht. Wenn ein Wert nicht in der Lookup-Tabelle gefunden wird, können Sie ihn entweder durch einen benutzerdefinierten Wert oder durch einen leeren Wert ersetzen oder ihn unverändert an die zweite Komponente übergeben. Wenn Sie Werte anhand komplexerer Kriterien nachschlagen oder filtern müssen, verwenden Sie stattdessen eine der Filterkomponenten.

 

Wenn Sie Code generieren oder eine MapForce Server-Ausführungsdatei anhand des Mappings generieren, wird die Lookup-Tabelle in den generierten Code bzw. die generierte Datei eingebettet. Daher empfiehlt es sich nur dann direkt im Mapping eine Lookup-Tabelle zu definieren, wenn sich Ihre Daten nicht ständig ändern und die Tabelle nicht sehr groß ist (nicht größer als einige hundert Einträge). Wenn sich die Lookup-Daten regelmäßig ändern, ist es oft schwierig sowohl das Mapping als auch den generierten Code regelmäßig auf aktuellem Stand zu halten. Es ist einfacher, die Lookup-Tabelle in Form einer Text-, XML-, Datenbank- oder eventuell Excel-Datei zu warten.

 

Bei sehr großen Lookup-Tabellen wird die Mapping-Ausführung durch die Lookup-Tabelle verlangsamt. In diesem Fall wird empfohlen, stattdessen eine Datenbankkomponente mit SQL-Where zu verwenden. Besonders gut dafür eigenen sich aufgrund Ihrer Portabilität SQLite-Datenbanken. Serverseitig können Sie die Performance von Lookup-Tabellen durch Ausführung eines Mappings mit der MapForce Server oder MapForce Server Advanced Edition verbessern.

 

Erstellen von Wertezuordnungen

Um eine Wertezuordnungskomponente zum Mapping hinzuzufügen, wählen Sie eine der folgenden Methoden:

 

Klicken Sie auf die Symbolleisten-Schaltfläche Wertezuordnung einfügen ic-valmap .

Klicken Sie im Menü Einfügen auf Wertezuordnung.

Klicken Sie mit der rechten Maustaste auf eine Verbindung und wählen Sie im Kontextmenü den Befehl Wertezuordnung einfügen.

 

Daraufhin wird eine neue Wertezuordnungskomponente zum Mapping hinzugefügt. Sie können nun Datenelementpaare zur Lookup-Tabelle hinzufügen. Doppelklicken Sie dazu auf die Titelleiste der Komponente oder rechtsklicken Sie auf die Komponente und wählen Sie im Kontextmenü den Befehl Eigenschaften

mf_lookup_02

MapForce ersetzt die einzelnen Werte, die zum Input der Wertezuordnung gelangen zur Mapping-Laufzeit. Wenn die linke Spalte der Lookup-Tabelle einen übereinstimmenden Wert enthält, wird der Original-Input-Wert durch den Wert aus der rechten Spalte ersetzt. Andernfalls haben Sie die Möglichkeit, folgende Alternativen zu konfigurieren:

 

einen Ersetzungswert. Im obigen Beispiel ist der Ersetzungswert der Text "incorrect date" (falsches Datum). Sie können auch festlegen, dass der Ersetzungswert leer ist, indem Sie keinen Text eingeben.

den Original-Input-Wert: In diesem Fall wird der Original-Input-Wert unverändert an das Mapping übergeben, wenn die Lookup-Tabelle keine Entsprechung enthält.

 

Wenn Sie keine "Andernfalls"-Bedingung konfigurieren, wird jedesmal, wenn keine Entsprechung gefunden wird, ein leerer Node zurückgegeben. In diesem Fall wird nichts an die Zielkomponente übergeben und die Ausgabe enthält fehlende Felder. Um dies zu vermeiden, sollten Sie entweder die Andernfalls-Bedingung konfigurieren oder die Funktion substitute-missing verwenden.

 

Es gibt einen Unterschied zwischen der Definition eines leeren Ersetzungswerts und einer überhaupt fehlenden Definition der Andernfalls-Bedingung. Im ersten Fall wird das Feld in der Ausgabe generiert, hat aber einen leeren Wert. Im zweiten Fall wird das Feld (oder XML-Element), das den Wert enthält, gar nicht erstellt. Nähere Informationen dazu finden Sie unter: Beispiel: Ersetzen von Stellenbezeichnungen.

 

Befüllen einer Wertezuordnung

Sie können so viele Wertpaare wie nötig in einer Lookup-Tabelle definieren. Sie können die Werte manuell eingeben oder Tabellendaten aus Text-, CSV-, oder Excel-Tabellen hineinkopieren. In den meisten Fällen funktioniert es auch, wenn Sie Tabellen über einen gebräuchlichen Browser aus einer HTML-Seite kopieren und einfügen. Sie können Daten auch aus dem Datenbankraster im Fenster "DB-Abfrage" einfügen.  Wenn Sie Daten aus Textdateien kopieren, müssen die Felder durch Tabulatorzeichen voneinander getrennt sein. Außerdem erkennt MapForce in den meisten Fällen durch Kommas oder Semikola getrennten Text.

 

Beachten Sie bei der Erstellung von Lookup-Tabellen die folgenden Punkte:

 

1.Alle Datenelemente in der linken Spalte müssen eindeutig sein. Andernfalls ließe sich nicht ermitteln, für welches Datenelement genau eine Entsprechung benötigt wird.

2.Datenelemente, die zur selben Spalte gehören, müssen denselben Datentyp haben. Sie können den Datentyp aus der Dropdown-Liste am oberen Rand der jeweiligen Spalte der Lookup-Tabelle auswählen. Um Boolesche Typen zu konvertieren, geben Sie den Text "true" oder "false" wortwörtlich ein. Ein Beispiel dazu finden Sie unter Beispiel: Ersetzen von Wochentagen.

 

Wenn MapForce in der Lookup-Tabelle ungültige Daten findet, wird eine Fehlermeldung angezeigt und die ungültigen Zeilen werden rosa markiert, z.B:

mf_lookup_03

Um Daten aus einer externen Quelle in die Wertezuordnungskomponente zu importieren, gehen Sie folgendermaßen vor:

 

1.Wählen Sie im Ausgangsprogramm (z.B. Excel) die entsprechenden Zellen aus. Dabei kann es sich entweder um eine einzelne Spalte oder um zwei benachbarte Spalten handeln.

2.Kopieren Sie die Daten mit dem Befehl Kopieren des externen Programms in die Zwischenablage.

3.Klicken Sie in der Wertezuordnungskomponente auf die Zeile, vor der die Daten eingefügt werden sollen.

4.Klicken Sie in der Wertezuordnungskomponente auf die Schaltfläche Tabelle aus der Zwischenablage einfügen mf_ic_paste oder drücken Sie alternativ dazu Strg+V oder Umschalt+Einfg.

 

Anmerkung:Die Schaltfläche Tabelle aus der Zwischenablage einfügen ist nur dann aktiv, wenn Sie vorher Daten aus einer Ausgangsdatei kopiert haben (d.h. wenn sich in der Zwischenablage Daten befinden).

 

Wenn Ihre Zwischenablage mehrere Spalten enthält, werden nur Daten aus den beiden ersten Spalten in die Lookup-Tabelle eingefügt, weitere Spalten werden ignoriert. Wenn Sie Daten aus einer einzigen Spalte über vorhandene Werte einfügen, erscheint ein Kontextmenü, in dem Sie gefragt werden, ob die Daten aus der Zwischenablage als neue Zeilen eingefügt werden sollen oder ob die vorhandenen Zeilen überschrieben werden sollen. Stellen Sie daher sicher, dass die Zwischenablage nur eine Spalte und nicht mehrere enthält, wenn Sie vorhandene Werte in der Lookup-Tabelle überschreiben möchten, anstatt neue Zeilen einzufügen.

 

Um Zeilen manuell vor einer vorhandenen Zeile einzufügen, klicken Sie auf die betreffende Zeile und anschließend auf die Schaltfläche Einfügen mf_ic_insert .

 
Um eine vorhandene Zeile an eine andere Position zu verschieben, ziehen Sie die Zeile (noch oben oder nach unten) an die neue Position, während Sie die linke Maustaste gedrückt halten.

 

Um Zeilen zu kopieren oder auszuschneiden, um sie an einer anderen Position einzufügen, wählen Sie die Zeile zuerst aus und klicken Sie anschließend auf die Schaltfläche Kopieren mf_ic_copy (bzw. Ausschneiden mf_ic_cut ). Sie können auch mehrere nicht unbedingt aufeinander folgende Zeilen kopieren oder ausschneiden. Halten Sie dazu beim Auswählen der Zeilen die Strg-Taste gedrückt. Beachten Sie, dass ausgeschnittener oder kopierter Text immer Werte aus beiden Spalten enthält. Sie können nicht Werte aus nur einer Spalte ausschneiden oder kopieren.

 

Um eine Zeile zu entfernen, klicken Sie darauf und anschließend auf die Schaltfläche Löschen mf_ic_delete .

 

Um die linke und die rechte Spalte zu vertauschen, klicken Sie auf die Schaltfläche Spalten tauschen mf_ic_swap.

 

Umbenennen von Wertezuordnungsparametern

Standardmäßig hat der Input-Parameter einer Wertezuordnungskomponente den Namen "input" und der Output-Parameter den Namen "result". Um das Mapping übersichtlicher zu machen, haben Sie die Möglichkeit, jeden dieser Parameter durch Klicken auf die Schaltfläche Bearbeiten mf_ic_pencil neben dem jeweiligen Namen umzubenennen. Im Folgenden sehen Sie ein Beispiel für eine Wertezuordnung mit benutzerdefinierten Parameternamen:

mf_lookup_04

 

Vorschau auf eine Wertezuordnung

Nachdem Sie mit der Erstellung einer Wertezuordnung fertig sind, können Sie direkt über das Mapping schnell eine Vorschau darauf anzeigen, indem Sie die Maus über die Titelleiste der Komponente platzieren:

mf_lookup_05

 

Erstellen einer Wertezuordnung anhand eines Enumerationstyps

Sie können in MapForce eine Wertezuordnung anhand von Nodes mit Enumerationswerten vornehmen. Diese Funktionalität wird derzeit für XML-Komponenten unterstützt, deren Nodes Enumeration Facets (alle Editionen) haben, und für EDI-Komponenten, deren Nodes EDI-Codelisten (Enterprise Edition) haben. Sie können eine solche Wertezuordnung je nach Bedarf anhand des Input- oder Output-Konnektors eines Node erstellen.

 

Um anhand eines Enumerationstyps eine Wertezuordnung zu erstellen, gehen Sie folgendermaßen vor:

 

1.Klicken Sie je nach Bedarf mit der rechten Maustaste auf den Input- oder Output-Konnektor des Node für die Enumerationswerte, anhand derer Sie eine Wertezuordnung erstellen möchten: In unserem Beispiel (Abbildung unten) haben wir den Output-Konnektor des Node Genre ausgewählt.

MF_CreateValueMapForEnumValues

2.Wählen Sie im Kontextmenü den Befehl Wertezuordnung für Enumerationswerte erstellen aus.

3.Daraufhin wird das Dialogfeld Eigenschaften Wertezuordnung angezeigt. Beide Spalten input und result der Wertezuordnung enthalten dieselben vorausgefüllten Enumerationswerte. Sie können die Werte nun nach Bedarf überprüfen und bearbeiten. In der Abbildung unten sehen Sie die Liste der Genre-Werte aus der XML-Quelldatei (input) und die Liste der geänderten Werte, die gemappt werden sollen (result).

MF_ValueMapModifiedEnumValues

4.Klicken Sie nach Überprüfung der Enumerationswerte auf OK. Dadurch wird die Wertezuordnungskomponente zum Mapping-Bereich hinzugefügt. Die Wertezuordnungskomponente wird automatisch mit dem Node verbunden, dessen Enumerationswerte zum Erstellen der Wertezuordnung verwendet wurden.

5.Verbinden Sie den anderen Parameter der Wertezuordnung mit dem entsprechenden Node und fahren Sie mit dem Design Ihres Mappings fort, wie gewohnt.

 

© 2018-2024 Altova GmbH