エンティティ間で 1:N (一対多) の関連付けを作成する
このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 Power Apps ポータルを使用して 1 対多または多対 1 のエンティティ関連付けを作成、編集する
1:N の関連付けを作成する最も簡単な方法は、エンティティに新しい検索フィールドを作成することです。 これにより、検索フィールドの共通フィールドの値とともに、検索にタイプを設定して、2 つの追加オプションを簡単に設定できます。 これらの追加のフィールドはターゲット レコードの種類と関連付け名です。
ターゲット レコードの種類は、1:N の関連付けの主エンティティを選択します。 関連付け名は、関連付けに参加する 2 つのエンティティに基づいて自動生成されます。 通常これを編集する必要はありませんが、編集することもできます。 エンティティ関係の名前には、現在作業しているソリューションのソリューション発行者のカスタマイズの接頭辞が含まれます。
Note
カスタマイズの接頭辞を考慮する場合、自分で設定する接頭辞を持つソリューション発行者にリンクされているソリューションのコンテキストで作業していることを考慮にいれます。
ただし、検索フィールドを作成して 1:N の関連付けを作成すると、特定の既定値が自動的に設定されます。 関連付けで使用できるオプションの一部を編集する場合は、関連付けを見つけてそれを編集する必要があります。
カスタムの 1:N の関連付けは、すべてのエンティティに作成できるわけではありません。 作成できないときには、ソリューション エクスプローラーを使って新しいユーザー定義エンティティ関係を作成するオプションが存在しません。 メタデータ ブラウザーを使用する場合、CanBePrimaryEntityInRelationship
と CanBeRelatedEntityInRelationship
プロパティに応じてエンティティの一覧にフィルターを適用できます。
1:N の関連付けの定義には、関連付けの定義、検索フィールド、主エンティティのナビゲーション ウィンドウ項目、関連付け動作の 4 つの部分があります。
エンティティ間の 1:N の関連付けの作成または編集
ソリューション エクスプローラーを開きます。
コンポーネントで、エンティティを展開し、作業するエンティティを展開します。
1:N の関連付けを選択します。
関連付けを編集したり、関連付けの詳細を表示するには、関連付けを選択し、[操作] ツール バーで、その他の操作を選択してから、編集を選択します。
- または -
新しい関連付けを追加するには、新しい 1 対多関連付けを選択します。
重要
新しい 1 対多の関連付けが[操作] ツール バーに表示されない場合は、そのエンティティに対する 1:N の関連付けを作成できません。
新しい関連付けの場合、関連付けの定義セクションの関連エンティティの一覧で、関連付けるエンティティを選択します。
Note
関連エンティティの指定で、名前フィールドの既定値がセットされます。 保存する前に [関連エンティティ] を変更する場合、名前の値もそれに応じて変更されます。
これが検索可能であるかないかを選択します。
検索フィールドセクションで、表示名フィールドの値を指定します。
重要
表示名の指定で、名前フィールドの既定値がセットされます。 保存する前に検索フィールドの表示名を変更すると、名前フィールドの値は変更されません。 その結果名前を保存する前に適切であることを確認します。
フィールドの要件一覧で、レコードを保存する前にフィールドのデータ要求を指定するオプションを選択します。
主エンティティのナビゲーション ウィンドウ項目セクションの表示オプションの一覧で、関連ビューまたはユーザー定義のラベルを表示するオプションを選択します。
関連付け動作セクションの関連付けの種類リストで、次のいずれかのオプションを選択します。
上位下位。 2 つのテーブルの間に上位下位の関連付けがある場合は、親テーブルのレコードに対して実行されたアクションが、主 (親) テーブル レコードに関連する子テーブル レコードにも実行されます。 たとえば、親レコードの所有者は、子テーブル レコードへのアクセス権を継承しているため、親レコードが削除されると、すべての子レコードも削除されます。 親テーブル (P1) と子エンティティ (C1) の間の 1:N 親関係の場合、P1 レコードの所有者には、C1 子レコードへの継承されたアクセスが付与されます。
参照。 2 つのエンティティの間に参照の関連付けがある場合、関連する任意のレコードに移動できますが、一方のエンティティに対して実行したアクションが他方に影響することはありません。
参照、削除制限。 2 つのエンティティの間に参照、削除制限の関連付けがある場合、関連する任意のレコードに移動できます。 親レコードに対して実行されたアクションは子レコードに適用されませんが、子レコードが存在している間は、親レコードを削除することはできません。 関連レコードが存在する場合にレコードを削除することができないことに留意してください。
構成可能な伝播。 2 つのエンティティ間の構成可能な伝播する関連付けでは、一連の使用性のあるアクションのそれぞれに関連する動作を選択します。
重要
別の動作の種類と関連付けられたアクションに対する動作と一致するように、アクションに対する動作を設定する場合、関連付けを保存すると、動作の種類が他の種類に自動的に設定されます。
詳細: エンティティ関係付けの動作の構成
保存して閉じるを選択して "関連付け" フォームを閉じます。
カスタマイズが完了したら、公開します。
現在編集中のコンポーネントのみのカスタマイズを公開するには、[操作] ツール バーで、公開を選択します。
未公開のすべてのコンポーネントのカスタマイズを一度に公開するには、ナビゲーション バーまたはナビゲーション ウインドウで、エンティティを選択してから、[操作] ツール バーで、すべてのカスタマイズの公開を選択します。
Note
- 伝播する関連システム エンティティとの関連付けにおいて、カスタム エンティティを主エンティティにすることはできません。 つまり、主カスタム エンティティと関連システム エンティティの間の関連付けには、[すべてのレコードに伝播]、[アクティブ レコードのみに伝播]、または [同一所有者のレコードのみに伝播] のアクションを設定できません。
- アクションがすべてのレコードに伝播、アクティブ レコードのみに伝播、または同一所有者のレコードのみに伝播に設定された別の関連付けの関連エンティティとして、新しい関連付けの関連エンティティが既に存在する場合、新しい関連付けのアクションをすべてのレコードに伝播、アクティブ レコードのみに伝播、または同一所有者のレコードのみに伝播に設定することはできません。 これにより、複数の親関連付けを持つ関連付けの作成を防ぎます。
- ユーザー インターフェイス要素に変更を加えた場合、またはエンティティに対してフォーム スクリプトを実装した場合は、変更を公開して適用する必要があります。 ユーザー定義エンティティ、関連付け、フィールドなど、アプリのデータ スキーマを変更するカスタマイズは、直ちに適用されます。
- 関連付けがマネージド ソリューションの一部である場合、マネージド ソリューションの開発は関連付けのカスタマイズで制限できます。
- ソリューションをインストールまたはカスタマイズを公開すると、標準システム操作を妨げる可能性があります。 ソリューションのインポートは、ユーザーへの影響が最小限に留まるようにスケジューリングすることを推奨します。
関連付けの定義
ソリューション エクスプローラーの新しい 1 対多関連付けまたは新しい多対 1 関連付けのどちらを作成することを選択するかによって、主エンティティまたは関連エンティティフィールドがあらかじめ入力されます。 他の 1 つを選択するだけです。 名前フィールドの既定値は、ソリューション発行者のカスタマイズ接頭辞、および参加するように選択した関連付けのエンティティの名前に基づいてあらかじめ入力されます。 必要に応じて、この値を編集することもできます。 2 つのエンティティ間の複数のユーザー定義の関連付けを作成し、両方で同じカスタマイズ接頭辞を使用する場合、自動生成された名前の値は一意ではないので、新しい関連付けを保存することはできません。 保存する前に、既存の名前とは違う名前に編集する必要があります。 保存すると、その名前を変更することはできません。
エンティティ関係を高度な検索に表示させたくない場合は、検索可能の値をいいえに設定します。
検索フィールド
これらのフィールドは、検索可能、フィールド セキュリティ、および監査を除きすべてのフィールドにある一般的なプロパティです。 エンティティ関係で作成した検索フィールドのこれらの値を編集するには、エンティティ関係を作成した後に別に検索フィールドを見つけて編集する必要があります。 詳細: フィールドの作成と編集。
一般的に、表示名は、主エンティティの表示名に対応します。
主エンティティのナビゲーション ウィンドウ項目
主エンティティは、ナビゲーション ウィンドウを展開すると、関連エンティティの一覧を表示できます。 このグループのオプションは、この一覧を表示するかどうかまた表示する方法を制御します。 これらのナビゲーション項目はフォーム エディターを使用して編集でき、フォームが表示されると、JavaScript を使用して、開発者はこられ項目に対して変更を適用できます。
フィールド | 説明 |
---|---|
表示オプション |
-
表示しない: 関連エンティティ レコードの一覧への移動をユーザーに許可しない場合は、このオプションを選択します。 - カスタム ラベルを使用する: 使用するカスタム ラベルを指定する場合は、このオプションを選択します。 - 複数名を使用する: ラベルとして関連するエンティティに複数名を使用する場合は、このオプションを選択します。 |
カスタム ラベル | 表示オプションとしてカスタム ラベルを使用するを選択するときは、関連するエンティティの複数名の代わりに使用するユーザー定義のラベルを入力します。 |
表示領域 |
-
詳細: 共通グループにナビゲーション アイテムを追加する場合に選択します。 - マーケティング: マーケティング グループにナビゲーション アイテムを追加する場合に選択します。 - 営業: 営業グループにナビゲーション アイテムを追加する場合に選択します。 - サービス: サービス グループにナビゲーション アイテムを追加する場合に選択します。 |
表示順序 | この番号は、ナビゲーション アイテムが選択した表示領域のどこに含まれるかを制御します。 指定できる値の範囲は 10,000 から始まります。 値の小さいナビゲーション ウィンドウ項目は、値の大きい他の関係よりも上に表示されます。 |
関連付け動作
1:N の関連付けで、関連付けが組織の業務ルールをサポートする方法を制御できます。 そうする理由。 例を見てみましょう。
新しい営業担当者がいて、別の営業担当者に割り当てている既存の営業案件をその新しい営業担当者に割り当てると仮定します。 各営業案件レコードには、それに関連付けられた一連タスク活動があります。 以前の所有者に再割り当てしたいまたは新しい営業担当者に割り当てたいアクティブな営業案件を簡単に見つけることができます。 しかし、営業案件に関連付けられているタスク活動の場合にはどうですか。 各タスクを開き、新しい営業担当者に割り当てるかどうかを一つずつ考慮したいですか。 したくないでしょう。 その代わり、関連付けが標準規則を自動的に適用するようにできます。 これらの規則は再割り当てする営業案件に関連付けられているタスク レコードにのみ適用されます。 エンティティ関係には、Opportunity_Tasks という名前が付けられます。 次のオプションがあります。
すべてのタスク活動を再割り当てします。
すべてのタスクを再割り当てします。 これが既定の動作です。
タスクを全く再割り当てしません。
現時点では、すべてのタスクを営業案件の以前の所有者に再割り当てします。
関連付けは、主エンティティ レコードのレコードで実行された操作が関連するすべてのエンティティ レコードにどのように伝播するかを制御できます。 操作と可能な動作は、次の表に示されます。
アクション | 説明 | 可能な動作 |
---|---|---|
割り当て | 主エンティティ レコードの所有権を変更すると、どうなりますか。 | - アクティブにカスケード - すべてにカスケード - カスケードなし - 同一所有者のレコードのみに伝播 |
共有 | 主エンティティ レコードが共有されると、どうなりますか。 | - アクティブにカスケード - すべてにカスケード - カスケードなし - 同一所有者のレコードのみに伝播 |
共有の解除 | 主エンティティ レコードの共有がなるくると、どうなりますか。 | - アクティブにカスケード - すべてにカスケード - カスケードなし - 同一所有者のレコードのみに伝播 |
リペアレント | 主エンティティ レコードの上位下位タイプの関連付けの検索フィールドの値が変更されると、どうなりますか。 上位下位タイプの関連付けはすべての種類の操作にすべてのレコードに伝播を使用します。 - アクティブにカスケード - すべてにカスケード - カスケードなし - 同一所有者のレコードのみに伝播 |
|
削除 | 主エンティティ レコードが削除されると、どうなりますか。 | - すべてにカスケード - リンクの削除 - 削除制限 |
結合 | 主エンティティ レコードが別のレコードと統合されると、どうなりますか。 | - すべてにカスケード - カスケードなし |
これらの各操作を構成して、1:N のエンティティの関連付けによって、操作が主エンティティ レコードに関連付けられるレコードに伝播する方法を制御できます。 次の表に動作のオプションを示します。
動作 | 説明 |
---|---|
アクティブ レコードのみに伝播 | すべてのアクティブな関連エンティティ レコードで操作を実行します。 |
すべてのレコードに伝播 | すべての関連エンティティ レコードで操作を実行します。 |
伝播しない | 何もしません。 |
関連付けの解除 | すべての関連エンティティ レコードの検索フィールドの値を削除します。 |
削除の制限 | 関連レコードが存在するときは、主エンティティ レコードが削除されないようにします。 |
同一所有者のレコードのみに伝播 | 主エンティティ レコードと同じユーザーによって所有されているすべての関連エンティティ レコードで操作を実行します。 |
関連付け内でこれらの操作が適用される方法は、次の表で説明されている動作の種類フィールドの値を使用して、分類されるか適用されます。
フィールド値 | 内容 |
---|---|
上位下位 | すべての操作は、すべてのレコードに伝播動作を使用します。 |
参照 |
割り当て、共有、共有の解除とリペアレントは、伝播しない動作を使用します。 削除は関連付けの解除動作を使用します。 マージはすべてのレコードに伝播動作を使用します。 |
参照、削除制限 | 削除が削除制限動作を使用すること以外は、参照と同様。 |
構成可能な伝播 | 個々の動作を、各操作に対して割り当てることができます。 選択が他の動作の種類のカテゴリのどれかと一致する場合、値は動作の種類の値に変更されます。 |
設定できる動作の制限
エンティティ関係を定義するときを覚えておく必要があるいくつかの制限があります。
伝播する関連システム エンティティとの関連付けにおいて、ユーザー定義エンティティを主エンティティにすることはできません。 つまり、主ユーザー定義エンティティと関連システム エンティティの間の関連付けには、すべてのレコードに伝播、アクティブ レコードのみに伝播、または同一所有者のレコードのみに伝播のアクションを設定できません。
アクションがすべてのレコードに伝播、アクティブ レコードのみに伝播、または同一所有者のレコードのみに伝播に設定された別の関連付けの関連エンティティとして、新しい関連付けの関連エンティティが既に存在する場合、新しい関連付けのアクションをすべてのレコードに伝播、アクティブ レコードのみに伝播、または同一所有者のレコードのみに伝播に設定することはできません。 これにより、複数の親関連付けを持つ関連付けの作成を防ぎます。
結合の伝播は設定や変更ができず、参照されるエンティティに依存します。 参照先エンティティが取引先企業、取引先担当者、潜在顧客のいずれかである場合は、操作が伝播されます。 それ以外の場合は伝播されません。