異なるディメンション パターンをサポート

さまざまな分析コードのパターンをサポートするために、分析コードを含む他のエンティティのデータ ソースとして使用できる一連のフレームワーク データ エンティティが作成されています。

SFK とナチュラル キー

さまざまな分析コードのパターンをサポートするために、分析コードを含む他のエンティティのデータ ソースとして使用できる一連のフレームワーク データ エンティティが作成されています。 データ エンティティのこの入れ子が発生すると、分析コードのデータ エンティティの代理外部キー (SFK) およびナチュラル キーは別に処理されます。 次の表では、違いについて説明します。

キー タイプ アクセス モディファイア ディメンション エンティティが別のエンティティのデータ ソースである場合の説明
SFK private 任意の SFK と同様に、分析コードの SFK は外部データ エンティティでプライベート フィールドとして定義されます。
ナチュラル キー public 分析コード エンティティのナチュラル キーは、分析コード属性値のパブリック文字列として公開されます。 値は連結されていますが、アカウント デリミタで区切られています。 アカウントの区切り記号は、パーティションごとに定義されます。 連結された文字列が表示値として使用されます。 このドキュメントで後で説明するように、エンティティの一部のフィールドに接尾語として “DisplayValue” という句が追加さます。

読み取りおよび書き込み

読み取り: 外部データ エンティティの読み取りでは、フレームワークの分析コードのエンティティを使用して、パブリック表示値が計算列から取得されます。 読み取りは計算列が使用されるため、エクスポート シナリオでは X++ ロジックは必要ありません。 書き込み: 作成またはエンティティ インスタンスの値の更新で、公開表示値は、プライベート フィールドと一致するように SFK に解決されます。

DimensionEntityTestEntity は、1 つ以上の分析コード パターンを持つテスト エンティティです。 既定の分析コードについては、DimensionDefault および DimensionDefaultDisplayValue フィールドに注目し、残りは無視できます。

読み取りの例

例の読み取り。

例の記述

エンティティは既定の分析コード フィールド、DimensionDefaultDisplayValue を公開します。 これは、表示値フィールドです。 このフィールドは、ユーザー インターフェイスのセグメント化された入力コントロールのような、連結された文字列値に設定することができます。

例の記述。 DisplayValue は、実行時に DefaultDimension に解決されます。

ウィザードを使用してエンティティを作成する

このセクションでは、ウィザードを使用してデータ エンティティを作成する方法について説明します。 そのウィザードを使用することをお勧めします。 分析コードの SFK フィールドを選択することのみ必要です。 ウィザードは、必要なデータ ソース、フィールド、リレーションをすべて正しく設定します。

  1. ファイル > 新規 > プロジェクトをクリックし、新しいプロジェクトを作成します。

  2. ソリューション エクスプローラーで、プロジェクトを右クリックしてからプロパティをクリックします。 プロジェクトの プロパティ ページ ダイアログ ボックスが開きます。

  3. プロパティ ページ ダイアログ ボックスで、次の手順に従います。

    1. モデルプロパティの値をアプリケーション スイート単体テストに変更し、OK をクリックします。 このプロパティはプロジェクトごとに 1 回のみ設定する必要があります。
    2. ビルドでのデータベースの同期プロパティの値を True に変更し、OK をクリックします。 このプロパティはプロジェクトごとに 1 回のみ設定する必要があります。

    プロジェクト プロパティの設定。

  4. DimensionTestEntity という名前の新しいエンティティを作成し、プロジェクトに追加します。 追加 ボタンをクリックすると、データ エンティティ ビュー ウィザードが起動します。 インストール済み で、Dynamics 365 アーティファクト を選択してから データ モデル を選択します。 リストから データ エンティティ を選択します。 注記: データ エンティティおよびその他の項目について説明する名前付け規則のドキュメントは発展し続けています。

  5. 次のスクリーン ショットに表示される作成するデータ エンティティのプロパティ値を指定します。 注記: 最も重要なフィールドは DimensionEntityTestTable を選択するプライマリ データ ソースです。

    エンティティ プロパティの設定。 次へをクリックします。

  6. プライマリ データ ソース、DimensionEntityTestTable からエンティティにフィールドを追加します。

    1. すべてのフィールドの選択を解除するには、すべて選択チェック ボックスをオフにします。

      すべてのフィールドの選択解除。

    2. 次の各フィールドのチェック ボックスを手動で選択します。

      • FieldDimensionDefault
      • FieldAlternativeKey

      エンティティのフィールドの選択。

    3. 新しいデータ エンティティをプロジェクトに追加するには、完了をクリックします。 エンティティのノードは、ソリューション エクスプローラーで表示されます。

      ソリューション エクスプ ローラー内のエンティティ ノード。

  7. ビルド > ソリューションのビルドをクリックし、プロジェクトを構築します。

  8. エラー ウィンドウで、エラーなくビルドが完了したことを確認します。 プロセスのこのステージでは、警告が容認されます。

  9. DimensionTestEntity のプロパティを検証します。 ソリューション エクスプローラーで、DimensionTestEntity ノードを選択し、プロパティ ウィンドウの値を、次のスクリーンショットの値と比較します。

    プロパティ。

  10. ソリューション エクスプローラーで、DimensionTestEntity ノードを右クリックしてから開くをクリックします。 エンティティのデザイナーが中央のウィンドウに開きます。

    エンティティ デザイナー。

  11. DimensionTestEntity のデザイナーで、フィールド > FieldDimensionDefaultDisplayValue と展開し、FieldDimensionDefaultDisplayValue フィールドのノードを選択します。

  12. プロパティ ウィンドウで、AccessModifier プロパティの値をプライベートからパブリックに変更します。

    AccessModifier プロパティの設定。

  13. データ エンティティで persistEntity メソッドをオーバーライドし、次の X++ コードを入力します。

    persistEntity のコード。

  14. テストでは、既存の単位テスト クラス、DimensionEntityTest を参照してください。

既定の分析コードを手動で構成して理解する

このセクションでは、新しいエンティティに分析コード データソースを追加する方法について説明します。 新しいエンティティでは、分析コード テーブルの分析コード表示値が必要です。

  1. 新しいエンティティで、次のスクリーン ショットに表示されるプロパティ値が含まれるデータ ソースを作成します。 特に、次の表に記載されているプロパティの設定を確認します。

    プロパティ名 プロパティ値 説明
    追加を許可
    読み取り専用です。
    結合モード OuterJoin
    氏名 FieldDimensionDefaultDAVS 値は、4 文字のリテラル「DAVS」をデータ ソースの SFK フィールドの名前に追加することによって導出されます。
    テーブル DimensionSetEntity データ ソースのデータ エンティティに選択した名前。 ここで示される値、DimensionSetEntity は、DefaultDimension パターンのフレームワーク分析コード データ エンティティです。

    データ ソース プロパティ。

  2. 分析コード SFK のプライベート フィールドを作成します。 このエンティティ フィールドでは、ソース フィールドは、FieldDimensionDefaultSFK フィールドです。

    FieldDimensionDefault フィールド。

  3. 分析コード表示値のパブリック フィールドを作成し、前の手順で作成したデータ ソースにバインドします。 分析コード表示値フィールドの名前は、12 文字のリテラル「DisplayValue」が付加されるプライベート フィールド名である必要があります。

    FieldDimensionDefaultDisplayValue フィールド。

  4. エンティティ リレーションを追加します。 エンティティ リレーションはエンティティ間の OData ナビゲーションを有効にします。 リレーションの名前は、「DimensionSet」が付加されたプライベート分析コード フィールド名の名前にする必要があります。 DimensionSetEntity のパブリック名は DimensionSet です。 したがって、そのエンティティへのナビゲーションには意味のある名前が必要です。 適切な選択は、SFK に "DimensionSet"をたした分析コードの名前です。

    新規エンティティ リレーション。

  5. persistEntity メソッドをオーバーライドし、次の X++ コードを入力します。

    persistEntity メソッドを上書きします。