XFAフォームテンプレート(*.XDP
ファイル)を基にアダプティブフォームを作成できます。 この再利用により、既存の XFA フォームに費やした投資を保持することができます。XFAフォームテンプレートを使用したアダプティブフォームの作成方法については、「テンプレートに基づくアダプティブフォームの作成」を参照してください。
XDP ファイルのフィールドをアダプティブフォームで再利用することができます。これらのフィールドは、バインドされたフィールドと呼ばれます。バインドされたフィールドのプロパティ(スクリプト、ラベル、表示形式など)は、XDP ファイルからコピーされます。これらのプロパティには、値をオーバーライドできるものもあります。
AEM Forms では、XDP ファイル内の対応するフィールドに後で変更があった場合も、アダプティブフォームのフィールドが同期された状態を保つことができます。この記事では、この同期を有効にする方法を説明します。
AEM Forms のオーサリング環境では、XFA フォーム(左)からアダプティブフォーム(右)へとフィールドをドラッグすることができます
この記事の情報を使用するには、次の領域に関する知識が推奨されます。
XFA(XML Forms Architecture)
記事の例に示されているアセットを使用するには、次のセクションサンプルパッケージで説明されているように、サンプルパッケージをダウンロードします。
この記事では、更新された XFA フォームテンプレートを使用したアダプティブフォームの同期方法を、例を使って示しています。例で使用されているアセットは、この記事の「ダウンロード」セクションからダウンロードできるパッケージに含まれています。
パッケージをアップロードすると、これらのアセットが AEM Forms UI に表示されます。
パッケージマネージャーを使用してパッケージをインストールします。https://<server>:<port>/crx/packmgr/index.jsp
パッケージには次のアセットが含まれています。
sample-form.xdp
:例として使用されている XFA フォームテンプレート
sample-xfa-af
:sample-form.xdp ファイルを基にしたアダプティブフォームただし、このアダプティブフォームにはフィールドは含まれていません。次の手順で、このアダプティブフォームにコンテンツを追加します。
前述の手順では、XDP ファイル内のフィールドのプロパティを上書きしました。したがって、このプロパティは、XDP ファイル内の対応するプロパティが後に変更されても同期されません。
XDP ファイルまたはフラグメントに変更があった場合、AEM Forms UI により、その XDP ファイルまたはフラグメントに基づくすべてのアダプティブフォームにフラグが付けられます。
XDP ファイルを更新した後、変更がフラグ付けされるようにするには、その XDP ファイルを AEM Forms UI に再度アップロードする必要があります。
例として、次の手順を使って sample-form.xdp
ファイルを更新します。
https://<server>:<port>/projects.html.
に移動します。指示に従って、資格情報を入力します。
左側にある「フォーム」タブをクリックします。
ローカルマシンに sample-form.xdp
ファイルをダウンロードします。XDPファイルは.zip
ファイルとしてダウンロードされ、任意のファイル解凍ユーティリティを使用して抽出できます。
sample-form.xdp
ファイルを開き、TextField1 のタイトルを Text Field から My Text Field に変更します。
sample-form.xdp
ファイルを AEM Forms UI にアップロードして戻します。
XDP ファイルが更新されると、XDP ファイルに基づいてアダプティブフォームを編集する際、エディターにアイコンが表示されます。このアイコンは、アダプティブフォームが XDP ファイルと同期されていないことを示すものです。次の画像では、サイドバーにアイコンが表示されています。
XDP ファイルと同期されていないアダプティブフォームが次回作成用に開かれたときに、次のメッセージが表示されます:このアダプティブフォームのスキーマ / フォームテンプレートは更新されました。Click Here
を新しいバージョンにリベースします。
メッセージをクリックすると、アダプティブフォーム内のフィールドが XDP ファイル内の対応するフィールドと同期されます。
この記事で使用される例では、sample-xfa-af
を作成者モードで開きます。メッセージが、アダプティブフォームの下部に表示されます。
XDP ファイルからアダプティブフォームにコピーされたプロパティは、作成者によってアダプティブフォーム内で(コンポーネントダイアログから)明示的に上書きされたプロパティを除き、すべて更新されます。更新されたプロパティのリストは、サーバーログで見ることができます。
例のアダプティブフォーム内のプロパティを更新するには、メッセージ内の"Click Here"
というラベルの付いたリンクをクリックします。 TextField1 のタイトルが、Text Field から My Text Field に変更されます。
AF Numeric Fieldのラベルが変更されなかったのは、コンテンツをアダプティブフォームに記述するとおり、コンポーネントのプロパティダイアログでこのプロパティを上書きしたからです。
「フォーム階層」タブから元の XDP ファイルに後から追加された新しいフィールドは、アダプティブフォームへとドラッグすることができます。
「フォーム階層」タブのフィールドを更新するために、エラーメッセージ内のリンクをクリックする必要はありません。
アダプティブフォームに以前コピーされたフィールドが XDP ファイルから削除されている場合には、XDP ファイルにフィールドが存在しないというエラーメッセージが作成者モード内で表示されます。そのような場合には、アダプティブフォームから手動でそのフィールドを削除するか、またはコンポーネントダイアログで bindRef
プロパティを消去します。
次の手順では、この記事で使われている例の中のアセットに対してこの方法を使用する流れを説明します。
sample-form.xdp
ファイルを更新し、NumericField1 を削除します。
AEM Forms UI に sample-form.xdp
ファイルをアップロードします。
sample-xfa-af
アダプティブフォームを作成のために開きます。次のエラーメッセージが表示されます。アダプティブフォームのスキーマ/フォームテンプレートが更新されました。 Click Here
を新しいバージョンにリベースします。
メッセージ内の「Click Here
」というラベルの付いたリンクをクリックします。 XDP ファイルにフィールドが存在しないというエラーメッセージが表示されます。
削除されたフィールドも、フィールドにエラーが存在することを示すアイコンでマークされます。
アダプティブフォームのフィールドで誤ったバインド(編集ダイアログの無効な bindRef
値)を持つフィールドも、削除されたフィールドとみなされます。これらのエラーを修正しないでアダプティブフォームを発行すると、フィールドはバインドされていない通常のアダプティブフォームフィールドとして処理され、出力 XML ファイルのバインドされていないセクションに追加されます。
この記事の例に使用されているコンテンツパッケージ