アダプティブフォームと XFA フォームテンプレートとの同期

最終更新日: 2023-12-07
  • 作成対象:
  • User

Adobeでは、最新の拡張可能なデータキャプチャを使用することをお勧めします コアコンポーネント 対象: 新しいアダプティブFormsの作成 または AEM SitesページへのアダプティブFormsの追加. これらのコンポーネントは、アダプティブフォームの作成における大幅な進歩を示すものであり、優れたユーザーエクスペリエンスを実現します。この記事では、基盤コンポーネントを使用してアダプティブフォームを作成するより従来的な方法について説明します。

はじめに

XFA フォームテンプレート(*.XDPファイル)を基にアダプティブフォームを作成することができます。この再利用により、既存の XFA フォームへの投資を保持できます。 XFA フォームテンプレートを使用したアダプティブフォームの作成方法については、「テンプレートに基づくアダプティブフォームの作成」を参照してください。

アダプティブフォーム内で XDP ファイルのフィールドを再利用できます。 これらのフィールドは、バインドされたフィールドと呼ばれます。バインドされたフィールドのプロパティ(スクリプト、ラベル、表示形式など)は、XDP ファイルからコピーされます。これらのプロパティには、値をオーバーライドできるものもあります。

AEM Formsでは、XDP ファイル内の対応するフィールドに後で変更が加えられた場合に、アダプティブフォームのフィールドを同期した状態に保つことができます。 この記事では、この同期を有効にする方法を説明します。

XFA フォームからアダプティブフォームにフィールドをドラッグすることができます

AEM Formsオーサリング環境では、XFA フォーム(左)からアダプティブフォーム(右)にフィールドをドラッグすることができます

前提条件

この記事の情報を使用するには、次の内容について確認しておくと役立ちます。

この記事の例に示されているアセットを使用するには、次のセクション「サンプルパッケージ」で説明されているとおりにサンプルパッケージをダウンロードしてください。

サンプルパッケージ

この記事では、サンプルを使用して、アダプティブフォームを更新された XFA フォームテンプレートと同期する方法を示しています。 例で使用しているアセットは、この記事の「ダウンロード」の節からダウンロードできるパッケージに含まれています。

パッケージをアップロードすると、これらのアセットがAEM Forms UI に表示されます。

パッケージマネージャー: https://<server>:<port>/crx/packmgr/index.jsp を使ってパッケージをインストールします

パッケージには次のアセットが含まれています。

  1. sample-form.xdp:例として使用されている XFA フォームテンプレート

  2. sample-xfa-af:sample-form.xdp ファイルに基づくアダプティブフォームただし、このアダプティブフォームにはフィールドは含まれていません。次の手順で、このアダプティブフォームにコンテンツを追加します。

アダプティブフォームへのコンテンツの追加

  1. https://<server>:<port>/aem/forms.html に移動します。要求された場合は、資格情報を入力します。
  2. オーサーモードで sample-af-xfa を開き、編集します。
  3. サイドバーにあるコンテンツブラウザーで、「データモデルオブジェクト」タブを選択します。NumericField1 と TextField1 をアダプティブフォームにドラッグします。
  4. NumericField1 のタイトルを Numeric Field から AF Numeric Field に変更します。
メモ

前述の手順では、XDP ファイル内のフィールドのプロパティを上書きしました。したがって、このプロパティは、XDP ファイル内の対応するプロパティが後に変更されても同期されません。

XDP ファイル内の変更の検出

XDP ファイルまたはフラグメントに変更が生じた場合は常に、AEM Forms UI によって、その XDP ファイルまたはフラグメントに基づくすべてのアダプティブフォームにフラグが付けられます。

XDP ファイルを更新した後、変更がフラグ付けされるようにするには、その XDP ファイルを AEM Forms UI に再度アップロードする必要があります。

例として、次の手順を使って sample-form.xdp ファイルを更新します。

  1. https://<server>:<port>/projects.html.に移動します。指示に従って、資格情報を入力します。

  2. 左側にある「フォーム」タブをクリックします。

  3. ローカルマシンに sample-form.xdp ファイルをダウンロードします。XDP ファイルが、任意のファイル解凍ユーティリティで抽出可能な .zip ファイル形式でダウンロードされます。

  4. sample-form.xdp ファイルを開き、TextField1 のタイトルを Text Field から My Text Field に変更します。

  5. sample-form.xdp ファイルを AEM Forms UI にアップロードして戻します。

XDP ファイルが更新されると、XDP ファイルに基づいてアダプティブフォームを編集する際に、エディターにアイコンが表示されます。 このアイコンは、アダプティブフォームが XDP ファイルと同期されていないことを示します。 次の画像では、サイドバーにアイコンが表示されています。

アダプティブフォームが XDP ファイルと同期されていないことを示すアイコン

アダプティブフォームと最新の XDP ファイルとの同期

XDP ファイルと同期していないアダプティブフォームを次回、作成用に開くと、このアダプティブフォームのスキーマ / フォームテンプレートは更新されましたClick Hereというメッセージが表示されます(新しいバージョンでリベースするために使用)。

メッセージをクリックすると、アダプティブフォーム内のフィールドが XDP ファイル内の対応するフィールドと同期されます。

この記事で使用される例では、sample-xfa-af をオーサリングモードで開きます。メッセージが、アダプティブフォームの下部に表示されます。

アダプティブフォームを XDP ファイルと同期するよう促すメッセージ

プロパティの更新

XDP ファイルからアダプティブフォームにコピーされたすべてのプロパティは、作成者によってアダプティブフォーム内で(コンポーネントダイアログから)明示的に上書きされたプロパティを除き、更新されます。 更新されたプロパティのリストは、サーバーログで見ることができます。

例にあるアダプティブフォームのプロパティを更新するには、メッセージ内の「"Click Here"」のラベルが付いたリンクをクリックします。TextField1 のタイトルが、Text Field から My Text Field に変更されます。

update-property

メモ

AF Numeric Field のラベルが変更されなかったのは、「アダプティブフォームへのコンテンツの追加」で説明したとおり、コンポーネントプロパティダイアログでこのプロパティを上書きしたためです。

XDP ファイルからアダプティブフォームへの新しいフィールドの追加  

元の XDP ファイルに後から追加されたフィールドは「フォーム階層」タブに表示され、新しいフィールドをアダプティブフォームにドラッグすることができます。

「フォーム階層」タブのフィールドを更新するために、エラーメッセージ内のリンクをクリックする必要はありません。

XDP ファイルから削除されたフィールド

アダプティブフォームに以前にコピーされたフィールドが XDP ファイルから削除されると、そのフィールドが XDP ファイルに存在しないことを示すエラーメッセージがオーサリングモードで表示されます。 その場合は、アダプティブフォームから手動でそのフィールドを削除するか、コンポーネントダイアログで bindRef プロパティを消去します。

次の手順では、この記事で使われている例の中のアセットに対してこの方法を使用する流れを説明します。

  1. sample-form.xdp ファイルを更新し、NumericField1 を削除します。

  2. AEM Forms UI に sample-form.xdp ファイルをアップロードします。

  3. sample-xfa-af アダプティブフォームを作成のために開きます。次のエラーメッセージが表示されます:このアダプティブフォームのスキーマ/フォームテンプレートは更新されました。Click Here(新しいバージョンでリベースするために使用)。

  4. メッセージ内の「Click Hereのラベル」が付いたリンクをクリックします。XDP ファイルにフィールドが存在しないというエラーメッセージが表示されます。

XDP ファイルで要素を削除すると表示されるエラー

削除されたフィールドも、フィールドにエラーが存在することを示すアイコンでマークされます。

フィールド内のエラーアイコン

メモ

アダプティブフォームのフィールドで誤ったバインド(編集ダイアログの無効な bindRef 値)を持つフィールドも、削除されたフィールドとみなされます。作成者がこれらのエラーを修正せずにアダプティブフォームを公開した場合、フィールドはバインドされていない通常のアダプティブフォームフィールドとして扱われ、出力 XML ファイルのバインドされていないセクションに含まれます。

ダウンロード

この記事の例に使用されているコンテンツパッケージ

ファイルを入手

このページ