Zeige letzte Bearbeiter
1 {{content/}}
2
3 == IPluginFormReplacer ==
4
5 === Verwendungsmöglichkeiten ===
6
7 {{figure image="plugin_platzhalterersetzung_formparam.png" width="400" clear="h3"}}
8 Einordnung des Platzhalterersetzungs-Plugins für Formularwerte in die Prozesskette von {{formcycle case="dat"/}}
9 {{/figure}}
10
11 Eine Implementierung der Schnittstelle //IPluginFormReplacer// ermöglicht es, eigene Ersetzungslogik für den Platzhalter-Ersetzungsprozess von Formularelementen zu integrieren.
12 Die Eigenimplementierungen werden dabei **vor** dem internen Platzhaltersetzungsprozess von {{formcycle case="dat"/}} durchgeführt.
13 Dadurch ist es beispielsweise auch möglich, systeminterne Formularplatzhalter durch eine Eigenimplementierung zu ersetzen.
14
15 Bei der Ausführung der Platzhalter-Ersetzung wird nach folgendem Muster gesucht und der Platzhalter durch den entsprechenden Formularwert ersetzt:
16
17 {{code language="none"}}
18 [%<Eigener Platzhalterbezeichner oder Name eines Formularfeldes>%]
19 {{/code}}
20
21 {{warning}}
22 Bei Verwendung mehrerer //IPuginFormReplacer//-Implementierungen ist deren Ausführungs-Reihenfolge nicht fest hinterlegt. Dadurch kann es bei mehrfacher Ausführung zu unterschiedlichen Ergebnissen kommen.
23 {{/warning}}
24
25 {{warning}}
26 Die //IPluginFormReplacer//-Implementierungen werden grundsätzlich bei jedem Formularaufruf im jeweiligen Anwendungsbereich (System- oder Mandant-Plugin) ausgeführt, in dem sie installiert wurden. Es wird deshalb empfohlen, in der Implementierungslogik als erstes zu prüfen, ob der //IPluginFormReplacer// für die jeweilige Formularverarbeitung ausgeführt werden soll. Dies lässt sich beispielsweise mittels Einsatz von Plugin-Properties konfigurierbar gestalten.
27 {{/warning}}
28
29 === Methodensignaturen ===
30
31 Die Plugin-Schnittstelle //IPuginFormReplacer// referenziert alle durch die [[Basis-Schnittstelle IFCPlugin>>doc:IFCPlugin]] bereitgestellten Methoden
32 und zusätzlich noch folgende Plugin-spezifische Methodensignaturen:
33
34 {{panel title="{{code language='java'~}~}IPluginFormReplacerRetVal replace(IPluginFormReplacerParams params) throws FCPluginException{{/code~}~}" triggerable="true" fullwidth="true"}}
35
36 **Übergabewert:**
37 Der Typ //IPluginFormReplacerParams// stellt den Zugriff auf folgende Eigenschaften bereit:
38 * **getPlaceholder()** kompletten String des Platzhalters (dies schließt den Markup des Platzhalters mit ein)
39 * **getPlaceholderContent()** Inhalt des Platzhalters (ohne typ-spezifischen Markup)
40 * **getFormversion()** die aktuelle Formular-Version
41 * **getFormDataAdapter()** den Formular-Daten-Adapter, als Schnittstelle zu den konkreten Formulardaten sowie deren Beschreibung
42 * **isEncodeForHTML()** Flag welches bestimmt, ob die Rückgabe HTML-konform codiert werden soll
43 * **getEntityContext()** aktueller Nutzerkontext, um beispielsweise Datenbankoperationen ausführen zu können
44
45 **Rückgabewerte:**
46 Der Rückgabewert muss vom Typ //IPluginFormReplacerRetVal// sein. Eine Referenzimplementierung wird durch die Klasse //PluginGenericReplacerRetVal// zur Verfügung gestellt, welche mit dem erzeugten Ersetzungswert zu initialisieren ist.
47 {{/panel}}