Altova MapForce 2024 Enterprise Edition

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 Fenster 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.

 

Sprachen

Built-In

 

Parameter

Name

Typ

Beschreibung

filepath

xs:string

Der Pfad der Input-Datei.

content

xs:base64Binary

Der binäre Inhalt vom Typ xs:base64Binary.

 

Beispiel

Im unten gezeigten Mapping werden BLOB-Werte aus einer SQLite-Datenbank ausgelesen und es werden Bilddateien auf den Datenträger geschrieben. Die Datenbank hat eine Tabelle namens products, welche die folgenden Spalten (Felder) hat:

 

id (Integer, die eindeutige Seriennummer des Datensatzes)

title (text, der Titel des Produkts)

description (text, die Produktbeschreibung)

picture (blob, das Bild des Produkts)

 

Für den Zweck dieses Beispiels sind nur die Felder id und picture relevant.

mf-func-write-binary-file_example1

Ziel des Mappings ist es, alle Bilder aus der Tabelle products zu extrahieren und als Dateien auf dem Rechner zu speichern. Wie oben gezeigt, wird dazu die Funktion write-binary-file verwendet. Das erste Argument, filepath, erhält den Dateipfad für jedes einzelne Bild. Der Pfad muss eindeutig sein, damit keine Dateien überschrieben werden, daher wird er durch Verkettung der eindeutigen Datenbank-id der einzelnen Datensätze mit dem Wort "image" und Ergänzung der Dateierweiterung ".png" generiert (es wird angenommen, dass alle Bilder im PNG-Format sind). Beachten Sie, dass der Pfad relativ ist, d.h. die Dateien werden in dasselbe Verzeichnis, in dem sich das Mapping befindet, geschrieben.

 

Das zweite Argument, content, erhält den in der Datenbank gespeicherten binären Inhalt.

 

Die count-Funktion gibt die Anzahl aller generierten Dateien zurück und kombiniert diese Zahl mit dem String "file(s) written". Dadurch erhalten Sie einen Bericht darüber, wie viele Dateien vom Mapping tatsächlich generiert wurden. In diesem Beispiel enthält die Datenbank nur zwei Produktdatensätze, daher die folgende Mapping-Ausgabe:

mf-func-write-binary-file_example2

Wie zuvor erwähnt, generiert diese Funktion bei Ausführung der Mapping-Vorschau temporäre Dateien. Um eine Vorschau auf die einzelnen Dateien anzuzeigen, klicken Sie auf die Pfeilschaltflächen, um zum gewünschten Datensatz zu navigieren, klicken Sie auf die Schaltfläche Öffnen mit und wählen Sie ein Bildbearbeitungsprogramm aus.

mf-func-write-binary-file_example3

Um alle Dateien zu speichern, klicken Sie 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.

 

© 2017-2023 Altova GmbH