Zeige letzte Bearbeiter
1 {{content/}}
2
3 == Schnittstelle IPluginSystemReplacer ==
4
5 === Verwendungsmöglichkeiten ===
6
7 {{figure image="plugin_platzhalterersetzung_system.png" width="400" clear="h3"}}
8 Einordnung des Platzhalterersetzungs-Plugins für Systemwerte in die Prozesskette von {{formcycle case="dat"/}}
9 {{/figure}}
10
11 Eine Implementierung der //IPluginSystemReplacer//-Schnittstelle ermöglicht es, eigene Ersetzungslogik für den Platzhalter-Ersetzungsprozess von Systemwerten zu integrieren.
12 Die Eigenimplementierungen werden dabei **vor** dem internen Platzhaltersetzungsprozess von {{formcycle case="dat"/}} durchgeführt.
13 Dadurch ist es beispielsweise möglich Link-Verweis-Ziele, welche durch System-Variablen vorgegeben sind, zu überschreiben und damit auf andere Zieladressen umzuleiten.
14
15 Bei der [[Platzhalterersetzung>>doc:Formcycle.UserInterface.Variables]] wird nach folgendem Muster gesucht und durch den entsprechenden Systemwert ersetzt:
16
17 {{code language="none"}}
18 [%$<Eigener Platzhaltername oder Name eines Systemwertes>%]
19 {{/code}}
20
21 {{warning}}
22 Bei Verwendung mehrerer //IPluginSystemReplacer//-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 //IPluginSystemReplacer//-Implementierungen werden grundsätzlich bei jeder Formularverarbeitung im jeweiligen Anwendungsbereich (als 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 //IPluginSystemReplacer// 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 //IPluginSystemReplacer// 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'~}~}IPluginSystemReplacerRetVal replace(IPluginSystemReplacerParams params) throws FCPluginException{{/code~}~}" triggerable="true" fullwidth="true"}}
35 (((
36 **Übergabewert:**
37 )))
38 Der Typ //IPluginSystemReplacerParams// stellt den Zugriff auf folgende Eigenschaften bereit:
39 * **getPlaceholder()** kompletten String des Platzhalters (dies schließt den Markup des Platzhalters mit ein)
40 * **getPlaceholderContent()** Inhalt des Platzhalters (ohne typ-spezifischen Markup)
41 * **getEntityContext()** aktueller Nutzerkontext, um beispielsweise Datenbankoperationen ausführen zu können
42 * **getWorkflowProcessingContext()** Zugriff auf den Workflow-Verarbeitungskontext (IWorkflowProcessingContext) und damit auf zentrale Objekt wie:
43 ** aktueller Vorgang
44 ** Formulardaten
45 ** Sessionparameter
46 ** temporäres Verzeichnis zum Ablegen von Dateien aus dem aktuellen Kontext
47
48 **Rückgabewerte:**
49 Der Rückgabewert muss vom Typ //IPluginSystemReplacerRetVal// sein. Eine Referenzimplementierung wird durch die Klasse //PluginGenericReplacerRetVal// zur Verfügung gestellt, welche mit dem erzeugten Ersetzungswert zu initialisieren ist.
50 {{/panel}}