Zum Hauptinhalt springen

PDF-Dokument erstellen

Nutze den Schritt PDF-Dokument erstellen, um aus einem Business-Central-Report eine PDF zu generieren und als Dokument in der AutoFlow-Dokumentenbibliothek zu speichern. Der Schritt liefert eine Referenz auf das erstellte Dokument, sodass jeder Folgestep direkt darauf zugreifen kann.

Typische Einsatzszenarien sind:

  • Eine Rechnungs-PDF aus dem Verkaufsrechnungsreport erzeugen und an eine E-Mail anhängen.
  • Einen Lieferschein für eine Sendung erstellen und in der Dokumentenbibliothek archivieren.

Schritt konfigurieren​

Öffne den Flow-Editor, füge PDF-Dokument erstellen hinzu und fülle die Konfigurationsseite aus.

Beschreibung​

  • Zweck: Beschreibt, was dieser Schritt im Kontext deines Flows tut.
  • Wann ausfüllen: Immer. Die Beschreibung erscheint im Editor und in der Ausführungshistorie.
  • Tipp: Nenne den Report und die Absicht, zum Beispiel Verkaufsrechnung als PDF erzeugen.

Datensatz-Selektor​

  • Zweck: Zeigt auf den Datensatz, auf dem der Report ausgeführt werden soll.
  • Wann ausfüllen: Optional. Setze ihn für Reports, die einen Quell-Datensatz brauchen (z. B. eine Verkaufsrechnung oder eine Lieferung). Lass ihn leer für Reports, die ihre Daten ausschließlich aus Filtern und Request-Page-Optionen aufbauen – typische Beispiele sind Finanzberichte wie Probebilanz, Sachkontenposten-Auszüge oder Bilanz-/GuV-Übersichten.
  • Funktionsweise: Nutze den SmartField-Picker, um einen Platzhalter auf eine Datensatz-Referenz einzufügen (z. B. {{trigger_record}}). Der Selektor verwendet die Standard-{{name}}-Notation – die Picker-Ausgabe wird unverändert eingefügt.
  • Tipp: Wenn gesetzt, muss der Selektor auf ein Referenz-Feld zeigen, nicht auf einen Wert. Kann der Selektor beim Ausführen des Schritts nicht aufgelöst werden, erzeugt der Schritt eine klare Fehlermeldung.

Report​

  • Zweck: Der Business-Central-Report, mit dem die PDF generiert wird.
  • Wann ausfüllen: Verpflichtend. Ohne Report kann keine PDF erzeugt werden.
  • Funktionsweise: Klicke auf den Assist-Button, um die Report-Auswahl zu öffnen. Es werden nur Reports mit einer ID unter 2.000.000.000 angezeigt.
  • Tipp: Stelle sicher, dass der gewählte Report PDF-Ausgabe unterstützt. Nicht jedes Report-Layout wird als PDF fehlerfrei dargestellt.

Layout​

  • Zweck: Wähle, mit welchem Layout der Report gerendert wird – zum Beispiel ein Word-Layout statt eines RDLC-Layouts oder ein kundenspezifisches Layout.
  • Wann ausfüllen: Optional. Leer lassen, um das Standard-Layout des Reports zu verwenden. Das entspricht dem bisherigen Verhalten, bestehende Flows bleiben unverändert.
  • Funktionsweise: Wähle zuerst einen Report und klicke dann auf den Assist-Button, um aus den für diesen Report verfügbaren Layouts auszuwählen. Es werden sowohl eingebaute als auch benutzerdefinierte Layouts angezeigt.
  • Tipp:
    • Word- und RDLC-Layouts werden direkt nach PDF gerendert. Excel- und benutzerdefinierte Layouts sind ebenfalls wählbar, das PDF-Ergebnis kann jedoch je nach Layout abweichen.
    • Über Layout entfernen kehrst du zum Standard-Layout des Reports zurück.
    • Ein Wechsel des Reports setzt das Layout zurück, da ein Layout zu einem bestimmten Report gehört.
    • Wird das gewählte Layout später in Business Central entfernt oder umbenannt, meldet der Schritt einen klaren Fehler, sodass du ein anderes wählen kannst.

Report-Parameter​

  • Zweck: Standardparameter für die Request-Page des Reports (Filter, Optionen etc.).
  • Wann ausfüllen: Optional. Nutze dies, wenn der Report bestimmte Filtereinstellungen benötigt.
  • Funktionsweise: Klicke auf den Assist-Button, um die Request-Page des Reports zu öffnen. Die Parameter werden gespeichert und beim Ausführen des Schritts automatisch angewendet.
  • Tipp: Du kannst die Parameter jederzeit per Assist-Button aktualisieren. Über Berichtsparameter zurücksetzen lässt sich die gespeicherte Konfiguration verwerfen, damit der Bericht beim nächsten Lauf mit den Defaults startet.

XML bearbeiten​

Sobald Parameter konfiguriert sind, öffnet die Aktion XML bearbeiten einen separaten Editor mit den rohen Anfragepage-Parametern. Hilfreich, wenn du SmartField-Platzhalter in die Parameter einfügen willst, damit der Bericht zur Laufzeit mit Werten aus dem Flow läuft.

Platzhalter verwenden dieselbe {{slug.output}}-Syntax wie der restliche Flow-Editor. Alt+S im Editor öffnet den SmartField-Picker; der gewählte Platzhalter wird in die Zwischenablage kopiert, sodass du ihn an der Cursorposition einfügen kannst.

Wechselseitiger Ausschluss mit der Anfragepage. Sind SmartField-Platzhalter erst einmal im XML gespeichert, kann die Anfragepage diese Parameter nicht mehr öffnen – sie würde die Platzhalter als typisierte XML-Werte parsen wollen und scheitern. Der Assist-Edit auf dem Feld „Report-Parameter" leitet automatisch zu XML bearbeiten um, sobald Platzhalter erkannt werden. Um zur Anfragepage zurückzukehren, zuerst über Berichtsparameter zurücksetzen leeren.

Typisierte Felder. Ersetzungswerte werden unverändert in das XML übernommen. Text-Felder sind nachsichtig; typisierte Felder (Datum, Decimal, Boolean, Integer …) verlangen das Format, das BCs Anfragepage erwartet – sonst scheitert der Bericht mit einem NavType-Parse-Fehler. Ein SmartField-Format-Suffix ({{name;9}}) bringt den Wert in die Form, die der Parser erwartet – ;9 ist BCs XML-Format und genau das, was die Anfragepage erwartet:

<Field name="StartDate">{{trigger.postingDate;9}}</Field>

Das ergibt 2026-05-26 für ein Datum, 1234.56 für eine Decimal, true/false für einen Boolean.

Dateiname-Pattern​

  • Zweck: Steuert den Dateinamen des erzeugten PDF-Dokuments.
  • Wann ausfüllen: Optional. Wird das Feld leer gelassen, wird ein Standardname verwendet (Report_{ReportId}.pdf).
  • Funktionsweise: Verwende Platzhalter, um dynamische Dateinamen zu erstellen:
    • {ReportName} — Der Caption des gewählten Reports.
    • {RecordNo} — Der Primärschlüsselwert des Quell-Datensatzes.
    • {ReportId} — Die numerische ID des Reports.
  • Beispiel: {ReportName}_{RecordNo}.pdf erzeugt Verkaufsrechnung_1001.pdf.

Output​

Der Schritt liefert einen einzelnen Referenz-Output:

  • Document: Eine Referenz auf den neu erstellten Eintrag in der Document-Tabelle (mse365 AF Document).

Nutze diesen Output in Folgesteps, indem du ihn über den Step-Slug referenzierst, zum Beispiel pdfprint_Document. Da es sich um einen Referenz-Output handelt, können spätere Schritte den vollständigen Dokument-Datensatz auflösen — inklusive Name, Content-Type, Länge und Binärdaten.

Was passiert, wenn der Schritt läuft​

  1. Der Schritt liest die konfigurierte Report-ID, den Selektor (falls gesetzt), die Parameter, das Layout (falls gesetzt) und das Dateiname-Pattern.
  2. Er prüft, dass der Report existiert, dass das gewählte Layout (falls gesetzt) für diesen Report noch existiert und – wenn ein Selektor gesetzt ist – dass dieser auf einen gültigen Datensatz auflöst. Ohne Selektor läuft der Report ohne Datensatz-Scope und nutzt nur die konfigurierten Parameter.
  3. Der Report wird als PDF in einen In-Memory-Stream gerendert – mit dem gewählten Layout, falls gesetzt, sonst mit dem Standard-Layout des Reports.
  4. Ein neuer Dokumenteintrag wird in der AutoFlow-Dokumentenbibliothek erstellt — mit dem PDF-Inhalt, dem Dateinamen und dem Content-Type application/pdf.
  5. Die Record-ID des Dokuments wird als Referenz-Output ausgegeben.

Das erzeugte Dokument ist auf der Dokumente-Seite sichtbar und bleibt unabhängig von der Flow-Ausführung bestehen.

Best Practices​

  • Aussagekräftiges Dateiname-Pattern setzen: Standardnamen wie Report_206.pdf sind später schwer zuzuordnen. Nutze {ReportName}_{RecordNo}.pdf für Klarheit.
  • Selektor validieren: Wenn du einen dynamischen Selektor aus einem vorherigen Schritt verwendest, stelle sicher, dass dieser immer eine Datensatz-Referenz liefert.
  • Mit E-Mail- oder Archiv-Steps verketten: Die Dokument-Referenz kann von jedem Step genutzt werden, der einen Record-Selektor akzeptiert — z. B. um die PDF an eine E-Mail anzuhängen oder in ein externes System zu kopieren.
  • Dokumente-Seite prüfen: Überprüfe nach der Ausführung, ob das erzeugte Dokument in der Dokumentenliste mit dem erwarteten Namen und der erwarteten Größe erscheint.