Mehrere AgilePoint NX Mandanten auf der gleichen SharePoint Web-Application

Üblicherweise gibt es eine eindeutige 1:1 Zuordnung von AgilePoint NX Mandant und SharePoint Web-Application. Es gibt aber auch den Fall, dass sich mehrere AgilePoint NX Mandanten eine "SharePoint Web-Application" teilen - d.h. bspw. ein "AgilePoint NX Mandant" hat ein oder mehrere "Site-Collections".

Hintergrund Informationen

Nach dem Sie die AgilePoint SharePoint Integration nach Anleitung istalliert haben. Konfigurieren Sie Werte in der AgilePoint Configuration List. Es gibt bei einer SharePoint On-Prem Installation zwei parallel genutzte Mechanismen zum Zugriff auf die AgilePoint NX WebServices.

A.) Zugriff per REST

Zugriff auf AgilePoint REST WebService API. Der entsprechende Konfigurationseintag ist "ServerInstanceUrl". Dieser Mechanismus ist für das "AgilePoint Dashboard" und "AgilePoint Formulare".

B.) Zugriff per WCF (SOAP)

Mit dem Werkzeug Windows Service Client Utility Tool erstellten Sie bei der Konfiguration der AgilePoint SharePoint Integration im Web.Config Einträge für den Zugriff auf AgilePoint NX. Diesen Mechanismus nutzen "Assign Workflow", der "Process Viewer" und die SharePoint "Event Handler".

Insgesamt stehen Ihnen drei mögliche WCF Bindings zur Verfügung:

  • WSHttp
  • Basic HTTP
  • TCP

Sie wählen in der AgilePoint Configuration List jeweils das Binding für /Admin in der Eigenschaft "AdminBindingUsed" aus:

  • WSHttpBinding_IWCFAdminService
  • BasicHttpBinding_IWCFAdminService
  • NetTcpBinding_IWCFAdminService

und /Workflow in der Eigenschaft "WorkflowBindingUsed":

  • WSHttpBinding_IWCFWorkflowService
  • BasicHttpBinding_IWCFWorkflowService
  • NetTcpBinding_IWCFWorkflowService

Das ergibt dann beispielsweise:



Ansatz für bis zu 3 AgilePoint NX Mandanten auf der gleichen SharePoint Web-Application

Jeder Mandant konfiguriert seine Werte für die "ServerInstanceUrl" für den REST Zugriff.

Teilen Sie dann jedem Mandanten einen der folgenden Zugriffswege zu:
  • WSHttp
  • Basic HTTP
  • TCP
"Mandant 1" erhält die Bindings:
  • WSHttpBinding_IWCFAdminService
  • WSHttpBinding_IWCFWorkflowService
"Mandant 2" erhält die Bindings:
  • BasicHttpBinding_IWCFAdminService
  • BasicHttpBinding_IWCFWorkflowService
"Mandant 3" erhält die Bindings:
  • NetTcpBinding_IWCFWorkflowService
  • NetTcpBinding_IWCFAdminService

Folgen Sie nun den Schritten:

1.) Kopieren Sie 3x das Web.Config von SharePoint  und lassen das Windows Service Client Utility Tool jeweils gegen die AgilePoint NX WebServices laufen.

2.) Übertragen Sie nun erstellte Strukturen für die Bindings von "Mandant 2" und "Mandant 3" in das Web.Config von "Mandant 1". Die Werte des entsprechendes Bindings finden Sie jeweils im Bereich "client.endpoint". Bitte überprüfen Sie auch Unterscheide in den referenzierten Strukturen "bindingConfiguration" und Eigenschaften wie bspw. "userPrincipalName":


3.) Kopieren Sie das Web.Config von "Mandant 1" zurück auf SharePoint. und testen Sie die einzelnen Mandanten

Ansatz für >3 AgilePoint NX Mandanten auf der gleichen SharePoint Web-Application

Anmerkung: Wählen Sie diesen Weg nur, wenn Sie tatsächlich >3 Mandanten auf der gleichen SharePoint Web-Application benötigen.

Die AgilePoint Integration erstellt dynamisch mit den Werten aus "AdminBindingUsed" und "WorkflowBindingUsed" den Zugriff per WCF. Sie können eigene Binding Strukturen im Web.Config erstellen (durch kopieren und umbenennen) und diese dann verwenden:

  • WSHttpBinding_IWCFWorkflowService_Company1
  • WSHttpBinding_IWCFWorkflowService_Company2
  • WSHttpBinding_IWCFWorkflowService_Company3
  • WSHttpBinding_IWCFWorkflowService_Company4
  • WSHttpBinding_IWCFWorkflowService_Company5
  • ...
Und dann bspw. für WsHttp in "WorkflowBindingUsed" angeben. Analog gilt dies für "AdminBindingUsed". Dies kann wie folgt aussehen:


Und deren Verwendung in der AgilePoint Configuration List


Erweiterte PDF Funktionen

Mit dem PDF Converter activity und Microsoft Word activity erstellen Sie PDFs. Benötigen Sie erweiterte Funktionalitäten nutzen und erweitern Sie den folgenden Ansatz. Grundidee ist, dass Dokumente über eine Url erreichbar sind (bspw. liegen auf SharePoint in einer Dokumentenbibliothek) und das erstellte PDF (bspw. zusammengefügtes PDF aus den einzeln erstellten - oder bereits vorhandenen - PDFs) gespeichert wird per Ziel Url (bpsw. auf SharePoint ind eine Dokumentenbibliothek). Die Funktionalität steht Ihnen als WebService und Basisumsetzung zur Verfügung, den Sie lizenztechnisch nur von AgilePoint aus nutzen dürfen. Die Lösung steht hier zum Download zur Verfügung.

Die Lösung besteht aus drei Projekten



Zur PDF Erzeugung nutzen Sie die unten markierten Methoden



Stellen Sie den WebService im IIS zur Verfügung und wählen einen Application Pool der unter dem AgilePoint System Benutzer läuft



Testen Sie den WebService wie folgt mit belieben Testwerkzeugen. Hier wird eine SharePoint DocLib als Speicherort der Ausgangsdokumente und des Zieldokumentes verwendet






Verwenden Sie nun den WebService in einer AgilePoint Anwendung. Hier wird die Methode "CreateConcatedPdfByDelimitedUrls" verwendet (Alternative dazu ist die Methode "CreateConcatedPdfByUrls").

Erstellen Sie zuerst einen Globalen Zugangstoken auf den WebService



Erstellen Sie nun die Anwendung und greifen dabei auf den WebService zu




Starten Sie den Prozess über das Formular



Und kontrollieren das Ergebnis (durchgelaufener Prozess und erstelltes PDF)




Warten im Hauptprozess bis im Subprozess eine betimmte Aktivität durchlaufen wird

Mit dem Milestone Mechanismus warten Sie in einem Hauptprozess bis ein definierter SubProzess dessen eine bestimmte Aktivität durchlaufen hat. Dies funktioniert unabhängig vom Mechanismus mit dem Sie den SubProzess starten. Ein Auszug möglicher Startrvarianten wie folgt:

- Verwenden des Activity "SubProcess" in einem Hauptprozess
- Starten über Aufruf der AgilePoint WebService Methode "CreateProcessInstance" (SOAP oder REST) aus einem Prozess heraus (hier gezeigt)
- Starten über Aufruf der AgilePoint WebService Methode "CreateProcessInstance" (SOAP oder REST) aus einer externen Anwendung

Der Hautprozess hat als letzte Aktivität das "Wait for Milestone" (weitere Aktivitäten dahinter sind möglich)


Der SubProzess verwendet das "Pass Milestone" Activity (dahinter sind auch weitere Aktivitäten möglich)


Die Konfiguration des Hauptprozesses wie folgt - zuerst Formular ausfüllen und dann Prozessdaten setzen:




Die aktuell freigegebene Prozessdefinition abgefragen




Den SubProzess starten





Die Konfiguration des "Wait for Milestone":





Das ergibt dann in einem Durchlauf den Haupt und den zugehörigen Subprozess:





Erweiterte Daten einer Prozessinstanz abfragen und verwenden

Gehen Sie wie folgt vor zum Abfragen und anschließenden Verwenden der erweiterten Eigenschaften einer Prozessinstanz (bspw. Eigenschaft "WorkObjectID").

A.) Lokale Variablen anlegen


B.) Lokale Variablen befüllen


C.) Den AgilePoint WebService "Workflow" aufrufen per REST oder SOAP (hier gezeigt). Legen Sie zuvor ein globales Zugangstoken an und verwenden dies. Wählen Sie die WebService Methode "GetProcInst" aus und führen das Mapping zur WebService Methode und deren Antwort aus.





D.) Dies ergibt nach einem Durchlauf



Statische Werte in einem Mapping verwenden (z.B. auf WebService Methode)

Sie verwenden statische Werte in einem Mapping (bspw. auf WebService Methode) auf zwei Arten entsprechend Ihren Anwendungsfällen:

A.) Lokale Variable erstellen und befüllen (und später im Mapping verwenden)




B.) Verwenden einer Konvertierungs Methode innerhalb eines Mapping

Anmerkung: Sie verbinden einen beliebigen Knoten mit dem Ziel, welches Sie statisch befüllen wollen. Dann markieren Sie diese Verbindung und fügen eine Konvertierungs Methode hinzu - verwenden den Eingandparameter nicht, sondern geben einen statischen Wert zurück.



C.) Ergibt dann bei einem Durchlauf (Debugging des WebService Aufrufs)






Kontaktformular

Name

E-Mail *

Nachricht *