Wiki-Quellcode von Statusverarbeitung


Zeige letzte Bearbeiter
1 {{content/}}
2
3 {{warning}}Diese Pluginschnittstelle wird nicht aktiv weiterentwickelt. Verarbeitungsplugins sollten für den neuen Workflow unter Verwendung der Pluginschnitstellen [[IPluginWorkflowNode>>doc:Formcycle.PluginDevelopment.Types.IPluginWorkflowNode.WebHome]] & [[IPluginWorkflowTrigger>>doc:Formcycle.PluginDevelopment.Types.IPluginWorkflowTrigger.WebHome]] implementiert werden.{{/warning}}
4
5 == Schnittstelle: IPluginProcessing ==
6
7 === Verwendungsmöglichkeiten ===
8
9 {{figure image="plugin_processing.png" width="400" clear="h3"}}
10 Einordnung des Statusverarbeitungsplugins innerhalb der Prozesskette von {{formcycle case="dat"/}}
11 {{/figure}}
12
13 * Anbindung eigener Webservice-Schnittstellen, die übermittelte Formularwerte weiterverarbeiten sollen
14 * Anbindung von Fremdsystemen, welche Formularwerte weiterverarbeiten sollen
15
16 === Methodensignaturen ===
17
18 Die Plugin-Schnittstelle //IPluginProcessing// referenziert alle durch die [[Basis-Schnittstelle IFCPlugin>>doc:Formcycle.PluginDevelopment.Types.IFCPlugin]] bereitgestellten Methoden
19 und zusätzlich noch folgende Plugin-spezifische Methodensignaturen:
20
21 {{panel title="{{code language='java'~}~}IPluginProcessingRetVal execute(IPluginProcessingParams params) throws FCPluginException{{/code~}~}" triggerable="true" fullwidth="true"}}
22
23 **Übergabewerte:**
24
25 {{warning}}
26 Bei allen Parametern wird vor der Übergabe an das Plugin die Platzhalterersetzung angewendet. Dabei wird z.B. //[%tf1%]// innerhalb des Wertes eines Parameters durch den Inhalt des Formularfelds mit Namen //tf1// eretzt. Derzeit ist es nicht einstellbar, ob die Platzhalterersetzung durchgeführt werden soll oder nicht.
27 {{/warning}}
28
29 Der Typ //IPluginProcessingParams// stellt folgende Eigenschaften bereit:
30 * Zugriff auf den Workflow-Verarbeitungskontext (//IWorkflowProcessingContext//) und damit auf zentrale Objekt wie:
31 ** aktueller Vorgang
32 ** Formulardaten
33 ** Sessionparameter
34 ** Parameter aus vorgelagerten Aktionsverarbeitungen des gleichen Status
35 ** aktueller Nutzerkontext um beispielsweise Datenbankoperationen ausführen zu können
36 * Zugriff auf das Aktionsobjekt in welcher die Verarbeitung durchgeführt wird und damit Informationen über die Einordnung der aktuellen Aktion innerhalb der Statusverarbeitung
37 * Zugriff auf die am Statusverarbeitungs-Plugin konfigurierten Parameter
38
39 **Rückgabewerte:**
40 Der Rückgabewert muss vom Typ //IPluginProcessingRetVal// sein.
41 Damit ist es möglich, einfache Statuswerte (//true// oder //false//), aber auch mehrere Werte in Form von Strings oder Binärdaten einer Datei zurückzuliefern.
42
43 Die nachfolgende Tabelle benennt die möglichen Rückgabe-Interfaces und deren Referenzimplementierung:
44
45 {{table dataTypeAlpha="0-1"}}
46 |= Interface|= Referenzimplementierung|= Beschreibung
47 |IProcessingResultSuccess|ProcessingResultSuccess|Zurückliefern eines Status (//true// oder //false//)
48 |IProcessingResultIntValue|ProcessingResultIntValue|Rückgabe eines Status und eines Integer-Wertes
49 |IProcessingResultStringValue|ProcessingResultStringValue|Rückgabe eines Status und eines String-Wertes
50 |IProcessingResultMultiValue|ProcessingResultMultiValue|Rückgabe eines Status und einer Map mit String-Werten
51 |IProcessingResultFilePath|ProcessingResultFilePath|Rückgabe eines Status und eines Dateipfades
52 |IProcessingResultFileData|ProcessingResultFileData|Rückgabe eines Status und den Binärdaten einer Datei
53 {{/table}}
54 {{html}}<br>{{/html}}
55 Bei fehlerhafter Abarbeitung des Plugins wird eine //FCPluginException// geworfen. Auf diese kann in der Statusverarbeitung von {{formcycle case="dat"/}}, durch Konfiguration einer Aktion, die im Fehlerfall ausgeführt werden soll, reagiert werden.
56 {{/panel}}