Datenabbildung binärer Objekte – Teil 2
Binäre Objekte – BLOBs – können in Datenbanken schwer zu verwalten sein. In einem früheren Beitrag haben wir eine Datenmapping-Lösung mit MapForce beschrieben Binärdaten in eine Datenbank einfügen mit generierten Metadaten, um die BLOBs später identifizieren zu können. Die damit verbundene Herausforderung bei der Zuordnung binärer Objekte besteht darin, die binären Daten zu extrahieren und in einer verständlichen Form zu speichern, die der ursprünglichen Datenstruktur entspricht.
Schauen wir uns an, wie das funktioniert.

Die integrierte MapForce-Funktion "write-binary-file" extrahiert BLOB-Werte aus einer Datenbank und schreibt sie in Dateien. Wir werden das Beispiel in der Online-Hilfe von MapForce erweitern, um eine Ergänzung zu dem vorherigen Beitrag zu erstellen. Unsere überarbeitete Zuordnung verwendet Parameter, die zur Laufzeit bereitgestellt werden, um ein oder mehrere Binärobjekte aus der Datenbank zu extrahieren.
Der ursprüngliche Anwendungsfall war eine SQLite-Datenbank zur Verfolgung verschiedener binärer Dateien, die Produkte für eine Marketingabteilung unterstützen. Die binären Daten können Logo-Bilddateien, PDFs für Produktdatenblätter, Screenshots des Produkts in Aktion, Fotos, Videodateien usw. sein. Unsere Datenbanktabelle enthält Metadaten für das Produkt, den Dateityp und jeden ursprünglichen Dateinamen.
Wir beginnen mit der Zuordnung von Binärdatenobjekten zur Extraktion, indem wir die Datenbank in eine neue Zuordnung importieren. Diesmal erstellen wir anstelle der Auswahl einer Tabelle für die Zuordnung eine SQL-SELECT-Abfrage mit Parametern, um die Ergebnisse basierend auf den Metadatenfeldern für den Produkttyp und den Asset-Typ zu filtern. Die SELECT-Anweisung gibt ein oder mehrere BLOBs und deren ursprüngliche Dateinamen zurück.

Als Nächstes klicken wir auf die SELECT-Anweisung im Mapping-Bereich, um die Parameter für die Zuordnung anzuzeigen

Jetzt sind alle einzelnen Parameter und Ausgabewerte verfügbar:

Mit der Funktion "Eingabe einfügen", die entweder über das Hauptmenü "Einfügen" oder über das Symbol in der Symbolleiste verfügbar ist, können wir ein spezielles Feld für Tests während des Designs einfügen. Später, während der automatisierten Ausführung, können wir neue Parameterwerte angeben, um die Standardwerte zu überschreiben.

Sie können einen Standardwert für die Designzeit im Dialog zur Eingabedefinition festlegen, aber ich bevorzuge es, den Standardwert als String-Konstante anzugeben, wie oben gezeigt. Der Standardwert ist ohne Öffnen des Dialogs sichtbar, und es ist schneller, den Wert für Testzwecke zu ändern.
Wir werden die MapForce-Hilfe verwenden Beispiel für die Zuordnung von Daten zu binären Objekten um die Zuordnung für das Ergebnis der SELECT-Abfrage zu erstellen. Hier ist die fertige Zuordnung:

Die Funktion "write-binary-file", die in der Konfiguration hervorgehoben wird, speichert den Inhalt des Binärobjekts in der Datenbank in einer Datei, deren Pfad über den Parameter "filepath" angegeben wird.
Wir haben die Beispielzuordnung um zwei Verbesserungen erweitert. Im ursprünglichen Beispiel wurde ein fester String-Wert für den Dateinamen des Binärobjekts verwendet, aber wir haben stattdessen den ursprünglichen Dateinamen aus der Datenbank übernommen. Darüber hinaus haben wir ein weiteres Eingabeelement namens "userPath" hinzugefügt, um einen Ordnerpfad und den Dateinamen zu kombinieren.
Zu diesem Zeitpunkt können wir die Zuordnung testen, indem wir auf die Schaltfläche "Ausgabe" am unteren Rand des Bereichs für die Zuordnungsgestaltung klicken. MapForce führt die Abfrage mit den in der Zuordnung definierten Parametern aus, und das Ausgabefenster öffnet sich:

Die erste Ausgabe ist einfach die Nachricht, die wir der Funktion "write-binary-file" übergeben haben. Durch Klicken auf das Symbol mit dem Pfeil nach rechts wird die zweite Ausgabe angezeigt. Das Bild unten zeigt die Anzeige, nachdem wir auf die Schaltfläche "Öffnen mit..." geklickt haben, um den Windows-Fotoanzeiger als Standardprogramm für die .png-Datei festlegen.

Der angegebene Pfad war "C:\projects\objects" und der Dateiname, der in der Datenbank gespeichert ist, war "diffdog_2021.png". Der in der Fotoanzeige angezeigte Dateiname, "~mf95AE.png", ist lediglich ein zufälliger Name für die Vorschau. Im Menü "Ausgabe" gibt es eine Option, um die Datei dauerhaft zu speichern:

Wir können die Parameter anpassen und einen weiteren Test durchführen. Diesmal verwenden wir das Wildcard-Zeichen von SQLite für den Parameter "Asset", um alles in der Datenbank zu erfassen:

Wenn wir diesmal auf die Schaltfläche "Ausgabe" klicken, werden mehrere binäre Objekte abgerufen:

Beim Durchklicken der Ergebnisse für binäre Dateien sehen wir ein Datenblatt als PDF-Datei, einen Screenshot als PNG-Bild und ein Logo ebenfalls als PNG-Datei

Automatisierung der Datenzuordnung für Binärdateien
Um unsere Anforderungen an die Anwendungsfälle zu erweitern, nehmen wir an, dass wir jedem Teammitglied ermöglichen müssen, bei Bedarf Produktdaten aus der Datenbank abzurufen. Der MapForce Server führt automatisierte Datentransformationen durch, die auf optimierten Datenzuordnungen basieren, die in MapForce erstellt wurden.
Eine Instanz von MapForce Server kann auf einem Netzwerkserver installiert und für mehrere Benutzer zugänglich gemacht werden. Anschließend müssen wir lediglich die Datenzuordnung als MapForce Server-Ausführungsdatei (.mfx) über das MapForce-Ausgabe-Menü speichern. Wir verwenden den Dateinamen "extract-product-assets-from-DB.mfx".

Die Datenzuordnung kann dann von jedem authentifizierten Benutzer über die Befehlszeile ausgeführt werden. Die Parameter für die Eingabekomponenten mit den Namen "Produkt", "Asset" und "Benutzerpfad" werden während der Ausführung durch den Befehl zugewiesen. Wir können sogar einen Beispielbefehl in einer Batch-Datei erstellen, die Benutzer nach Bedarf bearbeiten und ausführen können:

Es wäre eine einfache Aufgabe, Kommentare mit Bearbeitungshinweisen hinzuzufügen, um die möglichen Werte für jeden Parameter aufzulisten.
Für eine noch stärker automatisierte Produktion können MapForce-Zuordnungen auf dem FlowForce Server bereitgestellt und basierend auf verschiedenen Auslösern ausgeführt werden. Um mit Ihrem eigenen Projekt zur Datenzuordnung, -konvertierung und -transformation zu beginnen, laden Sie eine kostenlose Testversion herunter, die Tutorials, Hilfestellungen und viele weitere Beispiele enthält!