/
Nach der Dokumentgenerierung (Commands)

Nach der Dokumentgenerierung (Commands)


Nach der eigentlichen Dokumentgenerierung können Commands (Befehle) aufgerufen werden. Gewisse Commands können nur im Erfolgsfall (OnSuccess) verwendet werden.

“Breaking Change”
In der Version 4.0.30043.0 wurden diverse Änderungen vorgenommen, u.A. wurden Attributnamen geändert oder Konfigurationen erweitert/abgewandelt. Prüfen Sie im Fehlerfall, ob die Konfiguration mit der aktuellen Version übereinstimmt.

Zugriff auf das Ergebnis

Es gibt zwei Arten von Ergebnissen einer Dokumentgenerierung:

  • <Document />: Dieses Document-Element ist das eigentliche Ergebnis nach der Dokumentgenerierung, welches das Word, PowerPoint, Excel oder auch die externe Datei beinhaltet.
    Dieses Element ist nur im Erfolgsfall, d.h. im OnSuccess verfügbar!

  • <Report />: Der Report ist eine Abbild des Zustands der Dokumentgenerierung bzw. der Zustand der Abarbeitung der Commands.
    Bei einem Abbruch der Generierung oder in einem Fehlerfall, kann der Report genutzt werden um die Fehlerinformation an das aufrufende System weiterzugeben.

Commands müssen das Ergebnis explizit angeben, d.h. entweder muss Document oder Report konfiguriert sein.

Dokument

Das Document enthält das eigentliche Resultat der Dokumentgenerierung und kann nur im OnSuccess-Fall genutzt werden.

Konvertierung zu PDF

Um das Dokument in ein PDF umzuwandeln, gibt es ein extra Attribut:

<Document Conversion="..." />

Aktuell wird die Conversion nur für Word-Vorlagen unterstützt!

Ein Dokument kann entweder Microsoft Office konvertiert werden:

<Document Conversion="PdfViaOffice" />

… oder über den in primedocs integrierten PDF Konverter:

<Document Conversion="Pdf" />

Report

Der Report ist insbesondere für Fehler oder manuelle Abbrüche der Generierung geeignet.

Allerdings steht der Report in allen Fällen (OnSuccess, OnError, OnCancel, OnExit) zur Verfügung.

Wichtig: Initial erhält der Report den Status der Dokumentgenerierung. Danach wird jeder definierte Command nach der Reihe abgearbeitet und jeder Command beeinflusst daraufhin den Report.

Der Report selbst ist eine XML-Datei, welche folgende Struktur aufweisst:

  • Status: Der Status kann folgende Werte beinhalten:

    • OK: Keine Fehler, die Dokumentgenerierung oder alle Commands bis zu diesem Punkt liefen erfolgreich durch.

    • Cancelled: Dieser Status tritt auf, wenn der Benutzer die Dokumentgenerierung abbricht.

    • Error: Fehler bei der Dokumentgenerierung oder falls ein vorangegangener Command fehlt schlug.

  • Input & File: Wenn primedocs über eine primedocs Connect Datei aufgerufen wird, dann enthält dieses Element den Dateipfad dieser Datei.

  • CreatedOnUtc: Zeitangabe, wann der Report erstellt wurde.

  • Message: Beinhaltet Meldungen des Reports.

Dynamische Parameter

Connect Commands können über ihre jeweiligen Attribute bzw. Elementen mit Werten ausgestattet werden, so z.B. kann man den Speicherpfad bei SaveFile angeben:

Möchte man allerdings den Pfad oder Dateinamen dynamisch zusammenbauen, kann man über das field-Attribut auf die Felder der Dokumentgenerierung (“User”, “Forms”, “Field”, “Data” etc.) zugreifen.

Der Einsatz hier ist nur exemplarisch. Nicht jedes Attribut oder Element unterstützt den Zugriff auf Felder.

Grundsätzlich:

  • Attribute, welche den Zugriff auf Felder unterstützen sind in dem Stil benannt:

    • Attribut="statischer Wert" bzw. field-Attribut="FeldName"

  • Elemente, welche den Zugriff auf Felder unterstützen sind in diesem Stil benannt:

    • <Element>statischer Wert</Element> bzw. <Element field-Content="FeldName" />

Der Zugriff auf die Felder funktioniert nur im OnSuccess-Fall.

Commands

Die folgende Tabelle führt alle verfügbaren Commands auf und gibt an, ob sie nur client-seitig oder server-seitig verfügbar sind sowie, ob sie nur im Erfolgsfall verwendet werden können.

Übersicht

Command

Beschreibung

Client

Command

Beschreibung

Client

OpenFile

Öffnet Office-Dateien mit dem Standardprozess, der in Windows für den Dateityp registriert ist.

SaveFile

Speichert das Dokument am angegebenen Zielort im angegebenen Format.

InvokeProcess

Ruft eine externe Anwendung auf. Aus Sicherheitsgründen muss der Prozess vorher konfiguriert werden.

InvokeUrl

Sendet die Datei bzw. den Report an einen HTTP/HTTPS Endpunkt. Aus Sicherheitsgründen muss die Ziel-URL vorher konfiguriert werden.

Beschreibungen

SaveFile (client-only)

Der SaveFile-Command speichert das Dokument am angegebenen Zielort.

Attribute:

  • FileName: Absoluter Pfad mit Dateiendung

  • field-FileName: Alternative zu FileName um dynamische Pfade über die Felder zu ermöglichen.

  • Overwrite: True/False; gibt an, ob eine bestehende Datei überschrieben werden soll.

  • CreateFolder: True/False; gibt an, ob Ordner, die im Filename angegeben sind, erstellt werden sollen.

Elemente:

  • Document oder Report: Siehe Abschnitt “Zugriff auf das Ergebnis”

OpenFile (client-only)

Der OpenFile-Command öffnet Office-Dateien mit dem Standardprozess, der in Windows für den Dateityp registriert ist. Beispielsweise wird die generierte Datei an einem bestimmten Dateiort gespeichert und soll hinterher im Word weiterbearbeitet werden.

Attribute:

  • FileName: Absoluter Pfad mit Ziel-Dateiendung

  • field-FileName: Alternative zu FileName um dynamische Pfade über die Felder zu ermöglichen.

InvokeProcess (client-only)

Der InvokeProcess-Command ruft eine externe Anwendung auf. Aus Sicherheitsgründen müssen im Dashboard die zulässigen Applikationen zuerst whitelisted werden. Die Konfiguration dafür kann unter Settings → Connect Settings → InvokeProcess - Configuration gefunden werden und sieht ansatzweise wie folgt aus:

Der Aufruf in der Connect-Datei muss mit dem Namen einer zuvor im Dashboard freigegebenen Applikation übereinstimmen.

Attribute:

  • Name: Konfigurierter Prozessname

Elemente:

  • Arguments: Argumente für den Prozessaufruf

  • Arguments mit field-Content: Alternative zu Arguments. Erlaubt es auf Feldwerte zuzugreifen.

Der Aufruf kann optional Argumente enthalten und sieht folgendermassen aus:

InvokeUrl (client-only)

Der InvokeUrl-Command sendet die Datei bzw. den Report an einen HTTP/HTTPS Endpunkt. Aus Sicherheitsgründen müssen im Dashboard die zulässigen Applikationen zuerst whitelisted werden. Die Konfiguration dafür kann unter Settings → Connect Settings → InvokeUrl - Configuration gefunden werden und sieht ansatzweise wie folgt aus:

Grundsätzlicher Aufbau:

Im InvokeUrl können HTTP-Requests als Schritte (Step) definiert werden.
Ein Step besteht aus einem Request bzw. MultipartFormDataRequest und optional einer Response.

Der Aufbau ist ähnlich dem HttpDataProvider, allerdings kann über den MultipartFormDataRequest das Document bzw. der Report an einen Endpunkt gesendet werden.

Der Command arbeitet alle Step-Elemente in der definierten Reihenfolge ab. Ein Step hat keine weiteren Attribute.

Request-Element:

  • Attribute:

    • Method: Angabe der HTTP Methode (POST, GET, etc.)

  • Elemente:

    • Url: Angabe der Ziel URL, welche aus Sicherheitsgründen im Dashboard konfiguriert werden muss.

    • Url mit field-Content: Alternative zu Url. Erlaubt es auf Feldwerte zuzugreifen.

    • Body: Angabe des HTTP Bodies.

    • Body mit field-Content: Alternative zu Body. Erlaubt es auf Feldwerte zuzugreifen.

    • Header: Liste von HTTP Headern aus Key und Value bzw. field-Value

MultipartFormDataRequest-Element:

  • Elemente:

    • Url: Angabe der Ziel URL, welche aus Sicherheitsgründen im Dashboard konfiguriert werden muss.

    • Url mit field-Content: Alternative zu Url. Erlaubt es auf Feldwerte zuzugreifen.

    • Header: Liste von HTTP Headern aus Key und Value bzw. field-Value

    • FormData: Liste von FormData Elementen aus Key und Value bzw. field-Value

    • File: Übergabe der eigentlichen Datei als multipart/form-data Request.

      • Attribute:

        • Name: Optionaler Name - abhängig vom Serverendpunkt. Die binären Daten werden als multipart/form-data unter diesem Namen in den Request serialisiert.

        • FileName: Optionaler Dateiname.

        • field-FileName: Alternative zu FileName um dynamische Namen über die Felder zu ermöglichen.

      • Elemente:

        • Document oder Report: Siehe Abschnitt “Zugriff auf das Ergebnis”

Response-Element:

  • Elemente:

    • Property: Abrufen bestimmter Daten aus dem Ergebnis des HTTP Requests.

      • Attribute:

        • Name: Name der Eigenschaft. Über den {PropertyName} Syntax kann man in einem darauffolgenden Request auf diesen Wert zugreifen.

        • JsonPath: Über den JsonPath wird der Wert der Eigenschaft ermittelt. Hierbei muss die HTTP Antwort ein valides JSON sein.

        • XPath: Über den XPath wird der Wert der Eigenschaft ermittelt. Hierbei muss die HTTP Antwort ein valides XML sein.

Beispiel:

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland