Vor Beginn Formularrenderprozess


Schnittstelle IPluginFormPreRender

Verwendungsmöglichkeiten

Einordnung der IPluginFormPreRender-Schnittstelle in die Prozesskette von Xima® Formcycle
  • Bereitstellen von Werten aus externen Datenquellen bei der Formularauslieferung
  • Vorausfüllung von Formularen
  • Möglichkeit zum Abbrechen der Verarbeitung

Bei Verwendung mehrerer Formular-PreRenderer ist die Reihenfolge nicht fest, in der diese ausgeführt werden. Die Reihenfolge kann daher jedesmal anders sein.

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.

Methodensignaturen

IPluginFormPreRenderRetVal execute(IPluginFormPreRenderParams params) throws FCPluginException

Übergabewerte: Der Typ IPluginFormPreRenderParams stellt folgende Eigenschaften bereit:
  • Zugriff auf den Formular-Requestkontext (IFormRequestContext) und damit auf zentrale Objekte wie:
    • Vorgang
    • Projekt
    • Formularversion
    • Sessionparameter
    • aktueller Nutzerkontext um beispielsweise Datenbankoperationen ausführen zu können
    • Mandant
Rückgabewerte: Der Rückgabewert muss vom Typ IPluginFormPreRenderRetVal sein, eine Referenzimplementierung wird durch die Klasse PluginFormPreRenderRetVal bereitgestellt.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 XFC_METADATA, verfügbar ist.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.Bei fehlerhafter Abarbeitung des Plugins wird eine FCPluginException geworfen.