Generischer Blob-Speicher
Einführung
Standardmäßig speichert ExFlow importierte Dokumente in der Business Central-Datenbank. Die Dokumente sind hauptsächlich XML- und PDF-Dateien, können aber auch andere Formate wie DOCX oder PNG haben.
Die Datenbank wächst mit der Anzahl der Rechnungen, die der Kunde erhält, und da importierte Dokumente häufig Bilder enthalten, kann der in Business Central Online genutzte Speicherplatz schnell wachsen. Der generische Blob-Speicher verschiebt diese Dokumente in einen externen Speicher, der günstiger ist, und ruft sie automatisch zurück, wenn ein Benutzer sie benötigt.
Die unterstützten Speichertypen sind:
- Azure Container (Azure Blob Storage)
- SharePoint (über Microsoft Graph)
Eine Schritt-für-Schritt-Einrichtung finden Sie unter OAuth 2.0-Anwendungen und Speichereinrichtung.
Allgemein
Ein Blob ist der Inhalt einer Datei: eine binäre Datenfolge. Die Datei wird durch ihre Metadaten beschrieben, wie Name, Erstellungsdatum und Content-Type, die der Anwendung mitteilen, wie der Inhalt zu verwenden ist.
Um Blobs effizient zu handhaben, werden sie von der Anwendung abstrahiert. Wenn ExFlow nach einem Blob fragt, erhält es den Inhalt zurück, ohne zu wissen, wo er gespeichert war.
Die Lösung verwendet drei Ebenen, um die Funktionalität zu isolieren.
ExFlow-Anwendung
Die Anwendung, die Blobs (Dateien) liest, schreibt, löscht und auflistet.
Speicherverwaltung
Verwaltet, wo, wann und wie ein Blob gespeichert wird. Zwischenspeicherung, Übertragung von Blobs in den Speicher und deren Abruf werden alle in dieser Ebene gehandhabt.
Speicherimplementierung (Storage Interface)
Die Implementierung eines Speichertyps, wie Azure Container oder SharePoint. Sie implementiert die primitivsten Funktionen, wie Get und Put.

Was extern gespeichert wird
Nur eingehende Dokumentanhänge, die mit in ExFlow genehmigten Einkaufsrechnungen und Gutschriften verknüpft sind, werden in den externen Speicher verschoben. Dokumente, die sich noch im Importjournal oder im Genehmigungsstatus befinden, bleiben in Business Central, da sie sofortigen Zugriff erfordern.
Wenn eine in ExFlow genehmigte Einkaufsrechnung oder Gutschrift gebucht wird, werden ihre Anhänge der Warteschlange der Speicherverwaltung hinzugefügt. Der nächste Lauf des Speicherverwaltungsjobs überträgt sie in den externen Speicher.
Wie Dokumente übertragen und zwischengespeichert werden
Der Speicherverwaltungsjob (Codeunit 12026820 Ex Storage Mgmt. NAS) wird automatisch erstellt, wenn der Blob-Speicher aktiviert wird. Jeder Lauf führt zwei Schritte aus:
- Überträgt neue Dokumente in den externen Speicher. Wenn ein Dokument erfolgreich gespeichert wurde, wird sein Inhalt aus dem eingehenden Dokumentanhang in Business Central entfernt. Die Einstellung Batchgröße begrenzt, wie viele Dokumente pro Lauf übertragen werden. Stellen Sie sie auf 0 ein, um alle Dokumente in einem Lauf zu übertragen.
- Leert den Cache. Ein Dokument, das aus dem Speicher zurückgeholt wurde, bleibt als zwischengespeicherte Kopie in Business Central. Wenn es für die in Cache in Tagen festgelegte Anzahl von Tagen nicht geöffnet wurde, wird die Kopie wieder entfernt. Das Dokument selbst verbleibt im externen Speicher. Es wird empfohlen, im Feld ''Cache in Tagen'' 60 Tage festzulegen.
Automatische Wiederherstellung
Benutzer müssen nichts tun, um ein Dokument zu öffnen, das in den externen Speicher verschoben wurde. ExFlow holt das Dokument automatisch nach Business Central zurück, wenn es benötigt wird, zum Beispiel wenn der Benutzer:
- Einen eingehenden Dokumentanhang herunterlädt oder auf dessen Dateinamen klickt
- Strg+I in ExFlow verwendet, um den Hauptanhang herunterzuladen
- Mehrere Dokumente auf einmal herunterlädt
- Die PDF-Vorschau im Genehmigungsverlauf öffnet
- Das Dokumentbild über den ExFlow-Webdienst anzeigt (zum Beispiel im ExFlow PDF-Add-In oder in ExFlow Web)
Das wiederhergestellte Dokument wird dann wie oben beschrieben im Cache behalten.
Blob-Benennung
Jedes gespeicherte Dokument erhält einen festen Namen, der aus der SystemId des Datensatzes, der Tabellennummer und der Feldnummer besteht, zum Beispiel:
bd7bd0ec-6671-4626-8f14-e95a7c3a5f15_133_8
Die Einstellung Blob-Name-Struktur steuert die Ordnerstruktur im Speicher:
| Blob-Name-Struktur | Gespeichert als |
|---|---|
| Split String 2 Char 3 Levels (Standard, empfohlen) | bd/7b/d0/bd7bd0ec-6671-4626-8f14-e95a7c3a5f15_133_8 |
| As-Is | bd7bd0ec-6671-4626-8f14-e95a7c3a5f15_133_8 |
Die Aufteilung des Namens in Ordner hält die Anzahl der Dateien pro Ordner gering. Die Blob-Name-Struktur kann nicht geändert werden, solange der Blob-Speicher aktiv ist.
Blob Storage Einrichtung
Gehen Sie zu: ExFlow Setup --> Aktionen --> Funktionen --> Blob Storage Verwaltung (--> Storage Setup)
Das ExFlow Storage Setup ist generisch. Es enthält Code, Beschreibung, Blob-Quelle (den Speichertyp) und ob die Einrichtung Aktiviert ist. Eine Speichereinrichtung muss aktiviert sein, bevor sie verwendet werden kann.
Es kann mehr als eine Speichereinrichtung pro Blob-Quelle geben.

Im Beispiel ist die gewählte Blob-Quelle „Azure Container“.
Klicken Sie auf Speicher einrichten, um die Einrichtungsseite für den ausgewählten Speichertyp zu öffnen, auf der die Verbindungsdetails eingegeben werden. Jede Implementierung speichert ihre eigenen Parameter in ihrer eigenen Tabelle oder im isolierten Speicher. Zum Beispiel wird der Shared Access Key für Azure Container im isolierten Speicher aufbewahrt.
Die Speicherverwaltung weiß nicht, wie die Dateien physisch gespeichert werden. Ein Aufruf von Get oder Put verhält sich gleich, egal ob der Speicher Azure Container oder SharePoint ist.
Einrichtung der Speicherverwaltung
Die Felder auf der Seite ExFlow Storage Management Setup werden unter Blob-Speichereinrichtung für SharePoint beschrieben.
| Aktionen | Beschreibung |
|---|---|
| Speichereinrichtung | Konfigurieren Sie eine oder mehrere Speichereinrichtungen. |
| Blob-Speicher aktivieren/deaktivieren | Aktivieren oder deaktivieren Sie den Blob-Speicher. Entspricht dem Feld Aktiv. |
| Speicherdetails | Zeigt die zwischengespeicherten Einträge und die Querverweise zwischen Datensätzen und gespeicherten Dokumenten an. |
| Speicher synchronisieren | Führt denselben Prozess wie der Speicherverwaltungsjob aus: überträgt neue Dokumente in den Speicher und leert den Cache. |
| Alle gebuchten Dokumente manuell zum Cache hinzufügen | Fügt die Anhänge aller in ExFlow gebuchten Rechnungen und Gutschriften der Warteschlange hinzu, sodass sie bei der nächsten Synchronisierung übertragen werden. |
| Alle gebuchten eingehenden Dokumente manuell aus dem Cache wiederherstellen | Holt alle gespeicherten Dokumente nach Business Central zurück. |
Blob-Speicher aktivieren
- Speichercode für eingehende Dokumente muss ausgefüllt sein, bevor der Blob-Speicher aktiviert werden kann.
- Wenn bereits gebuchte ExFlow-Rechnungen oder -Gutschriften vorhanden sind, fragt ExFlow, ob diese hinzugefügt werden sollen. Wählen Sie Ja, damit sie bei der nächsten Synchronisierung übertragen werden.
- Der wiederkehrende Speicherverwaltungsjob wird erstellt.
- Solange der Blob-Speicher aktiv ist, können Speichercode für eingehende Dokumente und Blob-Name-Struktur nicht geändert werden.
Blob-Speicher deaktivieren
Wenn der Blob-Speicher deaktiviert wird, fragt ExFlow, ob alle gespeicherten Dokumente wiederhergestellt werden sollen. Nach der Bestätigung wird jedes Dokument in die eingehenden Dokumentanhänge in Business Central zurückgeholt, und alle Speicherverweise werden entfernt. Auf diese Weise ist es möglich, die Nutzung des externen Speichers zu beenden, ohne Dokumente zu verlieren.
ExFlow Speicher Details
Gehen Sie zu: ExFlow Storage Management Setup --> Aktionen --> Speicherdetails
Die Seite zeigt zwei Listen:
| Liste | Beschreibung |
|---|---|
| Zwischengespeicherte Einträge | Dokumente, die sich derzeit in Business Central befinden: Dokumente, die auf die Übertragung warten, und Dokumente, die aus dem Speicher zurückgeholt wurden. Zeigt an, wann jeder Eintrag gespeichert und zuletzt aufgerufen wurde. |
| Querverweise | Alle vom Blob-Speicher verwalteten Dokumente, identifiziert durch Tabellennr., Feldnr. und System Id, mit dem Speicherverweis (Blob-Name) und dem Datum, an dem sie extern gespeichert wurden. |
Allgemeiner Blob-Speicher (BSApi)
Wenn Allgemeiner Blob-Speichercode festgelegt ist, können Partner und Entwickler die Blob Storage API (Codeunit BSApi) verwenden, um ihre eigenen Dateien im Speicher mit eigenen Namen und eigener Ordnerstruktur zu lesen und zu schreiben. Dieser Speichercode kann derselbe sein wie der für eingehende Dokumente verwendete.
Die Schnittstelle, die jeder Speichertyp implementiert (Ex IBlob Storage v1), enthält:
| Funktion | Beschreibung |
|---|---|
| List | Blobs in einem Pfad auflisten |
| Get | Einen Blob als Text oder als Stream lesen |
| Put | Einen Blob aus Text oder aus einem Stream speichern |
| Delete | Einen Blob löschen |
| Exist | Prüfen, ob ein Blob existiert |
| Setup, DeleteSetup | Die eigene Einrichtung des Speichertyps öffnen oder löschen |
| Initialize, ClearInternal | Die Implementierung für eine bestimmte Speichereinrichtung vorbereiten |
| GetDescription | Auf den Einrichtungsseiten angezeigte Beschreibung |
| Enable | Den Speicher aktivieren oder deaktivieren |
| Test | Die Verbindung testen |