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

はじめに

AEM Forms Workspace では、複数のフォームタイプをシームレスにサポートしています。有効なタイプには以下が含まれます。

  • PDF フォーム(XDP / Acroform / Flat PDF)
  • 新規 HTML フォーム
  • 画像
  • サードパーティアプリケーション(たとえば、Correspondence Management など)

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

PDF フォーム

PDF formsはPdfTaskForm Viewによってレンダリングされます。

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

AEM Forms Workspaceでは、PDFTaskFormビューは、/lc/libs/ws/libs/ws/pdf.htmlにある中間のHTMLを介してFormBridgeJavaScriptと通信します。 フローを以下に示します。

PDFTaskForm 表示 - pdf.html

window.postMessage / window.attachEvent('message')を使用する通信

このメソッドは、親フレームと I フレーム間の標準的な通信方法です。以前に開いていた PDF フォームからの既存のイベントリスナーは、新しく追加する前に削除されます。この削除では、タスクの詳細表示でフォームタブと履歴タブを切り替えることも考慮しています。

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

pdfObject.postMessage / pdfObject.messageHandlerを使用する通信

このメソッドは、HTML からの PDF javascript との標準的な通信方法です。PdfTaskForm 表示は、フラット PDF にも対応していて、平面的にレンダリングします。

メモ

pdf.html / PdfTaskForm 表示の内容はを変更しないことをお勧めします。

新規 HTML フォーム

新規 HTML フォームは、NewHTMLTaskForm 表示によってレンダリングされます。

XDP フォームが CRX にデプロイされたモバイルフォームのパッケージを使用して HTML としてレンダリングされた場合は、追加の FormBridge javascript もフォームに追加します。これは、フォームデータを保存して送信するのに異なるメソッドを示します。

この javascript は上記の PDF フォームで言及したものとは異なりますが、同じ用途に使用できます。

メモ

NewHTMLTaskForm表示の内容を変更することはお勧めしません。

Flex フォームおよびガイド

Flex フォームは SwfTaskForm によってレンダリングされ、ガイドは HtmlTaskForm 表示によってレンダリングされます。

AEM Forms Workspaceでは、これらのビューは実際のSWFと通信し、/lc/libs/ws/libs/ws/WSNextAdapter.swfにある中間のSWFを使用してFlexフォーム/ガイドを構成します

通信はswfObject.postMessage / window.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])でリッスンします

[] Messagecanは、 SubmitMessage| CancelMessage| ErrorMessage|( actionEnabledMessage内)をクリックしま runtimeMapす。サードパーティアプリケーションは、必要に応じて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 の統合」を参照してください。

このページ