Dokumentdetails für Renderer

Einführung

In AEM Forms Workspace werden mehrere Formulartypen nahtlos unterstützt. Dazu gehören:

  • PDF-Formulare (XDP/Acroform/Flache PDF-Dateien)
  • Neue HTML-Formulare
  • Bilder
  • Drittanbieteranwendungen (zum Beispiel Correspondence Management)

In diesem Dokument wird die Verwendung dieser Renderer aus der Perspektive der semantischen Anpassung bzw. der Komponentenwiederverwendung erläutert, sodass Kundenanforderungen erfüllt werden, ohne eine Darstellung zu beeinträchtigen. AEM Forms Workspace ermöglicht zwar alle Änderungen der Benutzeroberfläche/Semantik, es wird jedoch empfohlen, die Renderlogik verschiedener Formulartypen nicht zu ändern. Andernfalls können die Ergebnisse unvorhersehbar sein. Dieses Dokument dient zur Anleitung und zum Verständnis für das Rendering desselben Formulars mit den gleichen Workspace-Komponenten auf verschiedenen Portalen, nicht zum Ändern der Renderlogik selbst.

PDF-Formulare

PDF forms werden durch PdfTaskForm View gerendert.

Wenn ein XDP-Formular als PDF-Datei gerendert wird, wird ein FormBridge JavaScript™ vom FormsAugmenter-Dienst hinzugefügt. Dieses JavaScript™ (innerhalb des PDF-Formulars) hilft bei Aktionen wie dem Senden und Speichern von Formularen oder dem Offlineschalten des Formulars.

In AEM Forms Workspace kommuniziert die Ansicht PDFTaskForm mit dem JavaScript FormBridgeüber einen ZwischenHTML-Code, der unter /lc/libs/ws/libs/ws/pdf.html vorhanden ist. Der Fluss verläuft wie folgt:

PDFTaskForm-Ansicht – pdf.html

Kommuniziert mithilfe von window.postMessage / window.attachEvent('message')

Diese Methode ist das Standardverfahren zur Kommunikation zwischen einem übergeordneten Frame und einem iframe. Die vorhandenen Ereignis-Listener von zuvor geöffneten PDF-Formularen werden entfernt, bevor ein neuer hinzugefügt wird. Bei dieser Löschung wird auch der Wechsel zwischen Formular-Registerkarte und Verlaufs-Registerkarte in der Aufgabendetailansicht berücksichtigt.

pdf.html – FormBridge-Javascript innerhalb der gerenderten PDF-Datei

Kommuniziert mithilfe von pdfObject.postMessage / pdfObject.messageHandler

Diese Methode ist das Standardverfahren zur Kommunikation aus HTML mit einem PDF-Javascript. Die PdfTaskForm-Ansicht behandelt auch flaches PDF und rendert es einfach.

HINWEIS

Es wird nicht empfohlen, die Datei pdf.html oder den Inhalt der PdfTaskForm-Ansicht zu ändern.

Neue HTML-Formulare

Neue HTML-Formulare werden durch die NewHTMLTaskForm-Ansicht gerendert.

Wenn ein XDP-Formular mit dem in CRX bereitgestellten Mobile Forms-Paket als HTML gerendert wird, wird dem Formular auch zusätzliches FormBridge-Javascript hinzugefügt, das verschiedene Methoden für das Speichern und Senden von Formulardaten verfügbar macht.

Dieses Javascript unterscheidet sich von dem, auf das oben unter „PDF-Formulare“ verwiesen wird, erfüllt jedoch einen ähnlichen Zweck.

HINWEIS

Es wird nicht empfohlen, den Inhalt der Ansicht NewHTMLTaskForm zu ändern.

Flex-Formulare und Guides

Flex-Formulare werden durch die Ansicht SwfTaskForm gerendert, Guides durch die Ansicht HtmlTaskForm.

In AEM Forms Workspace kommunizieren diese Ansichten mit der tatsächlichen SWF, aus der das Flex-Formular/Guide besteht, und verwenden eine zwischengeschaltete SWF, die unter /lc/libs/ws/libs/ws/WSNextAdapter.swf vorhanden ist.

Die Kommunikation erfolgt über swfObject.postMessage / window.flexMessageHandler.

Dieses Protokoll wird durch WsNextAdapter.swf definiert. Die vorhandenen flexMessageHandlers im window-Objekt von zuvor geöffneten SWF-Formularen werden entfernt, bevor ein neuer hinzugefügt wird. Bei dieser Logik wird auch der Wechsel zwischen Formular-Registerkarte und Verlaufs-Registerkarte in der Aufgabendetailansicht berücksichtigt. WsNextAdapter.swf wird zum Ausführen verschiedener Formularaktionen wie Speichern oder Senden verwendet.

HINWEIS

Es wird nicht empfohlen, WSNextAdapter.swf oder den Inhalt der Ansichten SwfTaskForm bzw. HtmlTaskForm zu ändern.

Drittanbieteranwendungen (zum Beispiel Correspondence Management)

Drittanbieteranwendungen werden mithilfe der ExtAppTaskForm-Ansicht gerendert.

Kommunikation zwischen Drittanbieteranwendungen und AEM Forms Workspace

AEM Forms Workspace überwacht window.global.postMessage([Message],[Payload])

[] Message kann eine Zeichenfolge sein, die als SubmitMessage| CancelMessage| ErrorMessage| actionEnabledMessageim runtimeMap. Drittanbieteranwendungen müssen diese Schnittstelle verwenden, um AEM Forms Workspace bei Bedarf darüber zu benachrichtigen. Die Verwendung dieser Benutzeroberfläche ist obligatorisch, da der AEM Forms-Arbeitsbereich dies beim Senden der Aufgabe wissen muss, damit das Aufgabenfenster bereinigt werden kann.

Kommunikation zwischen AEM Forms Workspace und Drittanbieteranwendungen

Wenn die direkten Aktionsschaltflächen von AEM Forms Workspace sichtbar sind, wird window.[External-App-Name].getMessage([Action]) aufgerufen, wobei [Action] aus routeActionMap gelesen wird. Die Drittanbieteranwendung muss diese Schnittstelle überwachen und dann AEM Forms Workspace über die API postMessage () benachrichtigen.

Beispielsweise kann eine Flex-Anwendung ExternalInterface.addCallback('getMessage', listener) definieren, um diese Kommunikation zu unterstützen. Wenn die Drittanbieteranwendung die Formularübermittlung über eigene Schaltflächen verarbeiten möchte, sollten Sie hideDirectActions = true() in the runtimeMap angeben und diesen Listener überspringen. Daher ist dieses Konstrukt optional.

Weitere Informationen zur Integration von Drittanbieteranwendungen in Bezug auf Correspondence Management finden Sie unter Integrieren von Correspondence Management in AEM Forms Workspace.

Auf dieser Seite