... |
... |
@@ -11,12 +11,14 @@ |
11 |
11 |
|
12 |
12 |
Der Workflowdesigner ermöglicht es, die Verarbeitung von Formularen auf eine intuitive und visuelle Weise per Drag & Drop zu erstellen. Die Verarbeitung von Formularen wird als ein ereignisbasiertes Flussdiagramm dargestellt. Dieses Flussdiagramm wird im Folgenden als der [[**Workflowgraph**>>||anchor="sec_graph"]] bezeichnet. Innerhalb des //Workflowgraphen// werden einzelne Verarbeitungsketten angelegt, welche durch Ereignisse ausgelöst werden. Ereignisse sind etwa der Klick auf einen Absendebutton, das Bestätigen eines Double-Opt-In-Vorgangs oder das Überschreitung eines definierten Zeitpunktes. Abzweigungen innerhalb des Graphen stellen Entscheidungen oder Bedingungen dar. Durch diese Bedingungen können unterschiedliche Aktionen ausgeführt werden, abhängig vom Status eines Vorgangs und/oder den erfassten Formulardaten. |
13 |
13 |
|
|
14 |
+Mit dem Workflowdesigner wird der Workflow einer gewählte Version des Formulars bearbeitet. Wird keine Formularversion explizit gewählt, so wird die aktive Formularversion bearbeitet. |
|
15 |
+ |
14 |
14 |
{{id name="sec_graph"/}} |
15 |
15 |
|
16 |
16 |
== Workflowgraph == |
17 |
17 |
|
18 |
18 |
Der //Workflowgraph// stellt das Herzstück des Workflowdesigners dar, mit welchem die Verarbeitung eines Formulars grafisch repräsentiert wird und bearbeitet werden kann. Der Beginn einer jeden Verarbeitung ist mit dem {{formcycle/}}-Symbol markiert. [[image:workflow_start.png]] |
19 |
|
-Der Workflow ist von oben nach unten zu lesen und besteht aus einzelnen //Verarbeitungsketten//. Jede Verarbeitungskette beginnt mit einem [[Ereignis>>||anchor="sec_elements_events"]], welches diese auslöst. Bspw. kann der Klick auf einen bestimmten Button im Formular eine Verarbeitungskette starten, in welcher eine [[E-Mail>>doc:Formcycle.Designer.Workflow.Actions.EMail.WebHome]] an den Antragsteller gesendet wird. Wie man an diesem Beispiel sieht, werden innerhalb von Verarbeitungsketten [[Aktionen>>||anchor="sec_elements_actions"]] ausgeführt. Diese Verarbeitungsketten können komplexer werden und sich bspw. abhänging von den Formulareingaben aufsplitten. Diese Abzweigungen werden über [[Bedingungen>>doc:Formcycle.Designer.Workflow.FlowControl.Condition.WebHome]] realisiert. So wird bspw. nur eine E-Mail versendet, wenn der Antragsteller auch eine E-Mail angegeben hat. Wenn dies nicht der Fall ist, wird bspw. ein PDF des Formulars erstellt und dieses dem Antragsteller zurückgegeben. Wie man sieht führen Bedingungen dazu, dass sich eine Verarbeitungskette in zwei //Teilverarbeitungsketten// aufteilt. Jede Verarbeitungskette muss in einem [[Endpunkt>>||anchor="sec_elements_endpoints"]] enden. In der Regel ist ein solcher Endpunkt ein [[Status>>doc:Formcycle.Designer.Workflow.States.WebHome]] in dem sich der Vorgang nach Aursführung der Verarbeitung befinden soll. Im Fall von Bedingungen werden die dadurch entstandenen Teilverarbeitungsketten nach Ausführung der geünschten Aktionen wieder zusammen geführt (siehe [[Abbildung>>||anchor="fig_workflow_example_submit"]]). Jede Teilverarbeitungskette kann allerdings auch einen eigenen Endpunkt definieren. Das hier vorgestellte Beispiel ist in der [[Abbildung>>||anchor="fig_workflow_example_submit"]] als Verarbeitungskette im Arbeitsbereich des Workflowdesigner dargestellt. |
|
21 |
+Der Workflow ist von oben nach unten zu lesen und besteht aus einzelnen //Verarbeitungsketten//. Jede Verarbeitungskette beginnt mit einem [[Ereignis>>||anchor="sec_elements_events"]], welches diese auslöst. Bspw. kann der Klick auf einen bestimmten Button im Formular eine Verarbeitungskette starten, in welcher eine [[E-Mail>>doc:Formcycle.Designer.Workflow.Actions.EMail.WebHome]] an den Antragsteller gesendet wird. Wie man an diesem Beispiel sieht, werden innerhalb von Verarbeitungsketten [[Aktionen>>||anchor="sec_elements_actions"]] ausgeführt. Diese Verarbeitungsketten können komplexer werden und sich bspw. abhänging von den Formulareingaben aufsplitten. Diese Abzweigungen werden über [[Bedingungen>>doc:Formcycle.Designer.Workflow.FlowControl.Condition.WebHome]] realisiert. So wird bspw. nur eine E-Mail versendet, wenn der Antragsteller auch eine E-Mail angegeben hat. Wenn dies nicht der Fall ist, wird bspw. ein PDF des Formulars erstellt und dieses dem Antragsteller zurückgegeben. Wie man sieht führen Bedingungen dazu, dass sich eine Verarbeitungskette in zwei //Teilverarbeitungsketten// aufteilt. Jede Verarbeitungskette muss in einem [[Endpunkt>>||anchor="sec_elements_endpoints"]] enden. In der Regel ist ein solcher Endpunkt ein [[Status>>doc:Formcycle.Designer.Workflow.States.WebHome]] in dem sich der Vorgang nach Aursführung der Verarbeitung befinden soll. Im Fall von Bedingungen werden die dadurch entstandenen Teilverarbeitungsketten nach Ausführung der geünschten Aktionen wieder zusammen geführt (siehe [[Abbildung>>||anchor="fig_workflow_example_submit"]]). Jede Teilverarbeitungskette kann allerdings auch einen eigenen Endpunkt definieren. Das hier vorgestellte Beispiel ist in der [[Abbildung>>||anchor="fig_workflow_example_submit"]] als Verarbeitungskette im Arbeitsbereich des Workflowdesigner dargestellt. Treffen mehrere Ereignisse zu, werden die entsprechenden Verarbeitungsketten der Reihe nach von links nach rechts ausgeführt. |
20 |
20 |
|
21 |
21 |
{{id name="sec_graph_default"/}} |
22 |
22 |
|
... |
... |
@@ -37,6 +37,8 @@ |
37 |
37 |
|
38 |
38 |
Wie in der [[Abbildung>>||anchor="fig_workflow_overview"]] zu sehen, besteht der Workflowdesigner aus den folgenden Komponente: [[Arbeitsbereich>>||anchor="sec_component_main"]], [[Elementauswahl>>||anchor="sec_component_element_selection"]], [[Elementeigenschaften>>||anchor="sec_component_element_properties"]], [[Werkzeug->>||anchor="sec_component_tool_bar"]] & [[Statusleiste>>||anchor="sec_component_status_bar"]], welche im Folgenden kurz vorgestellt werden sollen. Allgemeine Informationen zur Werkzeugleiste sind [[hier>>doc:Formcycle.Designer.WebHome]] zu finden. |
39 |
39 |
|
|
42 |
+Wird eine Workflowkonfiguration geändert, aber nicht gespeichert und später wird der Workflowdesigner für diesen Workflow neu geladen, erscheint ein Dialog, mit dem der alte Stand wiederherstellgt werden kann. Die ungespeicherte Workflowkonfiguration wird in den [[Arbeitsbereich>>||anchor="sec_component_main"]] geladen. Diese ist allerdings noch nicht gespeichert. Erst wenn der Nutzer auf //Speichern// klickt wird diese Workflowkonfiguration gespeichert. |
|
43 |
+ |
40 |
40 |
{{id name="sec_component_main"/}} |
41 |
41 |
|
42 |
42 |
=== Arbeitsbereich === |
... |
... |
@@ -46,7 +46,7 @@ |
46 |
46 |
* Ein Ereignis wird aus der [[Elementauswahl>>||anchor="sec_component_element_selection"]] am linken Rand per Drag & Drop in den Arbeitsbereich auf das Plus-Sysmbol {{ficon name="plus-circle-outline"/}} am Anfang des Workflowgraphen gezogen. |
47 |
47 |
* Es wird auf Plus-Symbol {{ficon name="plus-circle-outline"/}} am Anfang des Workflowgraphen geklickt. Daraufhin öffnet sich ein Kontextmenü über welches das Ereignis ausgewählt werden kann. |
48 |
48 |
|
49 |
|
-In beiden Fällen entsteht eine neue Verarbeitungskette mit dem gewählten Ereignis. |
|
53 |
+In beiden Fällen entsteht eine neue Verarbeitungskette mit dem gewählten Ereignis. Verarbeitungsketten können mit einem Klick auf deren Namen umbenannt werden. Unterhalb des Namens kann diesen auch eine Beschreibung hinzugefügt werden. |
50 |
50 |
|
51 |
51 |
Verarbeitungsketten können überall da neue [[Workflowelemente>>||anchor="sec_compontents"]] hinzugefügt werden, wo sich ein sog. Droppunkt {{ficon name="circle-outline"/}} befindet. Dies ist auf zwei verschiedene Arten möglich: |
52 |
52 |
|
... |
... |
@@ -92,23 +92,45 @@ |
92 |
92 |
|
93 |
93 |
=== Elementeingenschaften === |
94 |
94 |
|
|
99 |
+Abhängig vom [[Workflowelement>>||anchor="sec_elements"]], welches gerade im [[Arbeitsbereich>>||anchor="sec_component_main"]] ausgewählt ist, ändert sich der Inhalt der //Elementeigenschaften//, welche rechts neben dem Arbeitsbereich dargestellt werden. In den Elementeigenschaften sind sämtliche Parameter eines Elements konfigurierbar. So kann hier bspw. in der Aktion [[E-Mail>>doc:Formcycle.Designer.Workflow.Actions.EMail.WebHome]] der Absender, Empfänger, Betreff, Inhalt etc. definiert werden. Wenn die Elementeigenschaften nicht nötig sind, können diese auch über das Pfeil-Symbol am linken Rand der Elementeigenschaften eingeklappt werden. |
|
100 |
+ |
95 |
95 |
{{id name="sec_component_tool_bar"/}} |
96 |
96 |
|
97 |
97 |
=== Werkzeugleiste === |
98 |
98 |
|
99 |
|
-* Speichern |
|
105 |
+; Speichern |
|
106 |
+: Speichert den Workflowgraphen und somit die Verarbeituungskonfiguration des Formulars. Sollte es Fehler in der Workflowkonfiguration geben (siehe Validieren), kann der Workflow trotzdem gespeichert werden. Das Formular wird in diesem Fall jedoch in den //Wartungsmodus// geschaltet und ist nicht mehr //online// verfügbar, da eine korrekte Verarbeitung von Vorgängen nicht mehr gewährleistet werden kann. Erst wenn alle Fehler in der Workflowkonfiguration behoben wurden, wird das Formular wieder online verfügbar sein. |
|
107 |
+ |
100 |
100 |
{{id name="sec_component_tool_bar_validate"/}} |
101 |
|
-* Validieren |
102 |
|
-* Ansichtsoptionen |
103 |
|
-* Mehr... |
104 |
|
-* Öffnen/Vorschau |
105 |
105 |
|
|
110 |
+; Validieren |
|
111 |
+: Überprüft die aktuelle Workflowkonfiguration auf Fehler. Ein Fehler in der Workflowkonfiguration ist bspw. ein nicht ausgefülltes Empfängefeld in der Aktion [[E-Mail>>doc:Formcycle.Designer.Workflow.Actions.EMail.WebHome]] oder die Abwesenheit eines Endpunktes in einer Verarbeitungskette. |
|
112 |
+ |
|
113 |
+; Ansichtsoptionen |
|
114 |
+: Es stehen verschiedene Ansichtsoptionen zur Verfügung. Der Workflowgraph im [[Arbeitsbereich>>||anchor="sec_component_main"]] kann //vergrößert// oder //verkleinert// sowie wieder //zentriert// werden. Unter dem Menüpunkt //Ansicht// gibt es folgende Ansichtsioptionen: |
|
115 |
+ |
|
116 |
+* //Hilfslinien anzeigen//: Hilfslinien trennen die einzelnen Verarbeitungsketten visuell. |
|
117 |
+* //Benutzergruppen anzeigen//: Wenn für bestimmte Ereignisse Benutzergruppenbeschränkungen bestehen, werden diese an der entsprechenden Verarbeitungskette angezeigt. |
|
118 |
+* //Status anzeigen//: Wenn für bestimmte Ereignisse Statusbeschränkungen bestehen, werden diese an der entsprechenden Verarbeitungskette angezeigt. |
|
119 |
+* //Verarbeitungsketten ein-/ausblenden//: einzelne oder alle Verarbeitungsketten können ein- bzw. ausgeblendet werden. |
|
120 |
+ |
|
121 |
+; Rückgängig/Wiederholen |
|
122 |
+: Veränderungen an der Struktur des Workflows können rückgängig gemacht oder wiederholt werden. Änderungen an den [[Elementeigenschaften>>||anchor="sec_component_element_properties"]] werden nicht berücksichtigt. |
|
123 |
+ |
|
124 |
+; Mehr... |
|
125 |
+: Unter dem Menüpunkt //Mehr...// sind weitere Inhalte zu finden, die [[an dieser Stelle>>doc:Formcycle.Designer.WebHome||anchor="sec_tools_more"]] näher beschrieben werden. |
|
126 |
+ |
|
127 |
+; Öffnen |
|
128 |
+: Öffnet das Formular im Live-Modus. Stehen Frontendserver zur Verfügung, kann das Formular auch auf einem der Frontendserver geöffnet werden. |
|
129 |
+ |
|
130 |
+; Vorschau |
|
131 |
+: Öffnet das Formular im Vorschaumodus. Hier kann das Formular getestet werden ohne dass Vorgänge erstellt werden. |
|
132 |
+ |
106 |
106 |
{{id name="sec_component_status_bar"/}} |
107 |
107 |
|
108 |
108 |
=== Statusleiste === |
109 |
109 |
|
110 |
|
-* Navigation |
111 |
|
-* formularinformationen |
|
137 |
+Die Statusleiste befindet sich unterhalb des [[Arbeitsbereichs>>||anchor="sec_component_main"]]. Auf der linken Seite ist der Navigationsbereich, wodurch erkennbar ist, wo sich das selektierte Formularelement im workflowgraphen befindet. Auf der rechten Seite sind Detailinformationen zum Formular und aktuellen Version sichtbar. |
112 |
112 |
|
113 |
113 |
{{id name="sec_elements"/}} |
114 |
114 |
|
... |
... |
@@ -118,12 +118,16 @@ |
118 |
118 |
|
119 |
119 |
=== Buttons & Ereignisse === |
120 |
120 |
|
121 |
|
-Eregnisse bilden den Beginn von Arbeitsketten und können abhängig vom Typ auf unterschiedliche Art& Weise ausgelöst werden. Eine besondere, weil häufig verwendete, Form von Ereignissen sind [[Buttonereignisse>>||anchor="sec_elements_events_buttons"]]. Diese Ereignisse sind daher |
|
147 |
+Eregnisse bilden den Beginn von Arbeitsketten und können abhängig vom Typ auf unterschiedliche Art& Weise ausgelöst werden. Eine besondere, weil häufig verwendete, Form von Ereignissen sind [[Buttonereignisse>>||anchor="sec_elements_events_buttons"]]. Diese Ereignisse haben daher ihre eigen Kategorie in der [[Elementauswahl>>||anchor="sec_component_element_selection"]]. |
122 |
122 |
|
123 |
123 |
{{id name="sec_elements_events_buttons"/}} |
|
150 |
+ |
124 |
124 |
==== Buttonergnisse ==== |
125 |
125 |
|
|
153 |
+Für jeden [[Button>>doc:Formcycle.Designer.Form.FormElements.Button.WebHome]] im Formular, der zum //Absenden// oder //Speichern// verwendet wird, gibt es ein entsprechendes Ereignis in der [[Elementauswahl>>||anchor="sec_component_element_selection"]]. Diese Buttonereignisse können dann ganz einfach in den Workflowgraphen gezogen werden. Somit kann für jeden Button eine eigene Verarbeitungskette definiert werden. |
|
154 |
+ |
126 |
126 |
{{id name="sec_elements_events_other"/}} |
|
156 |
+ |
127 |
127 |
==== weitere Ereignisse ==== |
128 |
128 |
|
129 |
129 |
{{id name="sec_elements_actions"/}} |
... |
... |
@@ -130,28 +130,33 @@ |
130 |
130 |
|
131 |
131 |
=== Aktionen === |
132 |
132 |
|
|
163 |
+Bei einigen Aktionen können Dateien ausgewählt werden, die von anderen Aktionen erzeugt werden. Dabei können alle Aktionen ausgewählt werden, die potentiell vor der Aktion ausgeführt werden können. |
|
164 |
+ |
|
165 |
+* Die gleiche Logik greift auch im Platzhalterdialog bei den zu Verfügung stehenden Aktionsplatzhaltern. |
|
166 |
+ |
|
167 |
+Referenziert eine Aktion auf Dateien einer vorigen Aktion, geht diese Referenz verloren, wenn die Aktion in eine andere Verarbeitungskette geschoben wird. |
|
168 |
+ |
133 |
133 |
{{id name="sec_elements_flow_control"/}} |
134 |
134 |
|
135 |
135 |
=== Steuerung === |
136 |
136 |
|
|
173 |
+Ja/Nein-Label von Bedingungen können umbenannt werden. |
|
174 |
+ |
137 |
137 |
{{id name="sec_elements_endpoints"/}} |
138 |
138 |
|
139 |
139 |
=== Endpunkte === |
140 |
140 |
|
141 |
141 |
==== Status-Endpunkte ==== |
|
180 |
+ |
142 |
142 |
==== Aktions-Endpunkte ==== |
143 |
143 |
|
144 |
144 |
{{id name="sec_differences_old_workflow"/}} |
145 |
|
-== Unterschiede zur alten Status- & Aktionsverarbeitung == |
146 |
146 |
|
147 |
|
-Sowohl im neuen Workflow als auch in der alten [[Status- & Aktionsverarbeitung>>doc:Formcycle.Designer.Workflow.LegacyWorkflow.WebHome]] gibt es Status. Vorgänge können in beiden Workflows einen Status annehmen. In der alten Status- & Aktionsverarbeitung werden Verarbeitungsketten in den einzelnen Status definiert. Zustandsabhängige Entscheidungen können über Bedingungen an den Aktionen realisiert werden, insbesondere unter Verwendung der Aktion //Statuswechsel//. Verarbeitungsketten werden also über Status ausgelöst. Im neuen Workflow sind Status lediglich Endpunkte. Status beschreiben den Zustand eines Vorgangs und definieren, wer auf disesen Zugriff hat, mehr nicht. Verarbeitungsketten werden über Ereignisse und nicht mehr Status ausgelöst. |
148 |
148 |
|
149 |
|
-== Grobe Beschreibung == |
|
186 |
+== Unterschiede zur alten Status- & Aktionsverarbeitung == |
150 |
150 |
|
151 |
|
-* Grundkonzepte |
152 |
|
-* alter und neuer Workflow ansprechen |
|
188 |
+Sowohl im neuen Workflow als auch in der alten [[Status- & Aktionsverarbeitung>>doc:Formcycle.Designer.Workflow.LegacyWorkflow.WebHome]] gibt es Status. Vorgänge können in beiden Workflows einen Status annehmen. In der alten Status- & Aktionsverarbeitung werden Verarbeitungsketten in den einzelnen Status definiert. Zustandsabhängige Entscheidungen können über Bedingungen an den Aktionen realisiert werden, insbesondere unter Verwendung der Aktion //Statuswechsel//. Verarbeitungsketten werden also über Status ausgelöst. Im neuen Workflow sind Status lediglich Endpunkte. Status beschreiben den Zustand eines Vorgangs und definieren, wer auf disesen Zugriff hat, mehr nicht. Verarbeitungsketten werden über Ereignisse und nicht mehr Status ausgelöst. Zudem sind die Status des neuen Workflows mit der Formularversion versioniert, d.h. jede Formularversion kann unterschiedliche Status besitzen. Der Status //Eingegangen// ist der Standardstatus und kann weder gelöscht noch umbenant werden. |
153 |
153 |
|
154 |
|
-Verlinkung auf alten Workflow (Der alte Workflow wird in einer Unterkategorie positioniert und enthält dort alle bisherigen Unterseiten unverändert.) |
155 |
155 |
|
156 |
156 |
== Beschreibung des neuen Workflows == |
157 |
157 |
|
... |
... |
@@ -160,24 +160,9 @@ |
160 |
160 |
* Aktionen grob Möglichkeiten beschreiben und auf Aktionen verlinken |
161 |
161 |
* Bedingungen und Fehlerelemente grob beschreiben und auf Aktionen verlinken |
162 |
162 |
* Endpunkte grob beschreiben und auf Aktionen verlinken |
163 |
|
-* Funktionsweise der Status kurz erklären, evtl. auf Unterseiten verlinken. Erwähnen, dass Status jetzt auch versioniert sind. |
164 |
|
-* Kopieren, Deaktivieren, Löschen-Icon an Ereignissen und Aktionen |
165 |
|
-* Info-Icon (welches an jedem Ereignis / Aktion sich befindet) beschreiben: Enthält Beschreibung, Zusammenfassung der Konfiguration, Rückgabewerte mit Platzhaltern, mögliche auftretende Fehler (=> auf Platzhalter [$%LAST_ERROR%] [%$Aktion.ERROR_CODE%] etc. hinweisen und verlinken) sowie durch Daten, welche bei jedem Fehler zur Verfügung gestellt werden. |
166 |
166 |
|
167 |
|
-Direkt darunter kommen alle Elemente des Workflows |
168 |
168 |
|
169 |
|
-Hinweise von Andre: |
170 |
170 |
|
171 |
|
-* Jeder Verarbeitungskette muss auf einen Endpunkt enden. Wird z.B. eine Bedingung am Ende einer Verarbeitungskette verwendet, muss sowohl im Ja-Fall als auch Nein-Fall sich ein Endpunkt befinden. |
172 |
|
-* Treffen mehrere Ereignisse zu, werden die entsprechenden Verarbeitungsketten der Reihe nach von links nach rechts ausgeführt. |
173 |
|
-* Eine Ausführung des Workflows ist fehlerhaft, wenn eine Aktion in einem Fehler endete und dieser Fehler nicht behandelt wurde (Abschlusseite: "Oops". Andernfalls ist die Ausführung des Workflows erfolgreich. |
174 |
|
-* Es gibt eine Validierung des gesamten Workflows. Formular wird offline geschaltet, wenn invalider Workflow gespeichert wird. |
175 |
|
-* Wird ein Workflow geändert, nicht gespeichert und neu geladen, erscheint ein Dialog, mit dem der alte Stand wiederherstellgt werden kann. Dabei wird nicht gespeichert, sondern erst, wenn der Nutzer auf Speichern klickt. |
176 |
|
-* Bei einigen Aktionen können Dateien ausgewählt werden, die von anderen Aktionen erzeugt werden. Dabei können alle Aktionen ausgewählt werden, die potentiell vor der Aktion ausgeführt werden können. Z.B. wenn "Aktion A -> Bedingung(ja=Aktion B,nein=Aktion C), Aktion D" konfiguriert ist, dann kann in D Aktion A ausgewählt werden, diese kommt immer von A. Aber auch sowohl B als auch C können ausgewählt werden, weil je nach Ausgang der Bedingung B oder C vor D kommen können. In Aktion C kann aber nicht B ausgewählt werden, weil B nie vor C kommen kann. |
177 |
|
-** Die gleiche Logik greift auch im Platzhalterdialog bei den zu Verfügung stehenden Aktionsplatzhaltern. |
178 |
|
-* Referenziert eine Aktion auf Dateien einer vorigen Aktion, geht diese Referenz verloren, wenn die Aktion in eine andere Verarbeitungskette geschoben wird. |
179 |
|
-* Umbenannt werden kann: Name der Verarbeitungskette und Ja/Nein-Label von Bedingungen durch Klick auf den Namen. Zudem kann durch Klick die Beschreibung geändert werden. |
180 |
|
-* Bei der Redo/Undo-Funktionalität werden alle Änderungen an der Struktur des Workflows berücksichtigt. Nicht berücksichtigt werden Änderungen rechts im Properties-Panel. |
181 |
181 |
|
182 |
182 |
TODO auf Unterseiten: |
183 |
183 |
|