Platzhalterersetzung (System)


Schnittstelle IPluginSystemReplacer

Verwendungsmöglichkeiten

Einordnung des Platzhalterersetzungs-Plugins für Systemwerte in die Prozesskette von Xima® Formcycle

Eine Implementierung der IPluginSystemReplacer-Schnittstelle ermöglicht es, eigene Ersetzungslogik für den Platzhalter-Ersetzungsprozess von Systemwerten zu integrieren.
Die Eigenimplementierungen werden dabei vor dem internen Platzhaltersetzungsprozess von Xima® Formcycle durchgeführt.
Dadurch ist es beispielsweise möglich Link-Verweis-Ziele, welche durch System-Variablen vorgegeben sind, zu überschreiben und damit auf andere Zieladressen umzuleiten.

Bei der Platzhalterersetzung wird nach folgendem Muster gesucht und durch den entsprechenden Systemwert ersetzt:

[%$<Eigener Platzhaltername oder Name eines Systemwertes>%]

Bei Verwendung mehrerer IPluginSystemReplacer-Implementierungen ist deren Ausführungs-Reihenfolge nicht fest hinterlegt. Dadurch kann es bei mehrfacher Ausführung zu unterschiedlichen Ergebnissen kommen.

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.

Methodensignaturen

Die Plugin-Schnittstelle IPluginSystemReplacer referenziert alle durch die Basis-Schnittstelle IFCPlugin bereitgestellten Methoden
und zusätzlich noch folgende Plugin-spezifische Methodensignaturen:

IPluginSystemReplacerRetVal replace(IPluginSystemReplacerParams params) throws FCPluginException

Übergabewert:
Der Typ IPluginSystemReplacerParams stellt den Zugriff auf folgende Eigenschaften bereit:
  • getPlaceholder() kompletten String des Platzhalters (dies schließt den Markup des Platzhalters mit ein)
  • getPlaceholderContent() Inhalt des Platzhalters (ohne typ-spezifischen Markup)
  • getEntityContext() aktueller Nutzerkontext, um beispielsweise Datenbankoperationen ausführen zu können
  • getWorkflowProcessingContext() Zugriff auf den Workflow-Verarbeitungskontext (IWorkflowProcessingContext) und damit auf zentrale Objekt wie:
    • aktueller Vorgang
    • Formulardaten
    • Sessionparameter
    • temporäres Verzeichnis zum Ablegen von Dateien aus dem aktuellen Kontext
Rückgabewerte: 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.