Zum Hauptinhalt springen

Azure Blob Storage

Mit drei Schritten greift ein Flow auf einen Container in Azure Blob Storage zu:

  • Azure Blob: Dateien auflisten – findet die Dateien in einem Ordner, auf Wunsch nur die mit bestimmten Index-Tags.
  • Azure Blob: Datei abrufen – lädt eine Datei in die AutoFlow-Dokumentenbibliothek.
  • Azure Blob: Datei hochladen – schreibt ein Dokument, ein BLOB- oder Media-Feld oder Text in eine Datei, mit Index-Tags.

Typische Einsatzszenarien:

  • Jede gebuchte Verkaufsrechnung als PDF in invoices/2026/ ablegen, getaggt mit der Debitorennummer.
  • Die Auftragsdateien, die ein Partner in inbound/ ablegt, abholen und in einer For-Each-Schleife einzeln verarbeiten.
  • Eine Datei, deren Name in einem eingehenden Webhook steht, herunterladen und an eine E-Mail hängen.

Vorab: die Verbindung​

Alle drei Schritte beginnen mit denselben drei Feldern.

Anmeldedaten​

AutoFlow-Anmeldedaten, mit denen sich der Schritt bei Azure anmeldet. Zwei Arten sind möglich:

  • OAuth 2.0 Client Credentials – eine App-Registrierung in Microsoft Entra ID. Das ist der empfohlene Weg: Nichts läuft unbemerkt ab, und der Zugriff lässt sich auf einen Container beschränken. Wie es geht, steht unten unter Entra-App einrichten.
  • Azure Storage SAS-Token – eine Shared Access Signature aus dem Azure-Portal. Schneller eingerichtet, läuft aber an dem Datum ab, das du beim Erstellen wählst, und muss dann ersetzt werden.

Andere Arten von Anmeldedaten lehnt der Schritt mit einer Fehlermeldung ab. Sind in den Anmeldedaten Basis-URLs hinterlegt, muss https://<Speicherkonto>.blob.core.windows.net/<Container> darunter fallen – sonst bricht der Schritt ab, bevor etwas gesendet wird.

Speicherkonto​

Der Name des Speicherkontos – contosodocs für https://contosodocs.blob.core.windows.net. Kleinbuchstaben und Ziffern, 3 bis 24 Zeichen.

Container​

Der Name des Blob-Containers. Kleinbuchstaben, Ziffern und Bindestriche, 3 bis 63 Zeichen.

Speicherkonto und Container dürfen SmartFields sein, etwa aus einem Einrichtungsdatensatz – so bedient ein Flow mehrere Umgebungen. Einen SmartField-Wert prüft der Schritt erst, wenn er läuft.

Dateien auflisten​

Pfad​

Listet die Dateien, deren Pfad mit diesem Text beginnt. invoices/2026/ liefert alles in diesem Ordner und seinen Unterordnern, invoices/2026/INV-10 nur die Dateien, deren Name mit INV-10 beginnt. Leer lassen, um den ganzen Container aufzulisten.

Nur diese Ordnerebene​

Listet nur die Dateien direkt im Ordner aus Pfad und lässt die Unterordner aus. Der Pfad gilt dann immer als Ordner: invoices und invoices/ bedeuten dasselbe.

Index-Tag-Filter​

Listet nur die Dateien, deren Index-Tags passen. Jede Zeile ist eine Bedingung – Tag, Operator (=, >, >=, <, <=) und Wert –, und alle Zeilen müssen zutreffen. Verglichen wird als Text; schreib Datumsangaben und Zahlen deshalb so, dass sie richtig sortieren (2026-09-29, 000125).

Mit einem Tag-Filter durchsucht Azure das ganze Speicherkonto nach Tags, und der Schritt behält danach die Dateien im Container unter Pfad. So gefundene Dateien kommen nur mit Name, Pfad und Tags zurück – ohne Größe, Inhaltstyp und Datum. Die liefert Datei abrufen.

Maximale Anzahl Dateien​

Nach so vielen Dateien hört der Schritt auf. Standard ist 500, höchstens 5000.

Index-Tags mitliefern​

Liefert zu jeder Datei ihre Index-Tags. Tags zu lesen erfordert mehr Rechte als Dateien zu lesen – siehe Berechtigungen. Schalte es aus, wenn die Entra-App oder das SAS-Token keine Tags lesen darf.

Fehler bei leerem Ergebnis​

Bricht den Flow mit einem Fehler ab, wenn keine Datei gefunden wird. Standardmäßig aus: Dann liefert der Schritt count = 0.

Ausgaben​

AusgabeInhalt
countAnzahl der gefundenen Dateien.
resultsDie Dateien, ein Eintrag pro Datei – zum Durchlaufen in einer For-Each-Schleife. Jeder Eintrag hat die Felder Name (Dateiname), Path (vollständiger Pfad im Container), Parent Directory, Size (Bytes), Content Type, Created At, Last Modified, ETag, Tags und Metadata (beide als JSON, z. B. {"Status":"open"}).

Um in einer For-Each-Schleife über results jede Datei herunterzuladen, gib den Path des Eintrags an einen Schritt Datei abrufen weiter.

Datei abrufen​

Dateipfad​

Der Pfad der Datei im Container, z. B. invoices/2026/INV-1001.pdf.

Index-Tags mitliefern​

Liefert die Index-Tags der Datei in der Ausgabe tags. Siehe Berechtigungen.

Fehler, wenn die Datei fehlt​

Standardmäßig an: Gibt es die Datei nicht, bricht der Flow ab. Schaltest du es aus, läuft der Flow weiter – die Ausgabe found ist dann false, und ein Entscheidung-Schritt kann einen anderen Weg nehmen. Andere Probleme, etwa fehlende Berechtigungen, brechen den Flow immer ab.

Ausgaben​

AusgabeInhalt
foundtrue, oder false, wenn die Datei fehlt und Fehler, wenn die Datei fehlt aus ist.
DocumentDie heruntergeladene Datei in der AutoFlow-Dokumentenbibliothek. Du verwendest sie wie das Dokument eines Schritts PDF-Dokument erstellen – als E-Mail-Anhang in E-Mail senden, als Body einer HTTP-Anfrage oder als Inhalt eines Schritts Datei hochladen.
name, pathDateiname und vollständiger Pfad.
contentType, sizeMIME-Typ und Größe in Bytes.
lastModified, etagWann die Datei in Azure zuletzt geändert wurde, und ihr Versionskennzeichen.
tags, metadataIndex-Tags und Metadaten als JSON, z. B. {"Status":"open"}.

Datei hochladen​

Dateipfad​

Wohin die Datei geschrieben wird, z. B. invoices/{{Sales Invoice Header.No.}}.pdf. Die Ordner müssen nicht existieren – Azure legt sie mit der Datei an.

Inhalt​

Was hochgeladen wird:

  • ein Dokument aus einem früheren Schritt, z. B. das Document eines Schritts PDF-Dokument erstellen oder Datei abrufen,
  • ein BLOB- oder Media-Feld eines Datensatzes, z. B. ein Artikelbild,
  • oder Text – alles andere wird, nachdem die SmartFields aufgelöst sind, als UTF-8-Text hochgeladen.

Als Datei hochgeladen werden Dokumente und Felder nur, wenn Inhalt genau ein SmartField enthält und sonst nichts. Steht Text daneben, wird der ganze Inhalt zu Text.

Inhaltstyp​

Der MIME-Typ, der mit der Datei gespeichert wird, z. B. application/pdf. Bleibt das Feld leer, nimmt der Schritt den Inhaltstyp des Dokuments oder – bei Feldern und Text – den zur Dateiendung passenden (.pdf, .xml, .json, .txt, .csv, .png, .jpg, …).

Vorhandene Datei überschreiben​

Standardmäßig an: Eine vorhandene Datei mit demselben Pfad wird ersetzt. Schaltest du es aus, bricht der Flow stattdessen mit einem Fehler ab.

Index-Tags​

Bis zu 10 Index-Tags, die mit der Datei gespeichert werden. Die Werte dürfen SmartFields sein.

Ausgaben​

AusgabeInhalt
path, nameVollständiger Pfad und Dateiname der hochgeladenen Datei.
urlDie Adresse der Datei, z. B. https://contosodocs.blob.core.windows.net/documents/invoices/INV-1001.pdf. Das ist kein Download-Link – zum Öffnen braucht man dieselben Rechte wie der Flow.
size, contentTypeGröße in Bytes und der mit der Datei gespeicherte Inhaltstyp.

Index-Tags​

Index-Tags sind Name-Wert-Paare, die Azure mit einer Datei speichert und durchsuchen kann. Mit ihnen findest du Dateien nach Debitor, Status oder Jahr, ohne Ordner zu durchlaufen – der Index-Tag-Filter von Dateien auflisten sucht darin.

Azures Regeln für Tags:

  • höchstens 10 Tags pro Datei,
  • Namen 1 bis 128 Zeichen, Werte bis 256 Zeichen,
  • nur Buchstaben, Ziffern, Leerzeichen und + - . / : = _ – keine Umlaute oder anderen Sonderzeichen.

Metadaten, die Azure ebenfalls mit einer Datei speichert, liefern Dateien auflisten und Datei abrufen mit; durchsuchen lassen sie sich nicht.

Entra-App einrichten​

  1. Öffne im Azure-Portal Microsoft Entra ID > App-Registrierungen und registriere eine neue App (einzelner Mandant). Notiere die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant).
  2. Lege unter Zertifikate & Geheimnisse einen geheimen Clientschlüssel an und kopiere seinen Wert.
  3. Öffne das Speicherkonto (oder nur den Container), geh auf Zugriffssteuerung (IAM) > Rollenzuweisung hinzufügen und weise der App eine Rolle zu – siehe Berechtigungen.
  4. Lege in Business Central AutoFlow-Anmeldedaten mit der Authentifizierungsart OAuth 2.0 Client Credentials an:
    • OAuth-Token-URL: https://login.microsoftonline.com/<Mandanten-ID>/oauth2/v2.0/token
    • OAuth-Client-ID: die Anwendungs-ID
    • Client-Secret: der Wert des geheimen Schlüssels
    • OAuth-Scope: https://storage.azure.com/.default

Anmeldedaten, die du schon für Microsoft Graph verwendest, funktionieren für Blob Storage nicht, auch wenn es dieselbe App ist: Ein Zugriffstoken gilt nur für den Dienst aus seinem Scope. Leg für dieselbe App zweite Anmeldedaten mit dem Storage-Scope an. Der Schritt zeigt eine Warnung, wenn die gewählten Anmeldedaten einen anderen Scope haben.

Bis eine Rollenzuweisung greift, können ein paar Minuten vergehen.

Berechtigungen​

Um …Rolle der Entra-AppSAS-Berechtigung
Dateien aufzulistenStorage Blob Data ReaderAuflisten (l)
eine Datei herunterzuladenStorage Blob Data ReaderLesen (r)
eine Datei hochzuladenStorage Blob Data ContributorSchreiben (w) und Erstellen (c)
Index-Tags zu lesen oder zu schreibenStorage Blob Data OwnerTags (t)
nach Index-Tags zu filternStorage Blob Data Owner, auf dem SpeicherkontoFiltern (f), in einer Konto-SAS

Eine Rolle auf dem Speicherkonto gilt für alle seine Container, eine Rolle auf einem Container nur für diesen. Der Filter nach Index-Tags durchsucht das ganze Speicherkonto – die Rolle dafür muss deshalb auf dem Konto vergeben sein.

Lehnt Azure eine Anfrage ab, nennt die Fehlermeldung den Azure-Fehlercode und die nötigen Rechte.

Hinweise​

  • Dateien werden am Stück übertragen. Business Central begrenzt die Größe einer einzelnen Übertragung – rechne mit Dateien bis etwa 100 MB.
  • Die Ergebnisse von Dateien auflisten bleiben in der Liste Azure Blob-Einträge nur so lange, wie der Flow sie braucht: Sie werden entfernt, sobald die Ausführung erfolgreich abgeschlossen oder gelöscht wird. Nach einer fehlgeschlagenen Ausführung bleiben sie erhalten, damit Ausführung neu starten mit ihnen weitermachen kann; wird die Ausführung gelöscht, verschwinden sie.
  • Jeder Lauf von Datei abrufen fügt der Dokumentenbibliothek ein Dokument hinzu.