Utiliser l'héritage et le polymorphisme sur des attributs - 7.1

Guide utilisateur de Talend Data Fabric Studio

author
Talend Documentation Team
EnrichVersion
7.1
EnrichProdName
Talend Data Fabric
task
Création et développement
EnrichPlatform
Studio Talend

Considérez, par exemple, que votre modèle de données contienne une entité nommée Person. Cette entité métier contient plusieurs attributs, dont Address. Cet attribut possède un type réutilisable principal, AddressType. Le Studio Talend vous permet de créer des types réutilisables d'héritage retournant une collection de nouveaux éléments lors de l'héritage des attributs de AddressType afin de retourner un format d'adresse spécifique à l'Europe et un autre spécifique aux Etats-Unis. Dans cet exemple, les types d'adresses d'Europe et des Etats-Unis étendent tous deux le type d'adresse générique.

Avant de commencer

Vous devez déjà avoir créé le modèle de données et les entités métier dans le modèle de données. Pour plus d'informations, consultez respectivement Créer un modèle de données et Créer des entités métier dans le modèle de données.

Pourquoi et quand exécuter cette tâche

Afin de mettre en œuvre l'héritage et le polymorphisme sur les attributs, procédez comme suit :

Procédure

  1. Développez successivement l'entité métier créée et le type de groupe. Cliquez-droit sur l'enregistrement de clé primaire par défaut et sélectionnez Edit Element dans le menu contextuel.

    Une boîte de dialogue s'affiche.

  2. Changez le nom en Id puis cliquez sur OK pour fermer la boîte de dialogue.
  3. Cliquez-droit sur Id, sélectionnez Add Element (after) dans le menu contextuel puis sélectionnez Add string Element.

    Ajoutez Firstname, Lastname, DOB, PostalCode, Resolution et Address comme attributs de l'entité Person, comme décrit dans Ajouter des attributs à l'entité métier.

    Votre modèle de données doit ressembler à ceci :

  4. Cliquez-droit sur Address et sélectionnez Change to a complex type dans la liste.

    Une boîte de dialogue s'affiche.

    Le type complexe vous permet de définir une structure complète, comme requis pour une adresse, et non un seul élément.

  5. Saisissez un nom pour le type complexe et sélectionnez l'option Sequence afin de lister les éléments d'adresse dans l'ordre défini.

    Cliquez sur OK pour valider vos changements et fermer la boîte de dialogue.

    Le type complexe s'affiche sous l'attribut Address et également dans le panneau Reusable types.

  6. Vous devez créer les éléments de votre adresse.
    Développez AddressType et renommez le sous-élément par défaut en Line1.
  7. Cliquez-droit sur Line1, sélectionnez Add Element (after) dans le menu contextuel puis sélectionnez Add string Element. Ajoutez deux autres éléments à l'adresse : Line2 et City.

    Les éléments des types d'adresses sont maintenant créés sous l'attribut Address et également dans le panneau Data Model Types.

    Vous devez créer le(s) type(s) d'héritage pour les adresses européennes et américaines. Le type EUAddresType étend le type principal AddressType en ajoutant un code postal et un pays et le type USAddressType étend le type principal AddressType en ajoutant un code postal et un état.

  8. Cliquez-droit sur le panneau Data Model Types et sélectionnez Create a Complex Type.

    Une boîte de dialogue s'affiche.

  9. Saisissez un nom pour le type d'héritage, EUAddressType dans cet exemple.
    Dans la liste des types complexes, sélectionnez le type principal duquel vous souhaitez hériter les éléments existants, AddressType dans cet exemple.
  10. Cliquez sur OK pour valider vos changements et fermer la boîte de dialogue.

    Le type d'héritage est créé dans le panneau Data Model Types avec un élément subelement par défaut.

    Ce type d'héritage obtiendra les trois éléments du type principal AddressType. Vous pouvez maintenant ajouter des éléments spécifiques à ce type afin d'avoir un format d'adresse complet pour l'Europe.

  11. Changez subelement en PostalCode puis ajoutez un élément Country.

    Suivez les mêmes étapes dans le panneau Data Model Types afin de créer un autre type d'héritage que vous nommez USAddressType, qui hérite du type principal AddressType. Ajoutez un élément ZipCode et un élément State afin de compléter le format d'adresse pour les Etats-Unis.

  12. Sauvegardez votre modèle de données.

Que faire ensuite

Vous avez terminé l'héritage en étendant un type existant (AddressType) pour ajouter des éléments spécifiques afin de compléter les adresses européennes et américaines lors de l'héritage des attributs du type principal d'adresse.

Le polymorphisme est également terminé lorsqu'à l'exécution l'instance courante de l'adresse d'une personne peut être un type EUAddressType ou USAddressType. Lorsque des utilisateurs métier autorisés parcourent des enregistrements de données maître via Talend MDM Web UI, le type concret de l'adresse pour l'enregistrement ouvert (Person) est automatiquement sélectionné. Les utilisateurs métier peuvent voir, dans un enregistrement ouvert, la liste pour l'attribut Address. Dans cette liste, ils peuvent choisir l'un des types complexes d'adresse que vous avez définis dans le Studio Talend.

Par défaut, la liste affiche le code des types, mais le Studio Talend vous permet également de définir des libellés pour les types complexes, afin qu'ils puissent avoir des libellés dans plusieurs langues et qu'ils deviennent compréhensibles lorsqu'ils sont affichés dans la liste.

Vous pouvez définir des libellés dans le panneau Data Model Types ou dans le schéma XML source du modèle de données.

Remarque : Vous pouvez définir l'ordre dans lequel vous souhaitez afficher les types étendus dans l'éditeur de schéma XML en ajoutant manuellement une annotation. Cette action n'est actuellement pas supportée dans l'interface graphique.

Pour définir des libellés pour les types complexes dans le panneau Data Model Types, procédez comme suit :

  1. Ouvrez le modèle de données dans lequel vous avez défini ces types complexes.

  2. Cliquez-droit sur le type complexe pour lequel vous souhaitez définir des libellés puis cliquez sur Set the labels.
  3. La boîte de dialogue Set the Labels s'ouvre.

    A partir de la liste de gauche, sélectionnez une langue puis, dans le champ de droite, saisissez un libellé correspondant à la langue sélectionnée.

  4. Cliquez sur le bouton [+] dans le coin supérieur droit afin d'ajouter le libellé défini à la liste Language/Label.

  5. Cliquez sur OK pour valider vos changements et fermer la boîte de dialogue.

    Les libellés sont affichés sous le nœud Annotations du type complexe.

Lorsque les utilisateurs métier autorisés parcourent les enregistrements de données maître dans le modèle de données mis à jour via Talend MDM Web UI, la liste d'attributs Address affiche les libellés de type complexe que vous avez définis dans les annotations.

Pour définir des libellés pour les types complexes dans le schéma XML source du modèle de données, procédez comme suit :

  1. Ouvrez le modèle de données dans lequel vous avez défini ces types complexes.

  2. Cliquez sur Schema Source en bas de l'éditeur afin d'ouvrir le schéma XML source du modèle de données.

  3. Parcourez la source jusqu'au schéma correspondant au type complexe étendu auquel vous souhaitez ajouter un libellé et que vous souhaitez afficher dans un ordre particulier pour l'utilisateur métier.

  4. Dans l'élément racine du type complexe, utilisez l'annotation X_Label_<ISO> pour ajouter un libellé au type étendu et l'annotation X_Order_Value pour définir l'ordre du type étendu, comme suit :

    ...
    <xsd:complexType name="EUAddressType">
     <xsd:annotation>
      <xsd:appinfo source="X_Label_EN">EU address format</xsd:appinfo>
        <xsd:appinfo source="X_Label_FR">format d'adresse UE</xsd:appinfo>
        <xsd:appinfo source="X_Order_Value">2</xsd:appinfo>
     </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="AddressType">
          <xsd:sequence maxOccurs="1" minOccurs="1">
            <xsd:element maxOccurs="1" minOccurs="1" name="PostalCode" type="xsd:string"/>
            <xsd:element maxOccurs="1" minOccurs="1" name="Country" type="xsd:string"/>
          </xsd:sequence>
        </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="USAddressType">
    <xsd:annotation>
       <xsd:appinfo source="X_Label_EN">US address format</xsd:appinfo>
       <xsd:appinfo source="X_Label_FR">format d'adresse US</xsd:appinfo>
       <xsd:appinfo source="X_Order_Value">1</xsd:appinfo>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AddressType">
        <xsd:sequence maxOccurs="1" minOccurs="1">
        <xsd:element maxOccurs="1" minOccurs="1" name="ZipCode"   type="xsd:string"/>
        <xsd:element maxOccurs="1" minOccurs="1" name="State" type="xsd:string"/>
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
    ...

    Dans le schéma ci-dessus, vous souhaitez renommer EUAddressType en EU Address format et vous voulez qu'il soit le deuxième dans la liste des types étendus. Vous souhaitez également renommer USAddressType en USaddressformat et vous souhaitez qu'il soit le premier dans la liste des types étendus.

  5. Sauvegardez vos modifications dans l'éditeur de modèles.

Lorsque des utilisateurs métier autorisés parcourent des enregistrements de données maître dans le modèle de données mis à jour via Talend MDM Web UI, la liste pour l'attribut Address affiche les libellés de type complexe dans les annotations ainsi que les types étendus, en respectant l'ordre que vous avez défini.