次の方法で共有


スーパー タイプおよびサブ タイプ

重要

Human Resources を使用している顧客の場合、この記事で説明した機能は、現在、スタンドアロン Dynamics 365 Human Resources とマージした Finance インフラストラクチャの両方で利用できます。 更新中は、記載されたナビゲーションと異なる場合があります。 特定のページを検索する場合は、検索を使用できます。

データ エンティティの継承パターンのサポートについて説明します。

パターン

継承を含むテーブルのエンティティを作成する方法はいくつかあります。

  • データ ソースとしてのリーフ/具象型: 具象型をデータソースとして使用すると、基本型と現在の型の両方のフィールドが表示されます。 たとえば、次のスクリーン ショットでは、DirPerson がデータ ソースである場合、DirPerson および DirPartytable の両方からのデータ ソース フィールドを表示します。

    sub1.

    sub2.

  • データ ソースとしての抽象タイプ/非リーフ: 非リーフ タイプをデータ ソースとして使用する場合、基準タイプと現在のタイプの両方にフィールドが表示されますが、派生型のフィールドは表示されません。 次のスクリーン ショットに示すように、派生型からのフィールドは派生データ ソースから追加される必要があります。

    sub3.

データ エンティティの表示ウィザード

データ エンティティ ビュー ウィザードを使用すると、継承に含まれるテーブルがプライマリ データ ソース (および追加データ ソース) である場所で、データ エンティティを作成することができます。

メモ

現在、ウィザードは派生データ ソースをサポートしていません。 現在の型または基本データ型からフィールドのみを表示します。 エンティティを作成した後、手動で派生データ ソースを表示するよう変更できます。

次のスクリーン ショットは、DirPartyTable がプライマリ データ ソースである、ウィザードを使用して作成されたデータ エンティティを示しています。

sub4.

  1. データ ソース テーブルを DirPartyTabl に更新します。

    sub5.

  2. データ ソース テーブルを DirPartyTable に更新します。

    sub6.

実行時間

継承に関連するエンティティの実行時動作があります。

指定したタイプのエンティティを作成しています

この例では、個別の個人および組織エンティティを作成します。 担当者 エンティティのプライマリ データ ソースは DirPerson で、組織 エンティティのプライマリ データ ソースは DirOrganization です。 この方法は、次のスクリーン ショットに反映されていますが、特別なランタイム コードを記述する必要はありません。

sub7.

sub8.

一般化されたタイプのエンティティを作成しています

この例では、単一のエンティティであるパーティを作成して、個人および組織の両方に使用できます。 プライマリ データ ソースが DirPartyTable で、派生データ ソースが DirPerson と DirOrganization です。 新しいエンティティには、次のようなフィールドが含まれています。

  • 一般的な属性 -個人または組織に固有ではない属性 (例: 名前) これらのフィールドは、DirPartyTable にマップされます。
  • 個人の固有の属性性別配偶者の有無など。 これらのフィールドは、派生データ ソース DirPartyTable_DirPerson にマップされます。
  • 組織に固有の属性OrgNumberABC などです。 これらのフィールドは、派生データ ソース DirPartyTable_DirOrganization にマップされます。

sub9.

デザイン時のタスクとして、ひとつのデータエンティティで基本型と複数の派生型のフィールドをマッピングします。 ただし、実行時に、各派生型が作成されるときを指定する必要があります。 これは、InstanceRelationType などのフィールドに基づいても、異なるタイプを表す String を使用するように計算カラムを作成もできます。 関係者エンティティの例で、PartyType 計算列を作成して個人および組織の派生型を表すことができます。 次のコード スニペットは、このアプローチを示しています。

sub10.

この例では、関係者タイプは DirPartyTable の InstanceRelationType 列を使用して計算されます。 この方法は、データを読み取るために機能します。 ただし、作成または更新操作を行うには、タイプに基づいて、データ エンティティの initializeEntityDataSource メソッドを上書きするコードを記述する必要があり、およびデータ ソースの実行時コンテキスト バッファに対する派生型の正しいインスタンスを設定する必要があります。

sub11.