アダプティブフォームフラグメント adaptive-form-fragments
すべてのフォームは特定の目的用に設計されますが、ほとんどのフォームには、いくつかの共通するセグメントがあります(例:名前と住所、家族の詳細、収入の詳細などの個人情報などを入力するためのセグメント)。フォーム開発者は、新しいフォームを作成するたびに、これらの共通セグメントを作成する必要があります。
アダプティブフォームは、パネルやフィールドのグループのようなフォームセグメントを 1 回だけ作成し、アダプティブフォーム間で再利用する便利なメカニズムです。 これらの再利用可能でスタンドアロンのセグメントは、アダプティブフォームフラグメントと呼ばれます。
フラグメントの作成 create-a-fragment
アダプティブフォームフラグメントは、最初から作成することも、パネルを既存のアダプティブフォーム内にフラグメントとして保存することもできます。
フラグメントを最初から作成 create-fragment-from-scratch
-
AEM Forms オーサーインスタンス(https://[hostname]:[port]/aem/forms.html)にログインします。
-
クリック 作成/アダプティブフォームフラグメント.
-
フラグメントのタイトル、名前、説明およびタグを指定します。
note note NOTE フラグメントには一意の名前を指定してください。 同じ名前の別のフラグメントが既に存在する場合、フラグメントの作成に失敗します。 -
「フォームモデル」タブをクリックして開き、「次から選択」ドロップダウンメニューから、フラグメントに対して次のいずれかのモデルを選択します。
- なし:フォームモデルを使用しないで最初からフラグメントを作成するときに指定します。
- フォームテンプレート:AEM Formsにアップロードされた XDP テンプレートを使用してフラグメントを作成することを指定します。 フラグメントのフォームモデルとして適当な XDP テンプレートを選択してください。
選択したフォームテンプレート内でフラグメントとしてマークされたサブフォームも表示されます。ドロップダウンリストから、アダプティブフォームフラグメントのサブフォームを選択できます。
さらに、ドロップダウンボックスでサブフォームの SOM 式を指定することで、フォームテンプレートでフラグメントとしてマークされていないサブフォームを使用して、アダプティブフォームフラグメントを作成できます。
- XML スキーマ:AEM Formsにアップロードされた XML スキーマを使用してフラグメントを作成することを指定します。 フラグメントのフォームモデルとして使用可能な XML スキーマからアップロードまたは選択できます。
ドロップダウンボックスから選択されたスキーマにある complexType を選択することで、アダプティブフォームフラグメントを作成することもできます。
-
「作成」をクリックし、次に「開く」をクリックして、編集モードでデフォルトテンプレートを使ってフラグメントを開きます。
編集モードでは、アダプティブフォームコンポーネントをAEMサイドキックからフラグメントにドラッグ&ドロップできます。 アダプティブフォームのコンポーネントについて詳しくは、 アダプティブフォームのオーサリングの概要.
また、フラグメントのフォームモデルとして XML スキーマまたは XDP フォームテンプレートを選択した場合は、フォームモデル階層を示す新しいタブがコンテンツファインダーに表示されます。 フォームモデルの要素をフラグメントにドラッグ&ドロップできます。 追加されたフォームモデル要素はフォームコンポーネントに変換されますが、関連する XDP または XSD の元のプロパティは保持されます。
パネルをフラグメントとして保存 save-panel-as-a-fragment
-
アダプティブフォームフラグメントとして保存するパネルが含まれているアダプティブフォームを開きます。
-
パネルツールバーで、 フラグメントとして保存. フラグメントとして保存ダイアログが開きます。
note note NOTE フラグメントとして保存しているパネルに子パネルが含まれている場合、結果のフラグメントには子パネルが含まれます。 -
フラグメントの作成ダイアログで、次の情報を指定します。
-
名前:フラグメントの名前。 デフォルト値は、パネルの要素名です。 このフィールドは必須です。
note note NOTE フラグメントには一意の名前を指定してください。 同じ名前の別のフラグメントが既に存在する場合、フラグメントの作成に失敗します。 -
タイトル:フラグメントのタイトル。デフォルト値はパネルのタイトルです。
-
説明:フラグメントの説明。
-
タグ:フラグメントのタグメタデータ。
-
ターゲットパス:フラグメントが保存されるリポジトリーパス。パスを指定しない場合、フラグメントと同じ名前のノードが、アダプティブフォームを含むノードの横に作成されます。 フラグメントはこのノードに保存されます。
-
フォームモデル:アダプティブフォームのフォームモデルに応じて、このフィールドには XML スキーマ, フォームテンプレート または なし. このフィールドは編集できません。
-
フラグメントモデルのルート:XSD ベースのアダプティブフォームにのみ表示されます。 フラグメントモデルのルートを指定します。 次を選択できます。 / または XSD 複合タイプをドロップダウンから選択します。 フラグメントを別のアダプティブフォームで再利用できるのは、複合タイプをフラグメントモデルルートとして選択した場合のみです。
/ をフラグメントモデルルートとして選択した場合、ルートからの完全な XSD ツリーは、「アダプティブフォームデータモデル」タブに表示されます。複合タイプのフラグメントモデルルートの場合、選択した複合タイプの子孫のみが、「アダプティブフォームデータモデル」タブに表示されます。
-
XSD 参照:XSD ベースのアダプティブフォームにのみ表示されます。XML スキーマの場所を表示します。
-
XDP 参照:XDP ベースのアダプティブフォームにのみ表示されます。 XDP フォームテンプレートの場所を表示します。
図: フラグメントとして保存ダイアログ -
-
「OK」をクリックします。
パネルがリポジトリー内の指定した場所またはデフォルトの場所に保存されます。アダプティブフォームでは、パネルがフラグメントのスナップショットに置き換えられます。 以下に示すように、一般情報パネルとその子パネル(個人情報と住所)はフラグメントとして保存されます。
フラグメントを編集するには、 アセットを編集 」と入力します。 フラグメントが新しいタブまたはウィンドウで編集モードで開きます。
フラグメントの操作 working-with-fragments
フラグメントの外観の設定 configure-fragment-appearance
アダプティブフォーム内に挿入したフラグメントは、プレースホルダー画像として表示されます。 プレースホルダーには、フラグメント内の子パネルのタイトルが最大 10 個まで表示されます。プレースホルダーの画像の代わりに完全なフラグメントを表示するようにAEM Formsを設定できます。
次の手順を実行して、フォームのフラグメントをすべて表示します。
- AEM Web コンソールの設定ページ(https:[host]:[port]/system/console/configMgr)に移動します。
- アダプティブフォームとインタラクティブ通信の web チャネル設定 を検索およびクリックして、編集モードで開きます。
- 無効にする フラグメントの代わりにプレースホルダーを有効にする チェックボックスをオンにして、プレースホルダー画像ではなく完全なフラグメントを表示します。
アダプティブフォームにフラグメントを挿入する insert-a-fragment-in-an-adaptive-form
作成したアダプティブフォームフラグメントは、AEMコンテンツファインダーの「アダプティブフォームフラグメント」タブに表示されます。 アダプティブフォームフラグメントをアダプティブフォームに挿入するには、次の手順を実行します。
-
アダプティブフォームフラグメントを挿入するアダプティブフォームを編集モードで開きます。
-
サイドバーの「Assets 」をクリックします。アセットブラウザーで、ドロップダウンリストから「アダプティブフォームフラグメント」を選択します。
すべてのアダプティブフォームフラグメントを表示するか、フォームモデル(フォームテンプレート、XML スキーマ、基本)に基づいてフィルターするかを選択することもできます。
-
アダプティブフォームフラグメントをアダプティブフォームにドラッグ&ドロップします。
note note NOTE アダプティブフォームフラグメントは、アダプティブフォーム内からのオーサリングでは有効になっていません。 また、JSON ベースのアダプティブフォームでは、XSD ベースのフラグメントを使用することも、その逆の方法で使用することもできません。
アダプティブフォームフラグメントは、アダプティブフォーム内の参照によって挿入され、スタンドアロンのアダプティブフォームフラグメントと同期されます。 つまり、アダプティブフォームフラグメントを更新すると、その変更が、フラグメントが使用されているすべてのアダプティブフォームに反映されます。
フラグメントをアダプティブフォームに埋め込む embed-a-fragment-in-adaptive-form
アダプティブフォーム内にアダプティブフォームフラグメントを埋め込むには、 **埋め込みアセット: *fragmentName ***ボタンを使用して、追加されたフラグメントのパネルツールバーを表示できます(次の例を参照)。
フラグメント内でのフラグメントの使用 using-fragments-within-fragments
ネストされたアダプティブフォームフラグメントを作成できます。つまり、別のフラグメント内にフラグメントをドラッグ&ドロップし、ネストされたフラグメント構造を持つことができます。
フラグメントの変更 change-fragments
アダプティブフォームフラグメントを別のフラグメントで置き換えたり変更したりするには、 フラグメントアセットを選択 プロパティを編集します。
データ連結のためのフラグメントの自動マッピング auto-mapping-of-fragments-for-data-binding
XFA フォームテンプレートまたは XSD 複合タイプを使用してアダプティブフォームフラグメントを作成し、フラグメントをアダプティブフォームにドラッグ&ドロップすると、XFA フラグメントまたは XSD 複合タイプは、フラグメントモデルルートが XFA フラグメントまたは XSD 複合タイプにマッピングされる対応するアダプティブフォームフラグメントに自動的に置き換えます。
コンポーネントの編集ダイアログから、フラグメントアセットとその連結を変更できます。
フラグメントの管理 manage-fragments
AEM Forms UI を使用して、アダプティブフォームフラグメントに対して複数の操作を実行できます。
-
https://[hostname]:[port]/aem/forms.html
にアクセスします。 -
クリック 選択 AEM Forms UI ツールバーで、アダプティブフォームフラグメントを選択します。 ツールバーには、選択したアダプティブフォームフラグメントに対して実行できる次の操作が表示されます。
フラグメントを含むアダプティブフォームのローカライズ localizing-adaptive-form-containing-fragments
アダプティブフォームフラグメントを含むアダプティブフォームをローカライズするには、フラグメントとフォームを別々にローカライズする必要があります。 考え方としては、フラグメントを 1 回ローカライズし、複数のアダプティブフォームで再利用することです。
フラグメントで作業するときの考慮事項 key-points-to-remember-when-working-with-fragments
-
フラグメント名が一意であることを確認します。 同じ名前の既存のフラグメントが存在する場合、フラグメントの作成に失敗します。
-
XDP ベースのアダプティブフォームで、別の XDP フラグメントを含むフラグメントとしてパネルを保存すると、結果のフラグメントは自動的に子 XDP フラグメントにバインドされます。 XSD ベースのアダプティブフォームでは、生成されるフラグメントはスキーマルートにバインドされます。
-
アダプティブフォームフラグメントを作成すると、フラグメントノードが作成されます。これは CRXDE Lite における、アダプティブフォームの guideContainer ノードに類似したものです。
-
異なるフォームデータモデルを使用するアダプティブフォーム内のフラグメントはサポートされていません。 例えば、XDP ベースのフラグメントは XSD ベースのアダプティブフォームではサポートされませんが、その逆も同様です。
-
アダプティブフォームフラグメントは、AEMコンテンツファインダーの「アダプティブフォームフラグメント」タブを通じて使用できます。
-
スタンドアロンのアダプティブフォームフラグメント内の式、スクリプト、スタイルは、アダプティブフォームに参照によって挿入されたとき、または埋め込まれたときに保持されます。
-
アダプティブフォーム内からは、参照によって挿入されたアダプティブフォームフラグメントを編集することはできません。 編集するには、スタンドアロンのアダプティブフォームフラグメントを編集するか、アダプティブフォームにフラグメントを埋め込みます。
-
アダプティブフォームを発行する場合は、アダプティブフォーム内で参照によって挿入されたスタンドアロンのアダプティブフォームフラグメントを発行する必要があります。
-
更新されたアダプティブフォームフラグメントを再発行すると、その変更は、フラグメントが使用されているアダプティブフォームの発行済みインスタンスに反映されます。
-
検証コンポーネントを含むアダプティブフォームは、匿名ユーザーをサポートしません。 また、アダプティブフォームフラグメントで検証コンポーネントを使用することはお勧めしません。
-
(Mac のみ)フォームフラグメント機能がすべてのシナリオで正しく動作するようにするには、/private/etc/hosts ファイルに次のエントリを追加します。
127.0.0.1 <Host machine>
ホストマシン:AEM Forms がデプロイされている Apple Mac マシン。
リファレンスフラグメント reference-fragments
フォームの作成に使用できる参照用アダプティブフォームフラグメントを使用できます。 詳しくは、リファレンスフラグメントを参照してください。