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

Note

コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engage コミュニティに参加し、最新のディスカッションに参加するには、「 Finance and Operations Viva Engage Community へのアクセスを要求する 」フォームに入力し、参加するコミュニティを選択します。

さまざまなディメンション パターンをサポートするには、ディメンションを含む他のエンティティのデータ ソースとして一連のフレームワーク データ エンティティを使用します。

SFK と自然キー

これらのフレームワーク データ エンティティを入れ子にすると、ディメンション データ エンティティのサロゲート外部キー (SFK) と自然キーは異なる方法で処理されます。 次の表では、違いについて説明します。

キー タイプ アクセス モディファイア ディメンション エンティティが別のエンティティのデータ ソースである場合の説明
SFK 非公開 SFK と同様に、外部データ エンティティのディメンションの SFK をプライベート フィールドとして定義します。
ナチュラル キー 公開 ディメンション エンティティの自然なキーをディメンション属性値の公開文字列として公開します。 値を連結しますが、アカウント区切り記号で区切ります。 パーティションごとにアカウント区切り記号を定義します。 連結された文字列を表示値として使用します。 このドキュメントで後述するように、エンティティの一部のフィールドにサフィックスとして "DisplayValue" という語句を追加します。

読み取りおよび書き込み

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

例示

DimensionEntityTestEntity は、1 つ以上の分析コード パターンを持つテスト エンティティです。 既定のディメンションの場合は、 DimensionDefault フィールドと DimensionDefaultDisplayValue フィールドに注目し、残りのフィールドは無視します。

読み取りの例

読み取り例のスクリーンショット。

例の記述

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

書き込み例のスクリーンショット。 DisplayValue は実行時に DefaultDimension に解決されます。

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

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

  1. [ファイル>新規作成>プロジェクトを選択して新しいプロジェクトを作成します。

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

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

    1. Model プロパティの値を Application Suite 単体テストに変更し、[OK] を選択します。 このプロパティは、プロジェクトごとに 1 回だけ設定します。
    2. [ビルド時にデータベースを同期する] プロパティの値を True に変更し、[OK] を選択します。 このプロパティは、プロジェクトごとに 1 回だけ設定します。

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

  4. DimensionTestEntity という名前の新しいエンティティを作成し、プロジェクトに追加します。 [追加] を選択すると、データ エンティティ ビュー ウィザードが起動します。 [ インストール済み] で、[ Dynamics 365 Artifacts] を選択し、[ データ モデル] を選択します。 リストから データ エンティティ を選択します。

    Note

    名前付け規則ドキュメントは、データ エンティティやその他の項目を扱う進化しています。

  5. 次のスクリーンショットに示すように、作成するデータ エンティティのプロパティ値を指定します。

    Note

    最も重要なフィールドは プライマリ データ ソースで、 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. 新しいエンティティで、次のスクリーンショットに示すプロパティ値を持つデータ ソースを作成します。 特に、次の表に記載されているプロパティの設定を確認します。

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

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

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

    FieldDimensionDefault フィールド。

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

    FieldDimensionDefaultDisplayValue フィールド。

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

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

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

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