Altova MapForce 2024 Basic Edition

Mit "Alles kopieren"-Verbindungen werden Daten zwischen Nodes mit Child-Nodes, die einander ähnlich oder miteinander identisch sind, gemappt. Alles kopieren"-Verbindungen sind nur für dasselbe Format (z.B. JSON auf JSON oder XML auf XML) möglich. Dies gilt auch für alle Textkomponenten: Flat Flat Files, FlexText- und EDI-Dateien. Da es sich bei allen diesen Formaten um Textdateien handelt, können Sie jedes davon miteinander kombinieren und z.B. zwischen EDI- und FlexText-Dateien eine "Alles kopieren"-Verbindung erstellen.

 

Der Hauptvorteil von "Alles kopieren"-Verbindungen ist, dass der Mapping-Arbeitsbereich dadurch übersichtlicher wird: Anstelle mehrerer Verbindungen wird eine einzige "dicke" Verbindungslinie gezogen (siehe Beispiel unter Manuelles Erstellen von "Alles kopieren"-Verbindungen). In den folgenden Unterabschnitten wird erläutert, wie Sie "Alles kopieren"-Verbindungen automatisch und manuell erstellen.

 

Erstellen einer "Alles kopieren"-Verbindung

Um eine "Alles kopieren"-Verbindung automatisch zu erstellen, gehen Sie folgendermaßen vor:

 

1.Gehen Sie zum Menü Verbindung.

2.Klicken Sie auf Einstellungen für 'Idente Sub-Einträge verbinden'.

3.Aktivieren Sie das Kontrollkästchen "Alles kopieren"-Verbindungen erstellen und klicken Sie auf OK.

4.Klicken Sie auf die Symbolleisten-Schaltfläche Aktiviert/Deaktiviert die automatische Verbindung von Sub-Einträgen. Klicken Sie alternativ dazu im Menü Verbindung auf den Befehl Idente Sub-Einträge automatisch verbinden.

 

Wenn der Typ und/oder Name von Child-Nodes in der Quell- und der Zielkomponente nicht identisch ist, wird nicht automatisch eine "Alles kopieren"-Verbindung erstellt und Sie müssen diese manuell herstellen.

 

Manuelles Erstellen von "Alles kopieren"-Verbindungen

Um manuell eine "Alles kopieren"-Verbindung zu erstellen, gehen Sie folgendermaßen vor:

 

1.Fügen Sie eine Quelldatei hinzu: Klicken Sie im Menü Einfügen auf XML-Schema/Datei und navigieren Sie zur Datei Books.xml im Ordner BasicTutorials.

2.Fügen Sie eine Zieldatei hinzu: Klicken Sie im Menü Einfügen auf XML-Schema/Datei und navigieren Sie zur Datei Library.xsd im selben Ordner wie Books.xml. Klicken Sie auf Überspringen, wenn Sie von MapForce aufgefordert werden, eine XML-Beispieldatei hinzuzufügen.

3.Mappen Sie den Node <book> der Komponente Books auf den Node <publication> der Komponente Library. Da die Struktur der Elemente <book> und <publication> nicht vollständig identisch ist, wird keine "Alles kopieren"-Verbindung erstellt. Statt dessen werden mit Hilfe der Funktion Idente Sub-Einträge automatisch verbinden automatisch alle Child-Nodes desselben Namens miteinander verbunden, wie im Tutorial 1 beschrieben.

4.Um die automatische Verbindung in eine "Alles kopieren-Verbindung zu ändern, klicken Sie mit der rechten Maustaste auf die Verbindung zwischen <book> und <publication> und wählen Sie im Kontextmenü den Befehl Alles kopieren (Sub-Einträge kopieren).

5.Daraufhin erscheint ein Fenster, in dem vorgeschlagen wird, die vorhandenen Verbindungen durch eine "Alles kopieren"-Verbindung zu ersetzen. Klicken Sie auf OK. Die Quell- und Zielkomponente haben nun eine "Alles kopieren"-Verbindung (siehe Abbildung unten).

MF_MapFund_Connections_Types_CopyAll1

Im obigen Mapping sind nur zwei Child-Nodes in den beiden Strukturen miteinander identisch: <author> und <title>. Daher bestehen keine "Alles kopieren"-Verbindungen zwischen diesen Nodes. Child-Nodes, die nicht identisch sind, können nicht miteinander verbunden werden. In der Abbildung sehen Sie, dass id nicht in die "Alles kopieren"-Verbindung miteinbezogen wird, da der Typ in der Quell- und Zielkomponente nicht derselbe ist: id ist in der Quellkomponente ein Attribut und in der Zielkomponente ein Element. Wenn Sie versuchen, zwischen nicht identischen Nodes wie z.B. zwischen <category> und <genre> eine Verbindung zu erstellen, fragt MapForce Sie, ob diese Verbindung ersetzt oder der Input dupliziert werden soll.

 

Eine Duplizierung des Input ist nur dann sinnvoll, wenn die Zielkomponente Daten aus mehr als einem Input erhalten soll, was hier nicht erforderlich ist. Wenn Sie die "Alles kopieren"-Verbindung ersetzen, werden Sie in einem Meldungsfeld noch einmal aufgefordert, die "Alles kopieren"-Verbindung aufzulösen oder zu löschen. Klicken Sie auf "Alles kopieren"-Verbindung auflösen, wenn Sie die "Alles kopieren"-Verbindung durch einzelne zielorientierte Verbindungen ersetzen möchten. Wenn Sie die "Alles kopieren"-Verbindung lieber vollständig entfernen möchten, klicken Sie auf Child-Verbindungen löschen.

 

Achtung

 

Bei der Erstellung von "Alles kopieren"-Verbindungen zwischen einem Schema und einem Parameter einer benutzerdefinierten Funktion muss den beiden Komponenten dasselbe Schema zugrunde liegen. Die beiden Komponenten müssen dabei aber nicht dasselbe Root-Element haben.

 

© 2018-2024 Altova GmbH