Connect Session Templates
Diese Dokumentfunktion definiert benannte, vorinitialisierte Connect-Sessions. Die primedocs Web App kann eine solche Session direkt über eine URL starten und dabei Formular- und Datenwerte vorbefüllen – ideal, um aus einem Drittsystem (GEVER, CRM, Eigenentwicklung) heraus eine teilweise ausgefüllte Dokumenterstellung anzustossen.
Verwandte Themen: primedocs Connect, Connect Session API.
Aufruf über URL
Die Web App startet eine Session über:
https://{instanz}/app/web/session/template/{Name}?Forms.Subject=...&Data.CustomerId=...
{Name} entspricht dem Attribut Name des ConnectSessionTemplate. Die GET-Parameter der aufrufenden URL werden in das resultierende Connect-Objekt zusammengeführt (Forms.* → Forms, Data.* → Data) und stehen den Initializern zur Verfügung.
Grundaufbau
<ConnectSessionTemplatesConfiguration>
<ConnectSessionTemplate Name="Offerte">
<Initializers>
<CodeDataProvider>
<Code>
function main() {
return {
Forms: { Subject: $.parameter('Forms.Subject') },
Data: {}
};
}
</Code>
</CodeDataProvider>
</Initializers>
</ConnectSessionTemplate>
</ConnectSessionTemplatesConfiguration>
| Attribut / Element | Pflicht | Beschreibung |
|---|---|---|
ConnectSessionTemplate/@Name | ja | Name der Vorlage – dient als Nachschlageschlüssel in der aufrufenden URL. |
Initializers | optional | Geordnete Liste von Initializern (siehe unten). |
Commands | optional | An die Session angehängte Connect Commands (siehe unten). |
GlobalInitializers/@Key | optional | Referenz auf eine globale Initializer-Konfiguration. Schliesst sich mit inline Initializers gegenseitig aus (inline hat Vorrang). |
GlobalCommands/@Key | optional | Referenz auf eine globale Command-Konfiguration. Schliesst sich mit inline Commands gegenseitig aus (inline hat Vorrang). |
Initializers
Die Initializers werden in der definierten Reihenfolge ausgeführt. Jeder Initializer muss ein Objekt der Form { Forms: { … }, Data: { … } } zurückgeben; das Ergebnis wird in das sich aufbauende Connect-Objekt gemischt und ist für den nächsten Initializer sichtbar.
Verfügbare Initializer-Typen:
| Typ | Beschreibung |
|---|---|
CodeDataProvider | Wertet ein JavaScript-Snippet aus und gibt direkt { Forms, Data } zurück – ohne externen Aufruf. |
HttpDataProvider | Bezieht Daten über den DataService (OAuth/Secret/mehrstufige HTTP-Logik). Alle URL-Parameter werden automatisch als Suchdaten weitergereicht. |
SqlDataProvider | Führt eine SQL-Abfrage über den DataService aus. |
ExcelDataProvider / CsvDataProvider | Liest eine Excel- bzw. CSV-Datei über den DataService. |
GlobalDataProviders/@Key | Bindet die Initializer einer globalen Konfiguration an dieser Stelle ein. |
Das $-Objekt im CodeDataProvider/Code stellt bereit:
| API | Beschreibung |
|---|---|
$.parameter(key) | Liefert einen URL-Parameter der aufrufenden URL (z.B. $.parameter('Forms.Subject')). |
$.forms(key) | Liefert einen bereits gesetzten Forms-Wert. |
$.data(key) | Liefert einen bereits gesetzten Data-Wert. |
$.datasourceId | ID der aktuellen Datasource. |
$.templateId | ID der Vorlage. |
Die service-basierten Initializer (HttpDataProvider, SqlDataProvider, ExcelDataProvider, CsvDataProvider) nutzen denselben Mechanismus wie die Select-Datenschnittstelle. Eine Mapping-Konfiguration wird bei Initializern nicht unterstützt; die Transformation erfolgt im Code-Element.
Commands
Über Commands lassen sich Connect Commands an die resultierende Session anhängen, gruppiert nach den Ereignissen OnSuccess, OnExit, OnError und OnCancel. In Web-Sessions werden die Befehle InvokeUrl (mehrstufiger HTTP-Aufruf an ein externes System) und ShowDialog (Rückmeldungsdialog) unterstützt.
<Commands>
<OnSuccess>
<ShowDialog Title="Fertig" Message="Das Dokument wurde erstellt." ButtonLabel="OK" />
</OnSuccess>
</Commands>
InvokeUrl kann über das Attribut ConnectedServiceKey einen Connected Service voraussetzen. Ist der Benutzer nicht angemeldet, zeigt die Web App ein Anmelde-Banner an.