AEM Forms Workspace では、複数のフォームタイプをシームレスにサポートしています。有効なタイプには以下が含まれます。
このドキュメントでは、表示を中断することなく顧客の要件を満たすように、セマンティックカスタマイゼーションおよびコンポーネントの再利用の観点からこれらのレンダラーの動作を説明します。AEM Formsワークスペースではユーザーインターフェイスやセマンティックの変更が可能ですが、様々なフォームタイプのレンダリングロジックは変更しないことをお勧めします。そうしないと、予測できない結果になる場合があります。 このドキュメントは、別々のポータルで同じワークスペースコンポーネントを使用する、同じフォームのレンダリングをサポートするためのガイド/ナレッジであり、レンダリングロジック自体を変更するためのものではありません。
PDF formsはPdfTaskForm View
によってレンダリングされます。
XDP フォームが PDF としてレンダリングされると、FormsAugmenter サービスは FormBridge
JavaScript™ を追加します。この JavaScript™ (PDF フォーム内)が、フォーム送信、フォーム保存、またはフォームをオフラインにするなどのアクションを実行する手助けをします。
AEM Formsのワークスペースでは、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 フォームは、NewHTMLTaskForm 表示によってレンダリングされます。
XDP フォームが CRX にデプロイされたモバイルフォームのパッケージを使用して HTML としてレンダリングされた場合は、追加の FormBridge
javascript もフォームに追加します。これは、フォームデータを保存して送信するのに異なるメソッドを示します。
この javascript は上記の PDF フォームで言及したものとは異なりますが、同じ用途に使用できます。
NewHTMLTaskForm表示の内容は変更しないことをお勧めします。
Flex フォームは SwfTaskForm によってレンダリングされ、ガイドは HtmlTaskForm 表示によってレンダリングされます。
AEM Formsのワークスペースでは、これらの表示は実際のSWFと通信します。これにより、/lc/libs/ws/libs/ws/WSNextAdapter.swf
にある中間のSWFを使用してFlexフォーム/ガイドを構成します
通信はswfObject.postMessage
/ window.flexMessageHandler
を使用して行われます。
このプロトコルは WsNextAdapter.swf
によって定義されています。ウィンドウオブジェクトの既存の flexMessageHandlers
は、新しく追加される前に、以前に開いていた SWF フォームから削除されます。このロジックでは、タスクの詳細表示でフォームタブと履歴タブを切り替えることも考慮しています。WsNextAdapter.swf
は、保存や送信などの様々なフォームアクションの実行に使用されます。
WSNextAdapter.swf
または SwfTaskForm / HtmlTaskForm 表示の内容を変更することはお勧めしません。
サードパーティアプリケーションは、ExtAppTaskForm 表示を使用してレンダリングされます。
AEM Forms・ワークスペース通信へのサード・パーティ・アプリケーション
AEM Formsワークスペースはwindow.global.postMessage([Message],[Payload])
をリッスンします
[] Messagecは次のように指定された文字列にすることができます。 SubmitMessage
| CancelMessage
| ErrorMessage
| actionEnabledMessage
が含まれ runtimeMap
ます。サードパーティアプリケーションは、必要に応じてAEM FormsWorkspaceに通知するには、このインターフェイスを使用する必要があります。 このインターフェイスの使用は必須です。これは、AEM Formsワークスペースがタスクーウィンドウをクリーンアップするためにタスクが送信されたことを知る必要があるからです。
AEM Formsワークスペースからサードパーティアプリケーションへの通信
AEM Formsワークスペースの直接アクションボタンが表示されている場合は、window.[External-App-Name].getMessage([Action])
を呼び出します。[Action]
はrouteActionMap
から読み取られます。 サードパーティアプリケーションは、このインターフェイスをリッスンし、postMessage ()
APIを介してAEM Formsのワークスペースに通知する必要があります。
例えば、Flexのアプリケーションでは、この通信をサポートするExternalInterface.addCallback('getMessage', listener)
を定義できます。 サードパーティアプリケーションが独自のボタンを使用してフォームの送信を処理する場合は、hideDirectActions = true() in the runtimeMap
を指定し、このリスナーをスキップできます。 従って、この構築はオプションです。
サードパーティアプリケーションの Correspondence Management との統合の詳細については、「AEM Forms Workspace での Correspondence Management の統合」を参照してください。