データモデルオブジェクトと子プロパティの作成

データモデルオブジェクトの作成

設定済みのデータソースからデータモデルオブジェクトを追加できますが、データソースのないデータモデルオブジェクトやデータモデルエンティティを作成することもできます。フォームデータモデル(FDM)でデータソースを設定していない場合は特に便利です。

データソースを使用せずにデータモデルオブジェクトを作成するには:

  1. Experience Manager オーサーインスタンスにログインして Forms/データ統合 ​に移動し、データモデルオブジェクトまたはデータモデルエンティティを作成するフォームデータモデル(FDM)を開きます。

  2. エンティティを作成」を選択します。

  3. データモデルを作成ダイアログで、データモデルオブジェクトの名前を指定して「追加」を選択します。データモデルオブジェクトがフォームデータモデル(FDM)に追加されます。以下の図に示すように、新しく追加されたデータモデルオブジェクトは、データソースには連結されません。また、プロパティも設定されません。

    new-entity

次に、バインドされていないデータモデルオブジェクトに子プロパティを追加できます。

子プロパティの追加

フォームデータモデルエディターを使用すると、データモデルオブジェクトで子プロパティを作成できます。作成時のプロパティは、データソース内のどのプロパティにもバインドされません。後で、データモデルオブジェクトを含む別のプロパティにこの子プロパティをバインドできます。

子プロパティを作成するには、以下の手順を実行します。

  1. フォームデータモデルでデータモデルオブジェクトを選択して「子プロパティを作成」を選択します。

  2. 子プロパティを作成 ​ダイアログで、 プロパティの名前とデータタイプをそれぞれ​ 名前 ​フィールドと​ タイプ ​フィールドに指定します。必要に応じて、プロパティのタイトルと説明を指定できます。

  3. プロパティが計算済みの場合は、「計算済み」を有効にします。計算済みプロパティの値は、ルールまたは式に基づいて評価されます。詳しくは、プロパティの編集を参照してください。

  4. データモデルオブジェクトがデータソースにバインドされている場合、追加された子プロパティは、同じ名前とデータタイプを持つ親データモデルオブジェクトのプロパティに自動的にバインドされます。

    子プロパティをデータモデルオブジェクトのプロパティに手動で連結するには、「参照をバインド」フィールドの横に表示されている参照アイコンを選択します。オブジェクトの選択 ​ダイアログには、親データモデルオブジェクトのすべてのプロパティが一覧表示されます。バインドするプロパティを選択し、チェックマークアイコンをクリックします。子プロパティと異なるデータタイプのプロパティを選択することはできません。

  5. 完了」を選択して子プロパティを保存し、「保存」を選択してフォームデータモデル(FDM)を保存します。これで、子プロパティがデータモデルオブジェクトに追加されました。

データモデルオブジェクトとプロパティを作成したら、続いて、アダプティブフォームをそのフォームデータモデル(FDM)に基づいて作成できます。データソースの設定が完了した時点で、フォームデータモデル(FDM)をデータソースにバインドできます。関連するアダプティブフォームでは、連結が自動的に更新されます。フォームデータモデル(FDM)を使用してアダプティブフォームを作成する方法については、フォームデータモデルの使用を参照してください。

データモデルオブジェクトとプロパティの連結

フォームデータモデル(FDM)に統合するデータソースが使用可能な状態になったら、データソースの更新に記載されている説明に従い、データソースをフォームデータモデル(FDM)に追加することができます。次に、バインドされていないデータモデルオブジェクトとプロパティを以下の手順でバインドします。

  1. フォームデータモデルで、データソースへのバインドの対象となるバインドされていないデータソースを選択します。

  2. プロパティを編集」を選択します。

  3. プロパティを編集 ​ペインで、バインド ​フィールドの横にある参照アイコンを選択します。フォームデータモデル(FDM)に追加されたデータソースを一覧表示する​ オブジェクトを選択 ​ダイアログが開きます。

    select-object

  4. データソースツリーを展開し、連結するデータモデルオブジェクトを選択してチェックマークアイコンを選択します。

  5. 完了」を選択してプロパティを保存し、「保存」を選択してフォームデータモデルを保存します。これで、データモデルオブジェクトがデータソースにバインドされました。これ以降は、データモデルオブジェクトに「連結されていない」というテキストが表示されることはありません。

    bound-model-object

サービスの設定

データモデルオブジェクトのデータの読み取りと書き込みを行うには、以下の手順を実行して、読み取りサービスと書き込みサービスを設定します。

  1. データモデルオブジェクト上部のチェックボックスを選択して「プロパティを編集」を選択します。

    edit-properties

    データモデルオブジェクトの読み取りサービスと書き込みサービスの設定を行う「プロパティを編集」

    プロパティを編集ダイアログが表示されます。

    edit-properties-2

    プロパティを編集ダイアログ

    メモ
    OData サービスのメタデータドキュメントには、データモデルオブジェクトとサービスのほかに、2 つのデータモデルオブジェクト間の関連付けを定義するナビゲーションプロパティが含まれます。OData サービスのデータソースをフォームデータモデル(FDM)に追加すると、データモデルオブジェクト内のすべてのナビゲーションプロパティに対し、フォームデータモデル(FDM)でサービスを使用できます。このサービスを使用して、対応するデータモデルオブジェクトのナビゲーションプロパティを読み取ることができます。
    このサービスの使用について詳しくは、「OData サービスのナビゲーションプロパティの操作」を参照してください。
  2. トップレベルオブジェクト ​を切り替えて、データモデルオブジェクトを最上位のモデルオブジェクトにするかどうかを指定します。

    フォームデータモデル(FDM)で設定したデータモデルオブジェクトは、そのフォームデータモデル(FDM)に基づくアダプティブフォームのコンテンツブラウザーの「データモデルオブジェクト」タブで使用できるようになります。2 つのデータモデルオブジェクト間の関連付けを追加すると、「データモデルオブジェクト」タブで、関連付け先のデータモデルオブジェクトが、関連付け元のデータモデルオブジェクトの下にネストされます。ネストされたデータモデルが最上位のオブジェクトである場合は、「データモデルオブジェクト」タブにもそのデータモデルが個別に表示されます。この場合、ネストされた階層の内側と外側に 1 つずつデータモデルのエントリが表示されるので、フォームの作成者が混乱する可能性があります。関連するデータモデルオブジェクトをネストされた階層内だけで表示するには、そのデータモデルオブジェクトの「トップレベルオブジェクト」プロパティを無効にします。

  3. 選択したデータモデルオブジェクトの読み取りサービスと書き込みサービスを選択します。サービスの引数が表示されます。

    read-write-services

    従業員データソースに対して設定されている読み取りサービスと書き込みサービス

  4. 読み取りサービスの引数に表示されている aem_6_3_edit を選択して、ユーザープロファイル属性、リクエスト属性またはリテラル値にその引数を連結し、連結値を指定します。

  5. 完了」を選択して引数を保存し、もう一度「完了」を選択してプロパティを保存します。次に、「保存」を選択してフォームデータモデル(FDM)を保存します。