Altova MapForce 2025 Professional Edition

In diesem Beispiel wird gezeigt, wie Sie anhand einer einzigen XML-Quelldatei dynamisch mehrere XML-Dateien generieren. Sie finden die Mapping-Beispieldatei dazu unter dem folgenden Pfad: <Dokumente>\Altova\MapForce2025\MapForceExamples\Tut-ExpReport-dyn.mfd.

 

Die XML-Quelldatei (die im selben Ordner wie das Mapping liegt) besteht aus der Spesenabrechnung für eine Person namens Fred Landis und enthält fünf Spesenposten (expense-item) unterschiedlichen Typs. Ziel dieses Beispiels ist es, für jeden der unten aufgelisteten Spesenposten eine separate XML-Datei zu generieren.

dyn-xml2xml2

mf-ExpReport.xml (in der XMLSpy Grid-Ansicht)

Da das Attribut "type" den jeweiligen Spesentyp definiert, ist dies das Datenelement, das wir zum Aufteilen der Quelldatei verwenden werden. Gehen Sie dazu folgendermaßen vor:

 

1.Fügen Sie eine concat-Funktion ein (Sie können diese mit der Maus aus der Bibliothek core | string functions in den Mapping-Bereich ziehen).
2.Fügen Sie (über das Menü Einfügen | Konstante) eine Konstante ein und geben Sie als ihren Wert ".xml" ein.
3.Ziehen Sie die Funktion auto-number aus der Bibliothek core | generator functions mit der Maus in den Mapping-Bereich.
4.Klicken Sie auf die Schaltfläche Datei ( btn_file ) oder Datei/String ( btn_file_string ) der Zielkomponente und wählen Sie den Befehl Über das Mapping bereitgestellte dynamische Dateinamen verwenden.
5.Erstellen Sie die Verbindungen wie oben gezeigt und klicken Sie auf das Register "Ausgabe", um das Ergebnis des Mappings zu sehen.
tut-ExpReport-dyn-MFBAS

Tut-ExpReport-dyn.mfd (MapForce Basic Edition)

Beachten Sie, dass die erzeugten Ausgabedateien folgendermaßen dynamisch benannt werden:

 

Das Attribut type liefert den ersten Teil des Dateinamens, z.B. Travel.

Die Funktion auto-number liefert die fortlaufend nummerierten Dateinummern (z.B. "Travel1", "Travel2", usw.)

Die Konstante liefert die Dateierweiterung, d.h. .xml, also lautet der Dateiname der ersten Datei Travel1.xml.

© 2018-2024 Altova GmbH