Platzhalterersetzung (Templates)


Schnittstelle IPluginTemplateReplacer

Verwendungsmöglichkeiten

Einordnung des Platzhalterersetzungsplugins für Templates in die Prozesskette von Xima® Formcycle

Eine Implementierung der Schnittstelle IPluginTemplateReplacer ermöglicht es, eigene Ersetzungslogik für den Ersetzungsprozess von Template-Platzhaltern zu integrieren. Templates können unter dem Menüpunkt Dateien & Templates für die Typen HTML, Text, E-Mail und Link definiert werden.

Die eigenen Implementierungen werden dabei vor dem internen Platzhaltersetzungsprozess von Xima® Formcycle durchgeführt.

Bei der Platzhalterersetzung wird nach folgendem Muster gesucht und durch das entsprechende Template ersetzt:

[%$$<Eigener Platzhalterbezeichner oder Name eines Templates>%]

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

Die IPluginTemplateReplacer-Implementierungen werden grundsätzlich bei jeder Formularverarbeitung im jeweiligen Anwendungsbereich (System- oder Mandant-Plugin), in dem sie installiert wurden, ausgeführt. Es wird deshalb empfohlen, in der Implementierungslogik als erstes zu prüfen, ob der IPluginTemplateReplacer für die jeweilige Formularverarbeitung ausgeführt werden soll. Dies lässt sich beispielsweise mittels Plugin-Properties konfigurierbar gestalten.

Methodensignaturen

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

IPluginTemplateReplacerRetVal replace(IPluginTemplateReplacerParams params) throws FCPluginException

Übergabewert: Der Typ IPluginTemplateReplacerParams 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
  • getMandant() aktueller Mandant, in dessen Anwendungsbereich der TemplateReplacer ausgeführt wird
Rückgabewerte: Der Rückgabewert muss vom Typ IPluginTemplateReplacerRetVal sein. Eine Referenzimplementierung wird durch die Klasse PluginGenericReplacerRetVal zur Verfügung gestellt, welche mit dem Ersetzungswert aus dem IPluginTemplateReplacer initialisiert wird.