レンダラーのドキュメントの詳細

注意

AEM 6.4 の拡張サポートは終了し、このドキュメントは更新されなくなりました。 詳細は、 技術サポート期間. サポートされているバージョンを見つける ここ.

はじめに

AEM Forms Workspace では、複数のフォームタイプをシームレスにサポートします。 次の機能が含まれます。

  • PDF forms(XDP、Acroform、フラットPDF)
  • 新規HTMLフォーム
  • 画像
  • サードパーティアプリケーション(Correspondence Management など)

このドキュメントでは、セマンティックのカスタマイズ/コンポーネントの再利用の観点から、これらのレンダラーの動作を説明し、レンディションを壊すことなく、顧客の要件を満たすようにします。 AEM Forms Workspace では、ユーザーインターフェイスおよびセマンティックの変更が可能ですが、異なるフォームタイプのレンダリングロジックは変更しないことをお勧めします。変更してしまうと、予測外の結果になる場合があります。このドキュメントは、異なるポータルで同じワークスペースコンポーネントを使用し、同じフォームのレンダリングをサポートするガイダンス/知識を提供するためのもので、レンダリングロジック自体を変更するためのものではありません。

PDF forms

PDF フォームは PdfTaskForm View でレンダリングされます。

XDP フォームが PDF としてレンダリングされると、FormsAugmenter サービスは FormBridge JavaScript™ を追加します。この JavaScript™ (PDF フォーム内)が、フォーム送信、フォーム保存、またはフォームをオフラインにするなどのアクションを実行する手助けをします。

AEM Forms Workspace では、PDFTaskForm 表示は、/lc/libs/ws/libs/ws/pdf.html にある仲介としての役割を果たす HTML 経由で FormBridge javascript と通信します。フローは次のとおりです。

PDFTaskForm 表示 — pdf.html

window.postMessagewindow.attachEvent('message') を使用した通信

この方法は、親フレームと iframe 間の標準的な通信方法です。 以前に開いたイベントの既存のPDF formsリスナーは、新しく追加する前に削除されます。 このパージでは、タスクの詳細ビューでのフォームタブと履歴タブの切り替えも考慮されます。

pdf.html - FormBridgeレンダリングされた PDF 内の javascript

pdfObject.postMessagepdfObject.messageHandler を使用した通信

この方法は、HTMLからPDFJavaScript との標準的な通信方法です。 PdfTaskForm 表示では、フラットPDFも処理し、単純にレンダリングします。

メモ

pdf.html / PdfTaskForm 表示のコンテンツを変更することはお勧めしません。

新しいHTMLForms

新しいHTMLフォームは、NewHTMLTaskForm ビューによってレンダリングされます。

XDP フォームが CRX にデプロイされた mobile forms パッケージを使用してHTMLとしてレンダリングされると、追加のフォームも追加されます FormBridge javascript をフォームに追加することで、フォームデータの保存と送信のための様々な方法を公開できます。

この JavaScript は、上記のPDF formsとは異なりますが、同じ目的を果たします。

メモ

NewHTMLTaskForm 表示の内容は変更しないことをお勧めします。

Flex Formsとガイド

Flex Formsは SwfTaskForm でレンダリングされ、ガイドは HtmlTaskForm ビューでレンダリングされます。

AEM Forms Workspace では、これらの表示は実際の SWF と通信します。これにより、/lc/libs/ws/libs/ws/WSNextAdapter.swf にある仲介としての役割を果たす SWF を使用して Flex フォーム/ガイドを作成します。

通信は swfObject.postMessagewindow.flexMessageHandler を使用して行われます。

このプロトコルは WsNextAdapter.swf によって定義されています。ウィンドウオブジェクトの既存の flexMessageHandlers は、新しく追加される前に、以前に開いていた SWF フォームから削除されます。このロジックでは、タスクの詳細表示でフォームタブと履歴タブを切り替えることも考慮しています。WsNextAdapter.swf は、保存や送信などの様々なフォームアクションの実行に使用されます。

メモ

WSNextAdapter.swf または SwfTaskForm / HtmlTaskForm 表示の内容を変更することはお勧めしません。

サードパーティアプリケーション(Correspondence Management など)

サードパーティアプリケーションは、ExtAppTaskForm ビューを使用してレンダリングされます。

サードパーティアプリケーションから AEM Forms Workspace への通信

AEM Forms Workspace は window.global.postMessage([Message],[Payload]) をリッスンします。

[Message] は、runtimeMapSubmitMessage| CancelMessage| ErrorMessage| actionEnabledMessage として指定される文字列にすることができます。サードパーティアプリケーションが必要に応じて AEM Forms Workspace に通知するには、このインターフェイスを使用する必要があります。AEM Forms Workspace がタスクウィンドウをクリーンアップするには、タスクが送信されたことを知る必要があるため、このインターフェイスの使用は必須です。

AEM Forms Workspace からサードパーティアプリケーションへの通信

AEM Forms Workspace の直接アクションボタンが表示されている場合は、window.[External-App-Name].getMessage([Action]) を呼び出します。この際、[Action]routeActionMap から読み取られます。サードパーティアプリケーションは、このインターフェイスをリッスンして postMessage () API 経由で AEM Forms Workspace に通知する必要があります。

例えば、Flex アプリケーションは、この通信をサポートするために ExternalInterface.addCallback('getMessage', listener) を定義することができます。サードパーティアプリケーションで独自のボタンを使用してフォーム送信を処理する場合は、hideDirectActions = true() in the runtimeMap を指定する必要があり、そうするとリスナーをスキップすることができます。したがって、この構文はオプションです。

Correspondence Management に関するサードパーティアプリケーションの統合について詳しくは、 AEM Forms Workspace での Correspondence Management の統合.

このページ