概要

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

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

PDF フォーム

PDF フォームは、PdfTaskForm 表示によってレンダリングされます。

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.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]) をリッスンします。

[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) を定義してこの通信をサポートすることができます。サードパーティアプリケーションが独自のボタンを介してフォーム送信を処理する場合は、runtimeMap に hideDirectActions  = true() を指定すると、 このリスナーをスキップすることができます。従って、この構築はオプションです。

サードパーティアプリケーションの Correspondence Management との統合の詳細については、「AEM Forms Workspace での Correspondence Management の統合」を参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー