Aktivieren Sie bitte JavaScript, um diese Seite anzeigen zu können.

Altova MapForce 2021 Enterprise Edition

MapForce bietet die Möglichkeit, BLOB (Binary Large Objects)-Daten aus Binärdateien in ein Mapping einzulesen und dieses anschließend zu verarbeiten, ohne die interne Struktur der Binärdaten (Rohdaten) zu verändern. So können Sie Binärdaten etwa in einem BLOB-Datenbankfeld, einem Feld vom Typ xs:base64Binary in einer XML-Datei speichern oder an einen Webservice senden.

 

* Webservice-Aufrufe werden nur in der MapForce Enterprise Edition unterstützt.

 

Sie können auch Mappings erstellen, in denen Binärdaten aus einer Quelle (wie z.B. einem BLOB-Feld in einer Datenbank, einem Feld vom Typ xs:base64Binary in einer XML-Datei oder einem Webservice) gelesen und anschließend als Binärdateien auf den Datenträger geschrieben werden.

 

Im Folgenden werden nur einige Beispielszenarien beschrieben, in denen Sie die Funktion zum Lesen oder Schreiben von Binärdateien nutzen können:

 

Extraktion von als base-64-Daten kodiertem Binärdateninhalt aus einer XML-Datei und Speicherung auf dem Datenträger (z.B. als PDF-Datei)

Verarbeitung von auf dem Datenträger gespeicherten Bilddateien und Senden dieser Dateien als base-64-kodiertem Binärdateninhalt an einen Webservice

Extraktion von BLOB-Inhalt aus einer Datenbanktabelle und Speichern des Inhalts als Bilddateien auf dem Datenträger (eine Bilddatei pro Zeile in der Datenbanktabelle)

Lesen von Bilddateien vom Datenträger und Speichern des Inhalts als BLOB-Datenfelder in einer Datenbanktabelle.

 

Anmerkung:Um Daten von oder auf Binärdateien mappen zu können, muss als Transformationssprache BUILT-IN verwendet werden. Sie können in MapForce eine Vorschau auf das Mapping anzeigen (und Ausgabedateien, falls vorhanden, speichern) oder das Mapping mit (einem separat lizenzierten) MapForce Server auf einem anderen Rechner oder einer anderen Plattform ausführen. Die Generierung eines ausführbaren C#-, C++- oder Java-Programms anhand von Mappings, die Binärdateien lesen oder schreiben, wird nicht unterstützt.

 

Hinzufügen von Binärdateien zum Mapping

Mit Binärdateien ist in MapForce an sich keine Komponentenart verknüpft, wie dies sonst z.B. bei XML-Text oder JSON-Dateien der Fall ist. Damit Sie Aufgabe, wie die oben erwähnten durchführen können, stehen stattdessen die folgenden vordefinierten MapForce-Funktionen zur Verfügung.

 

read-binary-file

write-binary-file

 

Sie finden diese Funktionen im Fenster "Bibliotheken" (in der Bibliothek "lang"). Um eine dieser Funktionen in einem Mapping zu verwenden, ziehen Sie sie aus dem Fenster "Bibliotheken" in das Mapping oder doppelklicken Sie in einen leeren Bereich des Mappings und geben Sie die ersten Buchstaben des Funktionsnamens ein, um die Funktion auszuwählen. Nähere Informationen dazu finden Sie unter Hinzufügen von Funktionen zum Mapping.

 

read-binary-file

Diese Funktion gibt den Inhalt der angegebenen Datei als BLOB (Binary Large Object) vom Typ xs:base64Binary zurück. Zwar handelt es sich beim Datentyp um "base64Binary", doch wird er intern einfach als BLOB dargestellt. Erst wenn Sie das Ergebnis der Funktion auf einen XML-Node vom Typ xs:base64Binary mappen, wird er tatsächlich base64-kodiert. Sie könnten das Ergebnis der Funktion auch auf xs:hexBinary, einen Datenbank-Blob oder ein Binärdatenfeld in einer Protocol Buffer-Struktur mappen.

mf-func-read-binary-file

Um eine Binärdatei in ein Mapping einzulesen, geben Sie als Input den Pfad zum Argument filepath an. Wenn der Dateipfad (filepath) relativ ist, sucht MapForce im selben Verzeichnis wie dem Mapping-Verzeichnis nach der Datei. Das Argument must-exist ist optional; wenn die Datei nicht geöffnet werden kann und dieser Parameter true ist, gibt das Mapping einen Fehler aus. Wenn die Datei nicht geöffnet werden kann und dieser Parameter false ist, wird eine leere Binärdatei zurückgegeben.

 

write-binary-file

Diese Funktion schreibt den Inhalt einer Binärdatei in den angegebenen Dateipfad und gibt den Pfad der geschriebenen Datei zurück. Wenn eine Binärdatei das einzige gewünschte Ergebnis ist, verbinden Sie das Ergebnis der Funktion mit einer einfachen Output-Komponente. Da diese Funktion immer, wenn deren Ausgabe im Mapping verwendet wird, eine Datei schreibt, wird empfohlen, das Ergebnis der Funktion direkt mit einer Zielkomponente zu verbinden, ohne weiterer Verarbeitungen dazwischen durchzuführen.

mf-func-write-binary-file

Um Binärdateien in ein Mapping zu schreiben, geben Sie als Input für das Argument filepath ihren Pfad an. Wenn der Dateipfad (filepath) relativ ist, generiert MapForce die Datei im selben Verzeichnis wie dem Mapping-Verzeichnis. Das Argument content muss mit dem eigentlichen Binärdateninhalt (z.B. einem BLOB-Feld in einer Datenbank) verbunden werden.

 

Wenn Sie in MapForce eine Vorschau auf das Mapping anzeigen, generiert die Funktion standardmäßig temporäre Dateien, anstatt die Dateien direkt auf dem Datenträger zu speichern. Um die temporären Dateien zu speichern, klicken Sie zuerst auf das Register Ausgabe und anschließend je nach Bedarf auf eine der Symbolleisten-Schaltflächen Generierte Ausgabe speichern ic-save-sel-string oder Alle generierten Ausgaben speichern ic-save-all-out.

 

Um MapForce so zu konfigurieren, dass die Ausgabe, anstatt in einer temporären Datei, direkt in einer endgültigen Datei gespeichert wird, wählen Sie den Menübefehl Extras | Optionen, klicken Sie auf Allgemein und aktivieren Sie die Option Direkt in die endgültigen Output-Dateien schreiben. Beachten Sie, dass mit dieser Option alle vorhandenen Dateien desselben Namens überschrieben werden.

 

Die Funktion gibt immer den endgültigen (und nicht den temporären) Dateinamen zurück, selbst wenn die endgültige Datei noch nicht auf dem Datenträger gespeichert wurde (Dies ist der Fall, wenn Sie eine Vorschau auf das Mapping anzeigen und die Option Direkt in die endgültige Output-Datei schreiben deaktiviert ist).

 

Beachten Sie, dass dies bei einem Mapping, das seine eigene Ausgabedatei wieder ausliest, nicht unterstützt wird.

 

Beispiele

Siehe Beispiel: Lesen von Binärdateien und Beispiel: Schreiben von Binärdateien.

© 2015-2021 Altova GmbH