Die Möglichkeit einer "Vorgangs-Fernerzeugung", also der Erzeugung eines Vorgangs durch einen externen Aufruf oder aus der Workflow-Verarbeitung eines anderen Formulars, kann mittels des Advanced-Plugin-Bundles realisiert werden. Dieses Plugin kann Ihnen auf Anfrage zur Verfügung gestellt werden. Hinweis: Das Advanced-Plugin-Bundle bietet noch andere Funktionalitäten, welche aber teilweise nur im Zusammenhang mit der inzwischen veralteten Statusverarbeitung (v6) stehen bzw. funktionieren, deshalb nicht in diesem Artikel erläutert werden und auch nicht mehr verwendet werden sollten.
Einleitung
In diesem Artikel werden 2 Möglichkeiten aufgezeigt, wie man in formcycle Vorgänge erzeugen oder Daten in vorhandenen Vorgängen aktualisieren kann und anschließend noch einen Workflow-Verarbeitung in diesen Formularen ausführen kann ohne Nutzerinteraktion über einen Browser.
Gedacht ist dies vor allem für service-to-service Kommunikation, also ohne direkte Nutzerinteraktion, zwischen unterschiedlichen Formular-Projekten (Anwendungsfall 1) oder einer Drittanwendung (über einen HTTP-Request) und einem Formular-Projekt (Anwendungsfall 2).
Anwendungsfall 1: Aufruf aus Formular
Das nachfolgend beschriebene Konfiguration ermöglicht es, aus einem Formular (im weiteren Verlauf Sender-Formular genannt) Dateien an ein anderes Formular (im weiteren Verlauf Empfänger-Formular genannt) zu übermitteln und anschließend im Empfänger-Formular eine Workflow-Verarbeitung zu starten.
Konfiguration Sender-Formular
Im Sender-Formular muss die Workflow-Aktion Vorgang erzeugen integriert werden.
Sie bietet folgende Konfigurationsmöglichkeiten:
Beschreibung Konfigurationselemente der WF-Aktion: Vorgang erzeugen
- Formular
- Auswahl des Formulars, für das ein neuer Vorgang erzeugt werden soll. Nach dem Erzeugen des Vorgang wird automatisch versucht eine Workflow-Verarbeitung zu starten. Dies erfolgt für Formulare ab V7 durch das Auslösen eines Ereignisses vom Typ Vorgangs-Fernerzeugung. Für ältere Formulare (V6) wird eine Statusverarbeitung durchgeführt, wenn ein Ziel-Status ausgewählt wurde. Ist kein Ziel-Status gewählt, wird eine Status-Verarbeitung für den Status Eingegangen durchgeführt.
- Gleichnamige Felder automatisch übertragen
- Ist diese Option aktiviert werden alle Daten des Ausgangs-Vorgangs an den neu erzeugten Vorgang im Ziel-Formular übertragen.
Ist diese Option deaktiviert und enthält die Tabelle Formularwerte zuordnen keine Werte, dann wird der Vorgang im Ziel-Formular ohne Daten angelegt. - Formularwerte zuordnen (Tabelle)
- Diese Tabelle ermöglicht es dediziert auf einzelne Formular-Elemente im Ziel-Formular Einfluss zu nehmen und
diese mit Werten zu belegen. Bei der Wertebelegung werden Platzhalter unterstützt.
Ist zusätzlich die Option Gleichnamige Felder automatisch übertragen angehakt, kann hier die Wertebelegung für die definierten Formular-Elemente übersteuert werden. - Dateianhänge übertragen?
- Ist diese Option aktiviert, werden alle am aktuellen Vorgang vorhandenen Dateianhänge an den neu erstellten Vorgang kopiert. Zusätzlich kann ein Datei-Filter definiert werden, um nur bestimmte Anhänge zu übertragen.
- Dateianhangs-Filter
- Hier kann ein Datei-Filter für die Upload-Elemente definiert werden, sodass nicht alle ermittelten Upload-Dateien aus allen Upload-Feldern zum Ziel-Formular übertragen werden.
- Postfach
- Hier kann das Postfach definiert werden, in dem der neu erzeugte Vorgang abgelegt wird, wenn das Postfach vom dem am Ziel-Formular standardmäßig definierten Postfach abweichen.
Konfiguration Empfänger-Formular
Das Empfänger-Formular sollte über gleichnamige Formular-Elemente verfügen, damit eine Zuordnung der Elementwerte aus dem übermittelten Vorgang des Sender-Formulars stattfinden kann.
Im Beispiel hat das Empfänger-Formular deshalb den gleichen Aufbau wie das Sender-Formular.
Möchte man im Empfänger-Formular nach dem Erzeugen eines neuen Vorgangs eine Workflow-Verarbeitung starten, so ist dies durch das Hinzufügen des Ereignisses Vorgangs-Fernerzeugung, welches durch das Plugin zur Verfügung gestellt wird, möglich.
Das Ereignis kann mehrfach hinzugefügt werden, muss aber im Feld Ereignis-Ursprung den konfigurierten Wert Plugin-Aktion aufweisen. Es werden dabei alle Verarbeitungsketten im Empfänger-Formular durchlaufen.
Beschreibung Konfigurationselemente des Plugin-Ereignis: Vorgangs-Fernerzeugung
- Ereignis-Ursprung
- Das Ereignis der Vorgangs-Fernerzeugung kann durch verschiedene Plugin-Prozesse ausgelöst werden. Die Festlegung eines Ereignis-Ursprungs bestimmt auf welchen Ereignis-Auslöser reagiert werden soll. 2 Einstellungen sind möglich:
- Plugin-Aktion: Das Auslösen des Ereignisses erfolgte über die WF-Aktion Vorgang erzeugen
- Servlet: Das Auslösen des Ereignisses erfolge über einen URL-Aufruf bzw. HTTP-Request
Beschreibung Rückgabewerte des Plugin-Ereignis: Vorgangs-Fernerzeugung
- [%$TRIGGER.ParentFormRecordId%]
- Vorgangs-ID des (Eltern-)Vorgangs, der das Ereignis ausgelöst hat.
- [%$TRIGGER.ParentProcessId%]
- Prozess-ID des (Eltern-)Vorgangs, der das Ereignis ausgelöst hat.
- [%$TRIGGER.ParentProjectId%]
- ID des Formulars zu dem der (Eltern-)Vorgang gehört, der das Ereignis ausgelöst hat.
- [%$TRIGGER.ParentProjectTitle%]
- Name des Formulars zu dem der (Eltern-)Vorgang gehört, der das Ereignis ausgelöst hat.
- [%$TRIGGER.ParentProjectUuid%]
- UUID des Formulars zu dem der (Eltern-)Vorgang gehört, der das Ereignis ausgelöst hat.
Anwendungsfall 2: Aufruf über HTTP-Request
Die nachfolgend beschriebene Konfiguration ermöglicht es per HTTP-Request Daten an ein Formular zu übermitteln und anschließend eine Workflow-Verarbeitung in diesem Formular-Projekt zu starten.
Konfiguration für HTTP-Request
Ein HTTP-Request an formcycle muss nach dem folgenden Pattern aufgebaut sein:
https://[formcycle-webdomain]/[formcycle-webapp]/plugin/?name=RemoteManageFormRecord&project-id=[ID des Formulars]&api-key=[UUID]&fcpuid=[Formular-ProzessID]
- name (Pflicht):
- Der Name des zu nutzenden Plugin-Servlets. Ist immer RemoteManageFormRecord
- project-id (Pflicht):
- Id des Ziel-Formulars, für das ein neuer Vorgang erzeugt oder ein bestehender Vorgang aktualisiert werden soll.
- api-key (Pflicht):
- Der Parameter-Wert muss innerhalb des angegebenen Ziel-Formulars auf den API-Key eines Fernerzeugungs-Ereignisses verweisen.
- fcpuid (Optional):
- Dieser Parameter muss angegeben werden, wenn ein bestehender Vorgang aktualisiert werden soll.
er Parameter-Wert muss dann eine existente Formular Prozess-ID enthalten.
Konfiguration Basic-Auth Authentifizierung
Der Zugriff auf die "Fernerzeugungs"-Schnittstelle per HTTP-Request kann über eine Basic-Authentifizierung abgesichert werden. Dabei gibt es am Plugin-Bundle die folgende Konfigurationsparameter im Bereich RemoteManageFormRecord:
- remote.servlet.basic.auth.name
- Login-Name für eine Basic-Auth Authentifizierung, die den Aufruf des Remote-Servlet-Requests zusätzlich absichert.
- remote.servlet.basic.auth.pwd
- Passwort für eine Basic-Auth Authentifizierung, die den Aufruf des Remote-Servlet-Requests zusätzlich absichert.
Konfiguration Empfänger-Formular
Im Empfänger-Formular muss der Workflow um ein Vorgangs-Fernerzeugung Ereignis erweitert werden. Damit über einen HTTP-Request das Ereignis im Formular ausgelöst werden kann, muss die Eigenschaft Ereignis-Ursprung auf Servlet gestellt werden.
Innerhalb eines Formulars wird ein Ereignis mittels API-Key referenziert, damit es über einen HTTP-Request angesprochen werden kann. Der am Ereignis hinterlegte API-Key muss als URL-Parameter mit dem Namen api-key beim Aufruf übergeben werden.
Beschreibung Konfigurationselemente des Plugin-Ereignis: Vorgangs-Fernerzeugung
- Ereignis-Ursprung
- Das Ereignis der Vorgangs-Fernerzeugung kann durch verschiedene Plugin-Prozesse ausgelöst werden. Die Festlegung eines Ereignis-Ursprungs bestimmt auf welchen Ereignis-Auslöser reagiert werden soll. 2 Einstellungen sind möglich:
- Plugin-Aktion: Das Auslösen des Ereignisses erfolgte über die WF-Aktion Vorgang erzeugen
- Servlet: Das Auslösen des Ereignisses erfolge über einen URL-Aufruf bzw. HTTP-Request
- API-Key
- Der API-Key ist bei einem Ereignis vom Ursprungstyp Servlet immer anzugeben. Standardmäßig wird dafür eine UUID angegeben. Über das Aktualisierungs-Icon rechts neben dem Eingabefeld, kann eine neue UUID durch das System generiert werden.
- Nur Update eines bestehenden Vorgangs ermöglichen?
- Wenn diese Option aktiviert ist, dann wird kein neuer Vorgang erzeugt, sondern anhand einer ebenfalls zu übergebenden Prozess-ID ein vorhandener Vorgang ermittelt. Wenn kein Vorgang ermittelt werden konnte, wird die Verarbeitung beendet. Die notwendige Prozess-ID muss mittels URL-Parameter fcpuid übergeben werden.
- Aufruf-URL (über Master-Server)
- An dieser Stelle wird die Formular-URL abgebildet, wie Sie von extern aufgerufen werden kann, um den konfigurierte Ereignis auszulösen. Über das Icon rechts neben der URL kann der Wert in die Zwischenablage kopiert werden.
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren