# エンティティでの継承とポリモーフィズムを使用

Availability-note[非推奨](https://help.talend.com/r/en-US/Cloud/labels-on-talend-help-center/availability-deprecated)

このコンテンツは非推奨になりました。

利用対象...

* Data Fabric
* MDM Platform
* Qlik Talend Cloud Enterprise Edition
* Qlik Talend Cloud Premium Edition

データモデルにCompany、Individual、Party、Productというエンティティを含めることができる例を考えてみます。Talend Studioでは、IndividualとCompanyがどちらもPartyを拡張するという継承タイプを定義できます。Partyは、個人と会社を含むポリモーフィックエレメントになります。

Productエンティティで、Partyエンティティをポイントする外部キーをsupplier属性内に定義することもできます。したがって、この外部キーはIndividualまたはCompanyをポイントすることもできます。どちらもPartyを拡張し、ポリモーフィックな外部キーとして機能するからです。

## 始める前に

データモデルが作成済みであること。詳細は、[データモデルを作成](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/creating-data-model)をご覧ください。

## このタスクについて

エンティティに継承とポリモーフィズムを作成するには、以下のようにします:

## 手順

1. データモデル内にビジネスエンティティPartyを作成し、オプション[Complex type] (複合型)と[Sequence] (シーケンス)と共に、新規作成した複合型PartyTypeを選択します。詳細は、[データモデルにビジネスエンティティを作成](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/creating-business-entities-in-data-model)をご覧ください。
2. Partyとそのグループタイプを展開し、デフォルトのエレメントを右クリックして、コンテキストメニューから[Edit Element] (エレメントの編集)を選択します。

   ダイアログボックスが表示されます。

   ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly.png)
3. 名前をcodeに変更し、OKをクリックしてダイアログボックスを閉じます。
4. [Complex type] (複合型)と、新規作成した複合型CompanyTypeを選択して、ビジネスエンティティCompanyを作成します。CompanyTypeは既存の複合型PartyTypeを拡張するものです。

   これによってPartyTypeがグループタイプとしてCompanyの下に追加されます。ここでは、ユーザーがエンティティCompanyとPartyの間に継承を定義しており、CompanyがPartyを拡張する関係です。

   ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly1.png)
5. Companyとそのグループタイプを展開し、デフォルトのエレメントをnameに変更します。必要になるのは会社の名前のみです。
6. 同じようにしてエンティティIndividualとPartyの間に継承を定義します。IndividualがPartyを拡張する関係です。
7. Individualエンティティのグループタイプ内に2つの属性を定義します: firstNameおよびlastName。1人の個人にこれら2つのエレメントが必要です。
8. [Complex type] (複合型)オプションと[All] (すべて)オプションを使用して、Productビジネスエンティティを作成します。
9. 2つ新しいエレメント、idおよびnameを製品エンティティに追加します。

## 次のタスク

データモデルは次の図のようになります。

![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly2.png)

エンティティCompanyおよびIndividualは、PartyTypeグループを使用してPartyエンティティを拡張します。複合型はすべて、[Data Model Types] (データモデルタイプ)パネルにもリスト表示されます。

ここで、ポリモーフィックな外部キーを作成できます。この外部キーは、エンティティPartyをポイントすることにより、エンティティIndividualまたはCompanyもポイントできます。どちらもPartyを拡張するからです。

1. Productエンティティ内にsupplier属性を作成します。

   supplierを右クリックし、リストから[Set the Foreign Key] (外部キーの設定)を選択します。

   ダイアログボックスが表示されます。

   ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly3.png)

2. [...]ボタンをクリックし、移動して、外部キーのポイント先とするエンティティにXpathを設定します。この例では、XpathはParty/codeに設定されています。

3. [Add] (追加)をクリックし、OKをクリックします。

   外部キーのパスがsupplier属性の下にリスト表示されます。

   ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly4.png)

PartyグループタイプをエンティティCompanyおよびIndividualに追加することにより、ここでエンティティレベルで継承を達成しました。

ポリモーフィズムは、実行時に、ビジネスユーザーがTalend MDM Web UIを使用してデータレコードを作成しようとした時に、実際のPartyエレメントをIndividualまたはCompanyに拡張できる場合にも達成されます。ビジネスユーザーは、[Select the relationship] (関係を選択)アイコンをクリックした時に、[Individual] (個人)および[Company] (会社)を表示する外部キーリストにもアクセスできます。ビジネスユーザーはこのリストから、Talend Studioで定義済みの任意の拡張タイプを選択できます。

![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly5.png)

デフォルトでは、複合型のリストにはタイプのコードが表示されますが、Talend Studioでは複合型のラベルを定義することもできます。そのため、複数の言語でラベルを設定でき、[Select a type] (タイプを選択)リストに表示した際にわかりやすくなります。この操作を行うには、以下のようにします:

1. 複合型を定義したデータモデルを開きます。

   ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly6.png)

2. エディターの下部で[Schema Source] (スキーマソース)をクリックし、データモデルのソースXMLスキーマを開きます。

   ![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly7.png)

3. ラベルを追加し、ビジネスユーザーに特定の順序で表示しようとしている拡張複合型に対応するスキーマに移動します。

4. 複合型のルートエレメント内で、X\_Label\_&lt;ISO&gt;注釈を使用して、拡張タイプに次のようにラベルを追加します。

   ```
   ...
   <xsd:complexType name="IndividualType">
    <xsd:annotation>
     <xsd:appinfo source="X_Label_EN">individual supplier</xsd:appinfo>
       <xsd:appinfo source="X_Label_FR">fournisseur individuel</xsd:appinfo>
    </xsd:annotation>
     <xsd:complexContent>
   ...
   ```

   上記のスキーマで、IndividualTypeにindividual supplierという名前を付け、拡張タイプのリストで3番目に置くという想定です。

5. 変更をモデルエディター内に保存します。

承認済みのビジネスユーザーがTalend MDM Web UIを介してアップデートされたデータモデル内のマスターデータレコードを参照する時、[Select the relationship] (関係を選択)アイコンを使用して、注釈エレメントで定義したラベルを表示する拡張タイプリストにアクセスできます。

![](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Inheritance_Poly8.png)