HTTP-API
Der Vorlagendruck unterstützt das direkte Auslösen der Dokumentengenerierung und des Downloads über eine HTTP-API. Sowohl beim Detail- als auch beim Tabellenblock wird letztlich die templatePrint Action auf der aktuellen Geschäftsresource ausgeführt.
Erläuterungen:
<resource_name>ist der Resource-Name der aktuellen Datentabelle.- Die Schnittstelle gibt einen Binär-Datei-Stream zurück, keine JSON-Daten.
- Der Aufrufer benötigt die Abfrageberechtigung für die aktuelle Resource sowie die Nutzungsberechtigung für die zugehörige Vorlagendruck-Schaltfläche.
- Der Aufruf erfordert das Mitsenden eines benutzerbezogenen JWT-Tokens im Authorization-Header, sonst wird der Zugriff abgelehnt.
Request-Body Parameter
Tabellenblock
Der Tabellenblock verwendet dieselbe Schnittstelle, durch blockName: "table" wird der Listen-Druckmodus angegeben. Serverseitig wird auf der Resource ein find ausgeführt und das Ergebnis-Array an die Vorlage übergeben.
Ausgewählte Datensätze oder das aktuelle Seitenergebnis drucken
Geeignet, wenn ausgewählte Datensätze aus dem Tabellenblock gedruckt oder der aktuelle Paginierungskontext beibehalten werden soll. Übliches Vorgehen:
queryParams.pageundqueryParams.pageSizeauf die aktuelle Seitennummer und Seitengröße der Tabelle setzen.- Die Primärschlüssel der ausgewählten Datensätze als Bedingung
filter.id.$informulieren.
Bedeutung dieser Anfrage:
blockNameisttable, d. h. die Vorlage wird mit Listendaten gerendert.filter.id.$ingibt die Menge der zu druckenden Datensätze an.pageundpageSizebehalten den aktuellen Paginierungskontext bei, um mit dem Verhalten in der Oberfläche übereinzustimmen.appendskann bei Bedarf um Beziehungsfelder ergänzt werden.
Alle passenden Daten drucken
Geeignet für den Aufruf bei „Alle Datensätze drucken" im Tabellenblock. Hier wird nicht nach der aktuellen Seite paginiert, sondern es werden direkt alle Daten abgerufen, die der aktuellen Filterbedingung entsprechen.
Wichtig ist, queryParams.page und queryParams.pageSize explizit auf null zu setzen.
Bedeutung dieser Anfrage:
page: nullundpageSize: nullheben die Paginierungsbegrenzung auf.filter: {}bedeutet, dass keine zusätzlichen Filterbedingungen angefügt werden; falls in der Oberfläche bereits Filterbedingungen gesetzt sind, können sie hier direkt eingefügt werden.- Der Server fragt alle passenden Datensätze ab und rendert die Vorlage stapelweise.
Hinweis: Im Tabellenblock können maximal 300 Datensätze pro Druckvorgang gedruckt werden. Bei Überschreitung des Limits gibt die Schnittstelle einen
400-Fehler zurück.
Detailblock
Der Detailblock verwendet ebenfalls die Action templatePrint, üblicherweise mit folgenden Parametern:
blockName: "details"queryParams.filterByTkmit dem Primärschlüssel des aktuellen DatensatzesqueryParams.appendsmit den zusätzlich abzufragenden Beziehungsfeldern
Serverseitig wird auf der Resource ein findOne ausgeführt und das Ergebnisobjekt an die Vorlage übergeben.
Rückgabewert
Bei erfolgreichem Aufruf gibt die Schnittstelle direkt einen Datei-Stream zurück. Typische Antwort-Header:
Erläuterungen:
- Wenn
convertedToPDFauftruegesetzt ist, hat die zurückgegebene Datei die Erweiterung.pdf. - Andernfalls wird eine Datei im Originalformat der Vorlage zurückgegeben, z. B.
.docx,.xlsxoder.pptx. - Im Frontend wird üblicherweise anhand des Dateinamens im
Content-Disposition-Header der Browser-Download ausgelöst.

