Anwendung von Datenmapping-Mustern
Altova MapForce enthält leistungsstarke Mapping-Komponenten, die Designvorlagen für Anforderungen an die Datentransformation entsprechen. Die Analyse einer Herausforderung im Bereich des Datenmappings im Vorfeld und die Einhaltung einiger einfacher Richtlinien können Datenmappings-Muster aufdecken, die die Erstellung des Mapping-Designs vereinfachen und zu einer optimalen Lösung führen. Das Projekt "MapForce Beispiele" bietet Beispiel-Mapping-Dateien und Datensätze, die viele gängige Datenmappings-Muster veranschaulichen. Die Überprüfung dieser Beispiele und deren Ausführung mit der in MapForce integrierten Ausführungsumgebung ist eine weitere gute Möglichkeit, das beste Muster für Ihr eigenes Projekt auszuwählen.

Exakte Übereinstimmung vs. Bedingte Übereinstimmung
Zunächst müssen Sie feststellen, ob Ihre Eingaben und Ausgaben eine exakte, eindeutige Beziehung zueinander haben oder ob eine komplexere Bedingung berücksichtigt werden muss, wie beispielsweise Wertebereiche (von-bis) oder eine Wenn-Dann-Bedingung.
Die exakte Übereinstimmung ermöglicht es Ihnen, Ihre Anforderung mithilfe einer einfachen Tabelle mit zwei Spalten auszudrücken. Der Algorithmus funktioniert wie folgt: "Suchen Sie nach einer exakten Übereinstimmung des gegebenen Eingabewerts in der linken Spalte und verwenden Sie den Wert in derselben Zeile aus der rechten Spalte." Beachten Sie, dass die Einträge in der linken Spalte alle eindeutig sein müssen, während in der rechten Spalte möglicherweise doppelte Werte vorkommen können.

Beispiele für exakte Zuordnungen sind die Umwandlung von Monatsnamen in Zahlen oder die Konvertierung von ISBNs in Buchtitel.
Optionen für exakte Übereinstimmung
Wenn die Anzahl der Einträge in der Tabelle konstant und relativ gering ist (zum Beispiel bis zu 20, oder in Ausnahmefällen möglicherweise bis zu 200), verwenden Sie ein Komponentenmodell zur Wertzuordnung. Typische Beispiele sind die Umwandlung von Monatsnamen in Zahlen oder die Umwandlung von Codes in andere Codes (z. B. "F" in "XX" und "M" in "XY").
Sie können sogar die Namen der Eingabe- und Ergebnisspalten des Value-Map-Komponenten ändern. Öffnen Sie dazu den Dialog für die Eigenschaften des Value-Map-Komponenten, doppelklicken Sie auf den Namen "input" oder "result" (oder klicken Sie auf das Stiftsymbol) und beginnen Sie mit der Eingabe. Dies erleichtert die Identifizierung des Zwecks mehrerer Value-Map-Komponenten innerhalb der Zuordnung.

Das Beispiel "MapArticle.mfd" demonstriert die Verwendung des Komponenten "value-map".
Manchmal werden wir gefragt, warum es keine Einstellung gibt, um einen unbekannten Eingabewert unverändert an den Ausgang zu übergeben. Die Antwort ist, dass dies nicht funktionieren würde, wenn die Datentypen auf der Eingangs- und Ausgangsseite unterschiedlich sind, wie beispielsweise bei der Umwandlung von einer Ganzzahl in einen String, wie oben gezeigt.
Die Lösung besteht darin, die Option "Andernfalls" nicht aktiviert zu lassen (die Wertzuordnung für eine unbekannte Eingabe gibt dann eine leere Sequenz zurück) und stattdessen die Knotenfunktion "ersetze_fehlende" aus der Kernfunktionsbibliothek an der Ausgabe zu verwenden, um die leere Sequenz durch den ursprünglichen Eingabewert zu ersetzen.
Größere Nachschlagetabellen
Für eine große Anzahl von Einträgen oder Nachschlagetabellen, die sich häufig ändern, ist eine Datenbankabfrage die beste Lösung. Das bedeutet, dass die tatsächlichen Werte der Nachschlagetabelle nicht Teil der Zuordnung sind, sondern in einer Datenbank gespeichert werden. Um dieses Verfahren zu implementieren, fügen Sie einer Zuordnung eine Datenbankkomponente und eine SQL-WHERE-Komponente hinzu. Das Beispiel DB_PhoneList.mfd veranschaulicht diese Strategie.
Wenn Sie keine Datenbank verwenden können und die Anzahl der Einträge nicht sehr groß ist, können Sie stattdessen auch andere Komponenten verwenden, z. B. XML oder CSV, sowie eine Filterkomponente, wie sie im Beispiel "CompletePO.mfd" zweimal zu sehen ist. Diese Lösung kann jedoch zur Laufzeit langsamer sein als die Verwendung einer Datenbank mit einer WHERE-Klausel.
Für bestimmte Anforderungen möchten Sie möglicherweise einen Web-Dienst aufrufen, um Werte abzurufen. Die Beispiele "BookISBNConvertWS.mfd" und "CurrencyConverter.mfd" veranschaulichen die Verwendung eines Web-Dienstes zur Wertabfrage.

Bedingte Zuordnung
Wenn Sie komplexere Bedingungen benötigen als eine exakte Übereinstimmung, beispielsweise um Wertebereiche von Eingabewerten zu prüfen, verwenden Sie das "if-else"-Komponente, wie im Beispiel "ClassifyTemperatures.mfd" gezeigt.

Die roten Pluszeichen im "if-else"-Baustein ermöglichen es Ihnen, weitere Tests hinzuzufügen, die jeweils auf einer anderen logischen Funktion basieren. Das Feld "sonst" ermöglicht es Ihnen, das Ergebnis für den Fall zu definieren, in dem keine der logischen Tests zutrifft.
Komplexe Zuordnungen und Wiederverwendung von Komponenten
Wenn Ihre Anforderung zur Datenumwandlung mehrere Eingaben und Ausgaben umfasst, können Sie problemlos mehrere Wertzuordnungen und bedingte Verzweigungen in einer einzigen Transformation integrieren.
Sie können alle oben beschriebenen Komponenten duplizieren, indem Sie innerhalb eines einzelnen Designs oder über verschiedene Mapping-Dateien die Funktion "Kopieren und Einfügen" verwenden. Sie können auch alle hier beschriebenen Lösungen wiederverwenden, indem Sie sie in eine benutzerdefinierte Funktion einbetten. Sie können Ihre eigenen Funktionen in einer Bibliothek für benutzerdefinierte Funktionen speichern, um sie später in anderen Projekten zu verwenden oder mit Kollegen zu teilen.
Entdecken Sie selbst, wie einfach es ist, die Datenmapping-Vorlagen von MapForce in Ihren eigenen Datenverarbeitungsprojekten einzusetzen! Laden Sie eine kostenlose 30-tägige Testversion von MapForce herunter.