フォームデータモデル(FDM)の使用 use-form-data-model

バージョン
記事リンク
AEM 6.5
ここをクリックしてください
AEM as a Cloud Service
この記事

data-integration

Experience Manager Forms のデータ統合機能により、各種のバックエンドデータソースを使用してフォームデータモデル(FDM)を作成できます。作成したデータフォーム(FDM)は、様々なアダプティブフォームの ワークフローで、スキーマとして使用できます。そのためには、データソースの設定を行い、データソース内の有効なデータモデルオブジェクトとサービスに基づいて、フォームデータモデル(FDM)を作成する必要があります。詳しくは、以下のトピックを参照してください。

JSON スキーマの拡張機能であるフォームデータモデル(FDM)を使用して、以下を行うことができます。

アダプティブフォームとアダプティブフォームフラグメントの作成 create-af

フォームデータモデル(FDM)に基づいて、アダプティブフォームとアダプティブフォームフラグメント を作成できます。アダプティブフォームまたはアダプティブフォームフラグメントを作成する際にフォームデータモデル(FDM)を使用するには、以下の手順を実行します。

  1. プロパティを追加画面の「フォームモデル」タブで、 次から選択 ドロップダウンリストから「フォームデータモデル」を選択します。

    create-af-1-1

  2. フォームデータモデルを選択」を選択して展開します。使用可能なすべてのフォームデータモデル(FDM)がリスト表示されます。

    フォームデータモデルを選択します。

    create-af-2-1

  3. アダプティブフォームフラグメントのみ)フォームデータモデル(FDM)内の 1 つのデータモデルオブジェクトのみに基づいて、アダプティブフォームフラグメントを作成できます。フォームデータモデル定義 ​ドロップダウンを展開します。指定したフォームデータモデル(FDM)内のすべてのデータモデルオブジェクトがリスト表示されます。リストからデータモデルオブジェクトを選択します。

    create-af-3

    フォームデータモデル(FDM)に基づいてアダプティブフォームまたはアダプティブフォームフラグメントを作成すると、アダプティブフォームエディター内コンテンツブラウザーの「データソース」タブにフォームデータモデルオブジェクトが表示されます。

    note note
    NOTE
    アダプティブフォームフラグメントの場合は、オーサリング時に選択したデータモデルオブジェクトと、そのオブジェクトに関連付けられているデータモデルオブジェクトだけが、「データソース」タブに表示されます。

    data-model-objects-tab

    データモデルオブジェクトをアダプティブフォームまたはアダプティブフォームフラグメントにドラッグ&ドロップすると、フォームフィールドを追加できます。追加されたフォームフィールドには、メタデータのプロパティとデータモデルオブジェクトのプロパティとの連結が保持されます。この連結により、フォームの送信時に対応するデータソース内のフィールド値が更新され、フォームのレンダリング時に対応するデータソース内のフィールドに値が取り込まれます。

サンプルデータを使用したプレビュー preview-ic

フォームデータモデルエディターでは、フォームデータモデル(FDM)内のデータモデルオブジェクト用のサンプルデータを生成して編集できます。このデータを使用して、アダプティブフォームをプレビューおよびテストできます。プレビュー表示を行う前に、「フォームデータモデルの操作」の説明に従って、サンプルデータを生成する必要があります。

サンプルデータが取り込まれた状態のアダプティブフォームをプレビューするには、オーサーモードでアダプティブフォームを開いて「プレビュー」を選択します。

フォームデータモデルサービスを使用したデータの事前入力 prefill

Experience Manager Forms には、標準のフォームデータモデル事前入力サービスが用意されています。フォームデータモデル(FDM)に基づいて、このサービスをアダプティブフォームで使用することができます。この事前入力サービスは、アダプティブフォーム内のデータモデルオブジェクトに対してデータソースのクエリを実行し、フォームまたは通信のレンダリング時にデータを事前入力します。

アダプティブフォームに対してフォームデータモデル事前入力サービスを有効にするには、アダプティブフォームコンテナのプロパティを開き、基本アコーディオンの 事前入力サービス ドロップダウンで「フォームデータモデル事前入力サービス」を選択します。次に、各プロパティを保存します。

prefill-service

送信されたアダプティブフォームデータのデータソースへの書き込み write-af

ユーザーがフォームデータモデル(FDM)に基づいてフォームを送信する際には、データモデルオブジェクトの送信データがそのデータソースに書き込まれるようにフォームを設定することができます。この設定を行うために、Experience Manager Forms には、すぐに使用できるフォームデータモデル送信アクションが用意されています。これは、フォームデータモデル(FDM)をベースとするアダプティブフォーム専用のアクションです。これにより、データモデルオブジェクトに送信されたデータが、そのデータソースに書き込まれます。

フォームデータモデル送信アクションを設定するには:

  1. コンテンツブラウザーを開き、アダプティブフォームの​ ガイドコンテナ ​コンポーネントを選択します。

  2. ガイドコンテナプロパティ ガイドプロパティ アイコンをクリックします。アダプティブフォームコンテナダイアログボックスが開きます。

  3. 送信」タブをクリックします。

  4. 送信アクション ​ドロップダウンリストから、「フォームデータモデルを使用して送信」を選択します。

    アクションの設定

  5. 送信するデータモデル ​を指定します。

  6. 完了」をクリックします。

フォームを送信すると、設定されているデータモデルオブジェクトのデータが、各データソースに書き込まれます。さらに、フォームデータモデル(FDM)とレコードのドキュメント(DoR)を使用して、フォームの添付ファイルをデータソースに送信できます。フォームデータモデル(FDM)について詳しくは、AEM Forms のデータ統合機能を参照してください。

NOTE
AEM as a Cloud Service では、フォーム送信を処理するための様々な送信アクションが標準で提供されます。これらのオプションについて詳しくは、アダプティブフォームの送信アクションの記事をご覧ください。

バイナリデータモデルオブジェクトのプロパティを使用して、フォームの添付ファイルをデータソースに送信することもできます。添付ファイルを JDBC データソースに送信するには、次の手順を実行します。

  1. バイナリプロパティを含むデータモデルオブジェクトをフォームデータモデル(FDM)に追加します。

  2. コンポーネントブラウザーの「添付ファイル」コンポーネントを、アダプティブフォームにドラッグ&ドロップします。

  3. 追加されたコンポーネント、 settings_icon の順に選択して、そのコンポーネントのプロパティブラウザーを開きます。

  4. 「バインド参照」フィールドで foldersearch_18 を選択し、フォームデータモデル(FDM)に追加したバイナリプロパティに移動してそのプロパティを選択します。必要に応じて、他のプロパティを設定します。

    check-button を選択して、プロパティを保存します。これで、添付ファイルフィールドがフォームデータモデル(FDM)のバイナリプロパティに連結されます。

  5. アダプティブフォームコンテナプロパティの「送信」セクションで、「フォームの添付ファイルを送信」を有効にします。これで、フォーム送信時に、バイナリプロパティフィールド内の添付ファイルがデータソースに送信されます。

ルールを使用したアダプティブフォーム内のサービスの呼び出し invoke-services

フォームデータモデル(FDM)に基づくアダプティブフォームの場合、ルールを作成して、フォームデータモデル(FDM)内で設定されているサービスを呼び出すことができます。ルール内の「サービスを起動」操作を実行すると、フォームデータモデル(FDM)内のすべての有効なサービスが一覧表示され、サービスの入力フィールドと出力フィールドを選択できます。「指定値」というルールタイプを使用してフォームデータモデルサービスを呼び出し、そのサービスから返された出力に対するフィールドの値を設定することもできます。

例えば以下のルールの場合、従業員 ID を入力として使用する Get サービスが呼び出され、このサービスから返された値が、フォーム内の対応する扶養家族 ID フィールド、姓フィールド、名フィールド、性別フィールドに設定されます。

invoke-service

また、guidelib.dataIntegrationUtils.executeOperation API を使用して、ルールエディターのコードエディターで JavaScript を記述することもできます。

カスタム関数を使用したフォームデータモデル(FDM)の呼び出し invoke-form-data-model-using-custom-functions

カスタム関数を使用してルールエディターからフォームデータモデルを呼び出すことができます。フォームデータモデル(FDM)を呼び出すには、許可リストにフォームデータモデルを追加します。許可リストにフォームデータモデルを追加するには、次の手順を実行します。

  1. https://server:host/system/console/configMgr で Experience Manager web コンソールに移動します。
  2. サービス呼び出し用のフォームデータモデルのアダプティブフォームレベルの許可リスト登録 - 設定ファクトリ」を見つけます。
  3. プラスアイコン をクリックして設定を追加します。
  4. コンテンツパスパターン ​を追加して、アダプティブフォームの場所を指定します。デフォルトでは、値は /content/forms/af/(.*) で、すべてのアダプティブフォームが含まれています。特定のアダプティブフォームのパスを指定することもできます。
  5. フォームデータモデルのパスパターン ​を追加して、フォームデータモデル(FDM)の場所を指定します。デフォルトでは、値は /content/dams/formsanddocuments-fdm/(.*) で、すべてのフォームデータモデル(FDM)が含まれています。また、特定のフォームデータモデル(FDM)のパスを指定することもできます。
  6. 設定を保存します。

追加した設定は、「サービス呼び出し用のフォームデータモデルのアダプティブフォームレベルの許可リスト登録 - 設定ファクトリ」オプションに保存されます。

NOTE
AEM アーキタイププロジェクト経由でカスタム関数を使用してルールエディターからフォームデータモデル(FDM)を呼び出すには:
  1. 設定ファイルを作成します。
  2. getContentPathPattern および getFormDataModelPathPattern のプロパティを設定します。
  3. プロジェクトをデプロイします。

関連記事

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab