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

Talend Data Fabric Studio ユーザーガイド

author
Talend Documentation Team
EnrichVersion
7.1
EnrichProdName
Talend Data Fabric
task
ジョブデザインと開発
EnrichPlatform
Talend Studio

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

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

始める前に

データモデルが作成済みであること。詳細は、データモデルの作成を参照して下さい。

このタスクについて

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

手順

  1. データモデル内にビジネスエンティティPartyを作成し、オプション[Complex type] (複合タイプ)[Sequence] (シーケンス)とともに、新規作成した複合タイプPartyTypeを選択します。詳細は、データモデルでのビジネスエンティティの作成を参照して下さい。
  2. Partyとそのグループタイプを展開し、デフォルトのエレメントを右クリックして、コンテキストメニューから[Edit Element] (エレメントの編集)を選択します。

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

  3. 名前をcodeに変更し、[OK]をクリックしてダイアログボックスを閉じます。
  4. [Complex type] (複合タイプ)と、新規作成した複合タイプCompanyTypeを選択して、ビジネスエンティティCompanyを作成します。CompanyTypeは既存の複合タイプPartyTypeを拡張するものです。

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

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

次のタスク

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. 複合タイプのルートエレメント内で、X_Label_<ISO>注釈を使用して、拡張タイプに次のようにラベルを追加します。

    ...
    <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>
    ...

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

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

承認済みのビジネスユーザーがTalend MDM Web UIを使用して更新されたデータモデル内のマスターデータレコードを参照するとき、アイコンを使用して、注釈エレメントで定義したラベルを表示する拡張タイプリストにアクセスすることができます。