Wiki-Quellcode von Vor Beginn Formularrenderprozess
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | {{content/}} | ||
2 | |||
3 | == Schnittstelle IPluginFormPreRender == | ||
4 | |||
5 | === Verwendungsmöglichkeiten === | ||
6 | |||
7 | {{figure image="plugin_prerenderer.png" width="400" clear="h3"}} | ||
8 | Einordnung der //IPluginFormPreRender//-Schnittstelle in die Prozesskette von {{formcycle case="dat"/}} | ||
9 | {{/figure}} | ||
10 | |||
11 | * Bereitstellen von Werten aus externen Datenquellen bei der Formularauslieferung | ||
12 | * Vorausfüllung von Formularen | ||
13 | * Möglichkeit zum Abbrechen der Verarbeitung | ||
14 | |||
15 | {{warning}} | ||
16 | Bei Verwendung mehrerer //Formular-PreRenderer// ist die Reihenfolge nicht fest, in der diese ausgeführt werden. Die Reihenfolge kann daher jedesmal anders sein. | ||
17 | {{/warning}} | ||
18 | |||
19 | {{warning}} | ||
20 | Die //Formular-PreRenderer// werden grundsätzlich vor jedem Formularaufruf im jeweiligen Anwendungsbereich (System- oder Mandant-Scope) ausgeführt, in dem sie installiert wurden. Es wird deshalb empfohlen, in der //IPluginFormPreRender//-Logik als erstes zu prüfen, ob der //PreRenderer// für das jeweilige Formular ausgeführt werden soll. Dies lässt sich beispielsweise über //Plugin-Properties// konfigurierbar gestalten. | ||
21 | {{/warning}} | ||
22 | |||
23 | === Methodensignaturen === | ||
24 | |||
25 | {{panel title="{{code language='java'~}~}IPluginFormPreRenderRetVal execute(IPluginFormPreRenderParams params) throws FCPluginException{{/code~}~}" triggerable="true" fullwidth="true"}} | ||
26 | |||
27 | **Übergabewerte:** | ||
28 | Der Typ //IPluginFormPreRenderParams// stellt folgende Eigenschaften bereit: | ||
29 | * Zugriff auf den Formular-Requestkontext (//IFormRequestContext//) und damit auf zentrale Objekte wie: | ||
30 | ** Vorgang | ||
31 | ** Projekt | ||
32 | ** Formularversion | ||
33 | ** Sessionparameter | ||
34 | ** (% style="line-height:1.4em" %)aktueller Nutzerkontext um beispielsweise Datenbankoperationen ausführen zu können | ||
35 | ** Mandant | ||
36 | |||
37 | **Rückgabewerte:** | ||
38 | Der Rückgabewert muss vom Typ //IPluginFormPreRenderRetVal// sein, eine Referenzimplementierung wird durch die Klasse //PluginFormPreRenderRetVal// bereitgestellt. | ||
39 | |||
40 | Das Objekt ermöglicht die Übergabe eines serialisierbaren JSON-Objektes, welches nach Auslieferung des Formulars an den Browser, unter dem Plugin-Namen, in der Formular-Variable {{code language="javascript"}}XFC_METADATA{{/code}}, verfügbar ist. | ||
41 | |||
42 | Weiterhin kann durch das Setzen der Werte-Map eine Vorausfüllung von Feldern beim Rendern des Formulars bewirkt werden. Diese Werte überschreiben gegebenenfalls schon vorhandene Werte und ersetzen ebenso Werte aus URL-Parametern. | ||
43 | |||
44 | Bei fehlerhafter Abarbeitung des Plugins wird eine //FCPluginException// geworfen. | ||
45 | {{/panel}} |