Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

Konzept

primedocs basic web ermöglicht es, die primedocs Vorlagen in anderen Webapplikationen zu integrieren.

...

primedocs kann direkt aus einer SharePoint Dokumentbibliothek aufgerufen werden. Die primedocs SharePoint App integriert sich hierbei in die Toolbar:

...

Über den Toolbar Button werden Sie direkt in die primedocs basic Applikation weitergeleitet, welche nun alle Dokument direkt in der jeweiligen SharePoint Liste abgelegt:

...

Technische Details

...

Hierfür muss die SharePoint App installiert werden: Microsoft SharePoint App-Installation

Microsoft Teams

primedocs kann über die Web-Integration direkt in Teams aufgerufen werden.

...

Hierfür muss die Teams App installiert werden: Microsoft Teams App-Installation

CMI

Für die Integration in das Produkt CMI ist folgendes nötig:

Die Version 24.0 oder eine neuere Version ist installiert.

Im CMI muss primedocs als Applikation registriert sein (Scope templateManager) und die ClientId und das ClientSecret wird benötigt.

Diese Daten müssen dann in der primedocs.config hinterlegt werden:

Code Block
<primedocs ...>
    ...
    <cmi tokenEndpointHost="https://[sts-cmihost.com]" 
         uploadEndpointHost="https://[cmihost.com]"
         clientId="[Client Id von CMI]" 
         clientSecret="[Client Secret von CMI]" 
         />
    ...
</primedocs>

Eine Demonstration dieser Integration finden Sie auf unserem YouTube Kanal.

Die Konfiguration bei der gehosteten CMI Version sieht in der Regel so aus:

Code Block
<primedocs ...>
    ...
    <cmi tokenEndpointHost="https://sts3.prod.cmicloud.ch" 
         uploadEndpointHost="https://docintegration-template.prod.cmicloud.ch"
         clientId="[Client Id von CMI]" 
         clientSecret="[Client Secret von CMI]" 
         />
    ...
</primedocs>


Wichtig: Der “Tenant” wird automatisch über die CMI Integration übertragen und darf daher nicht konfiguriert werden, da ansonsten die URL falsch zusammengesetzt wird.

Einbinden von CMI Daten in Vorlagen

Möchte man Daten aus CMI in primedocs Vorlagen anzeigen, kann man diese als Platzhalter über Word PlainText Content Controls mit dem Namensschema CMI_[FELDNAME] bzw. können auch Bookmarks genutzt werden. Sowohl die Content Controls mit dem CMI Naming als auch Bookmarks werden von CMI automatisch mit den richtigen Inhalten befüllt.

Technische Details

Beim Auswahl des primedocs “Template-Picker” wird ein iFrame erzeugt, welches auf die primedocs Web-Applikation zeigt.
Zusätzlich wird der Parameter saveLocationCmiTenant sowie saveLocationCmiToken mitgegeben. Im einfachsten Fall erzeugt die CMI Applikation solch ein iFrame:

Code Block
<iframe src="https://{INSTANCE-NAME}/app/web

...

Die installierte SharePoint App fügt der konfigurierten Url beim Auslösen des Buttons weitere Parameter (saveLocationSharePointSiteId, saveLocationSharePointSiteName, saveLocationSharePointFolderPath, saveLocationSharePointListId, saveLocationSharePointListName, saveLocationSharePointUrl) hinzu, sodass primedocs basic die Dokumente in der richtigen Dokumentbibliothek ablegen kann.

Die Azure AD App benötigt hierfür den Scope Sites.Read.All.

Microsoft Teams

Note

ToDo

Microsoft Office Addin

Note
ToDo
/cmi?saveLocationCmiTenant=[CMI-Tenant]&saveLocationCmiToken=[CMI-Token]"
        style="height: 700px; width: 700px; border: 1px solid;">
</iframe>

Nach dem Erzeugen des Dokuments wird es automatisch an den uploadEndpointHost hochgeladen.

Beim Hochladen geschehen noch folgende Zwischenschritte:

  • Über die ClientId und ClientSecret wird vom [tokenEndpointHost]/[CMI-Tenant]/identity/connect/token mit dem Scope templateManager via client_credentials ein AccessToken angefordert.

  • Das AccessToken wird für den Dateiupload an [uploadEndpointHost]/[CMI-Tenant]/Template/[CMI-Token] angehangen und der Upload wird via HTTP POST ausgeführt.

Nach dem Hochladen wird per Javascript an CMI dieses Objekt geliefert, sodass der Prozess im CMI fortgesetzt werden kann.

Code Block
window.parent.postMessage({
                           type: "template-chooser-document-uploaded",
                           name: result.name,
                          }, "*");