Dynamics365(Dataverse) エンティティ間の関連付けの考え方
こんにちは。
今回はエンティティ間の関連付けの考え方について説明します。
1.エンティティ間の関連付けについて
そもそもエンティティ間の関連付けとは、その名の通り各エンティティを関連付けることです。
これを行うとフォーム上に関連付けられたエンティティ内のレコードを用いて、必要な情報を表示させることができます。
そして、このエンティティ間の関連付けは[1:N][N:1][N:N]の3種類があります。
この3種類の考え方を理解して頂ければと思います。
2.[1:N]の関連付け
まず[1:N]の関連付けの考え方です。
上図のように取引先企業エンティティを1とするとその会社に対する取引先担当者エンティティはNにあたります。
この例は、“1”つの取引先企業対して、取引先担当者が“複数”人いる状態です。
簡単に言うと取引先企業会社Aに所属している取引先担当者が佐藤さん、田中さん、齋藤さん、高橋さん・・・といった具合です。
この関係性をDynamicsに反映させていきますが、重要なのはサブグリッドや関連ビューでしか表示できないことです。
なぜなら取引先企業に対して関連するレコード、ここではつまり取引先担当者が1人ではないためです。
したがって、関連するレコードを複数選択することができます。
これを実際にフォーム上に表すと上図のようになります。
基本的には前項の部分を基準に考えるので、ここでは[1:N]、つまり1の部分である取引先企業エンティティがそれにあたります。
そのためご覧のようにサイトマップ上の取引先企業エンティティを選択すると、フォーム内に取引先担当者が表示されております。
3.[N:1]の関連付け
続いて[N:1]の関連付けの考え方です。
上図のように取引先担当者がNで取引先企業が1にあたることは、先述の[1:N]と変わりはありません。
ただ、前項と後項が入れ替わっております。
したがってこの例は、“複数”の取引先担当者に対して、“1”つの取引先企業がある状態です。
つまり、「佐藤さん、田中さん、齋藤さん、高橋さん・・・は会社Aの取引先担当者だということ」を表しています。
ここで重要なのが、先ほどと違って検索フィールドで表示させることです。
なぜなら、取引先担当者に対して取引先企業は1つしか存在しえないからです。
したがって、関連するレコードは1つだけ選択できます。
これも実際にフォーム上に表すと上図のようになります。
今回は[N:1]、つまりNが前項であるため取引先担当者エンティティを選択しています。
したがって、御覧のように取引先担当者のフォーム上には所属する会社名が表示されています。
4.[N:N]の関連付け
最後に[N:N]の関連付けの考え方です。
上図のように、先ほどまでのNと同じ取引先担当者に対して、今回は新たなNとしてマーケティングリストを追加します。
したがって“複数”の取引先担当者に対して、“複数”のマーケティングリストとなります。
例にすると、
- 高橋さんへはキャンペーンAとキャンペーンBを展開しています。
- 田中さんへはキャンペーンAとキャンペーンCを展開しています。
上記は取引先担当者から見たマーケティングリストの見え方になります。
これを逆の例にすると、
- キャンペーンAを高橋さんと田中さんへ展開しています。
- キャンペーンBを高橋さんへ展開しています。
- キャンペーンCを田中さんへ展開しています。
以上がマーケティングリストから見た取引先担当者となります。
つまり、どちらからも情報を関連付けられるということです。
この関連付けは[1:N]と同じくサブグリッドや関連ビューでしか表示できません。
理由は、取引先担当者に対してマーケティングリストが1つでないためです。
また、マーケティングリストに対して取引先担当者が1つでないためです。
したがって関連するレコードは複数選択できます。
上図はマーケティングリストから見た画面です。
御覧のように取引先担当者関連ビューが表示されています。
次に、上図は取引先担当者からみた画面です。
御覧のようにマーケティングリスト関連ビューが表示されております。
5.まとめ
概念的であり、理解するのが少し難しい問題です。
しかし自分のものにすれば間違いなく、Dynamics365やPower Appsを使いこなせる第一歩を踏めるはずです。
私もまだまだ未熟なのでこれからも研鑽を積みたいと思います。