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 フィールドを選択することのみ必要です。 ウィザードは、必要なデータ ソース、フィールド、リレーションをすべて正しく設定します。
[ファイル>新規作成>プロジェクトを選択して新しいプロジェクトを作成します。
ソリューション エクスプローラーで、プロジェクトを右クリックしてから [プロパティ] を選択します。 プロジェクトの プロパティ ページ ダイアログ ボックスが開きます。
プロパティ ページ ダイアログ ボックスで、次の手順に従います。
- Model プロパティの値を Application Suite 単体テストに変更し、[OK] を選択します。 このプロパティは、プロジェクトごとに 1 回だけ設定します。
- [ビルド時にデータベースを同期する] プロパティの値を True に変更し、[OK] を選択します。 このプロパティは、プロジェクトごとに 1 回だけ設定します。
DimensionTestEntity という名前の新しいエンティティを作成し、プロジェクトに追加します。 [追加] を選択すると、データ エンティティ ビュー ウィザードが起動します。 [ インストール済み] で、[ Dynamics 365 Artifacts] を選択し、[ データ モデル] を選択します。 リストから データ エンティティ を選択します。
Note
名前付け規則ドキュメントは、データ エンティティやその他の項目を扱う進化しています。
次のスクリーンショットに示すように、作成するデータ エンティティのプロパティ値を指定します。
Note
最も重要なフィールドは プライマリ データ ソースで、 DimensionEntityTestTable を選択します。
プライマリ データ ソース、DimensionEntityTestTable からエンティティにフィールドを追加します。
[ ビルド>ビルド ソリューション ] を選択してプロジェクトをビルドします。
エラー ウィンドウで、エラーなくビルドが完了したことを確認します。 プロセスのこのステージでは、警告が容認されます。
DimensionTestEntity のプロパティを検証します。 ソリューション エクスプローラーで DimensionTestEntity ノードを選択し、[プロパティ] ペインの値を次のスクリーンショットの値と比較します。
ソリューション エクスプローラーで、DimensionTestEntity ノードを右クリックし、[開く] を選択します。 エンティティのデザイナーが中央のウィンドウに開きます。
DimensionTestEntity のデザイナーで、フィールド>FieldDimensionDefaultDisplayValue と展開し、FieldDimensionDefaultDisplayValue フィールドのノードを選択します。
プロパティ ウィンドウで、AccessModifier プロパティの値をプライベートからパブリックに変更します。
データ エンティティで persistEntity メソッドをオーバーライドし、次の X++ コードを入力します。
テストでは、既存の単位テスト クラス、DimensionEntityTest を参照してください。
既定の分析コードを手動で構成して理解する
このセクションでは、新しいエンティティに分析コード データソースを追加する方法について説明します。 新しいエンティティでは、分析コード テーブルの分析コード表示値が必要です。
新しいエンティティで、次のスクリーンショットに示すプロパティ値を持つデータ ソースを作成します。 特に、次の表に記載されているプロパティの設定を確認します。
プロパティ名 プロパティ値 Description 追加を許可 No 読み取り専用です。 Yes 結合モード OuterJoin Name FieldDimensionDefaultDAVS 値は、4 文字のリテラル「DAVS」をデータ ソースの SFK フィールドの名前に追加することによって導出されます。 Table DimensionSetEntity データ ソースのデータ エンティティに対して選択する名前。 ここで示される値、DimensionSetEntity は、DefaultDimension パターンのフレームワーク分析コード データ エンティティです。 分析コード SFK のプライベート フィールドを作成します。 このエンティティ フィールドでは、ソース フィールドは、FieldDimensionDefaultSFK フィールドです。
分析コード表示値のパブリック フィールドを作成し、前の手順で作成したデータ ソースにバインドします。 分析コード表示値フィールドの名前は、12 文字のリテラル「DisplayValue」が付加されるプライベート フィールド名である必要があります。
エンティティ リレーションを追加します。 エンティティ関係により、エンティティ間の OData ナビゲーションが可能になります。 リレーションシップの名前は、"DimensionSet" が追加されるプライベート ディメンション フィールド名の名前です。 DimensionSetEntity のパブリック名は DimensionSet です。 したがって、そのエンティティへのナビゲーションには意味のある名前が必要です。 適切な選択は、SFK に "DimensionSet"をたした分析コードの名前です。
persistEntity メソッドをオーバーライドし、次の X++ コードを入力します。