Verkettete Mappings
MapForce unterstützt Mappings, die aus mehreren Komponenten in einer Mapping-Kette bestehen. Verkettete Mappings sind Mappings, in denen mindestens eine Komponente gleichzeitig als Quell- und Zielkomponente fungiert. Mit Hilfe einer solchen Komponente wird eine Ausgabe erzeugt, die später als Input für den nächsten Mapping-Schritt in der Kette verwendet wird. Eine solche Komponente wird als "Zwischenkomponente" bezeichnet.
So sehen Sie etwa im unten gezeigten Mapping einen Spesenbericht (im XML-Format), der in zwei Phasen verarbeitet wird. In dem Teil des Mappings von A auf B werden nur die Spesen herausgefiltert, die als "Travel" (Reisekosten) markiert sind. Im Mapping von B auf C werden nur die Reisekosten herausgefiltert, die weniger als 1500 betragen. Die Komponente B ist die "Zwischenkomponente", da sie sowohl Input- als auch Output-Verbindungen hat. Dieses Mapping steht unter folgendem Pfad zur Verfügung: <Dokumente>\Altova\MapForce2024\MapForceExamples\ChainedReports.mfd.
![mf_passthrough_01](./images/mf_passthrough_01.png)
ChainedReports.mfd
In verketteten Mappings wird eine Funktion namens "Weiterleitung" verwendet. Die Weiterleitungsfunktion ist eine Vorschaufunktion, mit der Sie die in verschiedenen Phasen eines verketteten Mappings erzeugte Ausgabe im Fenster "Ausgabe" anzeigen können. So können Sie z.B. im oben gezeigten Mapping sowohl eine Vorschau auf das XML-Ergebnis des Mappings von A auf B anzeigen und speichern als auch dasselbe für das XML-Ergebnis des Mappings von B auf C tun.
Anmerkung:
Die Funktion "Weiterleitung" steht nur für dateibasierte "Zwischenkomponenten" (z.B. XML-, CSV-, TXT-Dateien) zur Verfügung. Datenbankkomponenten können als Zwischenkomponenten verwendet werden, doch wird die Schaltfläche "Weiterleitung" nicht angezeigt. Die Zwischenkomponente wird für die Ausgabevorschau oder die Codegenerierung immer von Grund auf neu generiert. Dies wäre mit einer Datenbank nicht möglich, da sie vor jeder Neugenerierung gelöscht werden müsste.
Wenn das Mapping von MapForce Server oder durch generierten Code ausgeführt wird, so wird die gesamte Mapping-Kette ausgeführt. Mit dem Mapping werden in den einzelnen Schritten der Kette die erforderlichen Ausgabedateien generiert. Die Ausgabe eines Mapping-Schritts wird als Input für den darauf folgenden Mapping-Schritt weitergeleitet.
Auch für Zwischenkomponenten können dynamische Dateinamen generiert werden, d.h. diese Zwischenkomponenten gestatten Verbindungen mit dem Datenelement "Datei" aus dem Mapping, wenn die Komponente entsprechend konfiguriert wurde. Nähere Informationen dazu finden Sie unter Dynamische Verarbeitung mehrerer Input- oder Output-Dateien.
![ic-preview-inact](./images/ic-preview-inact.png)
Sowohl die Komponente B als auch die Komponente C verfügt über eine Vorschau-Schaltfläche. Auf diese Art können Sie sowohl das Mapping-Zwischenergebnis von B als auch das endgültige Ergebnis des verketteten Mappings der Komponente C in MapForce anzeigen. Klicken Sie auf die Vorschau-Schaltfläche der jeweiligen Komponente und anschließend auf "Ausgabe", um das Mapping-Ergebnis zu sehen.
"Zwischenkomponenten", bei denen die Schaltfläche "Weiterleitung" aktiv ist, können nicht in der Vorschau angezeigt werden. Ihre Vorschau-Schaltfläche wird automatisch deaktiviert, da eine Vorschau bei gleichzeitiger Datenweiterleitung nicht sinnvoll ist. Um die Ausgabe einer solchen Komponente zu sehen, klicken Sie zuerst auf die Schaltfläche "Weiterleitung" um sie zu deaktivieren und klicken Sie anschließend auf die Vorschau-Schaltfläche.
![ic-passthru-active](./images/ic-passthru-active.png)
Die Zwischenkomponente B verfügt in der Titelleiste der Komponente über eine zusätzliche Schaltfläche mit dem Namen "Weiterleitung".
Wenn die Schaltfläche "Weiterleitung" aktiv ist , werden alle Daten auf einmal - von Komponente A auf Komponente B und weiter auf Komponente C - in das Vorschaufenster gemappt. Es werden zwei separate Datengruppen generiert:
•das Ergebnis des Mappings von Komponente A auf die Zwischenkomponente B
•das Ergebnis des Mappings der Zwischenkomponente B auf die Zielkomponente C.
Wenn die Schaltfläche "Weiterleitung" deaktiviert ist, wird nur ein Teil der kompletten Mapping-Kette ausgeführt. Welche Daten generiert werden, hängt davon ab, welche Vorschau-Schaltfläche aktiv ist:
•Wenn die Schaltfläche "Vorschau" der Komponente B aktiv ist, so wird das Ergebnis des Mappings von Komponente A auf Komponente B generiert. Die Mapping-Kette endet somit bei Komponente B. Die Komponente C wird in der Vorschau gänzlich ignoriert.
•Wenn die Schaltfläche "Vorschau" der Komponente C aktiv ist, so wird das Ergebnis des Mappings von Komponente B auf Komponente C generiert. Da die Schaltfläche "Weiterleitung" deaktiviert ist, wurde die automatische Verkettung zur Komponente B unterbrochen. Nur der rechte Teil des Mappings wird ausgeführt. Komponente A wird nicht verwendet.
Wenn die Schaltfläche "Weiterleitung" deaktiviert ist, ist es wichtig, dass die in den Feldern "XML-Input-Datei" und "XML-Output-Datei" definierte Zwischenkomponente denselben Namen hat. Damit stellen Sie sicher, dass die bei der Vorschau des Mappings zwischen A und B als Output-Datei generierte Datei als Input-Datei verwendet wird, wenn Sie eine Vorschau des Mappings zwischen B und C anzeigen. Auch im generierten Code oder bei der Ausführung mit MapForce Server gewährleisten Sie dadurch, dass die Mapping-Kette nicht unterbrochen wird. |
Wenn das Mapping von MapForce Server oder generierten Code ausgeführt wird, so wird, wie bereits erwähnt, die Ausgabe aller Komponenten generiert. In diesem Fall werden die Einstellungen der Weiterleitungsschaltfläche von Komponente B sowie die der gerade ausgewählte Vorschaukomponente ignoriert. Wenn Sie das oben gezeigte Mapping als Beispiel nehmen, werden die folgenden zwei Ergebnisdateien generiert:
1.Die Ausgabedatei, die das Ergebnis des Mappings von Komponente A auf B bildet.
2.Die Ausgabedatei, die das Ergebnis des Mappings von Komponente B auf C bildet.
In den folgenden Abschnitten, Beispiel: Weiterleitung aktiv und Beispiel: Weiterleitung deaktiviert, wird näher erläutert, welche Unterschiede bei der Übertragung der Quelldaten entstehen, wenn die Weiterleitungsschaltfläche aktiv bzw. deaktiviert ist.