Utiliser l'héritage et le polymorphisme sur des entités
Considérez par exemple que votre modèle de données contienne les entités suivantes : Company, Individual, Party et Product. Avec le Studio Talend, vous pouvez définir les types d'héritage pour lesquels Individual et Company étendent Party. Party devient un élément polymorphique contenant des individus et des entreprises.
Vous pouvez également définir dans l'entité Product une clé étrangère vers l'attribut supplier pointant vers l'entité Party. Ainsi, cette clé étrangère peut également pointer vers Individual ou Company puisqu'elles étendent toutes deux Party et agissent comme une clé étrangère polymorphique.
Avant de commencer
Vous devez déjà avoir créé votre modèle de données. Pour plus d'informations, consultez Créer un modèle de données.
Pourquoi et quand exécuter cette tâche
Pour mettre en œuvre l'héritage et le polymorphisme sur les entités, procédez comme suit :
Procédure
Que faire ensuite
Votre modèle de données doit ressembler à ceci :
Les entités Company et Individual étendent l'entité Party à l'aide du groupe PartyType. Tous les types complexes sont également listés dans le panneau Data Model Types.
Vous pouvez créer une clé étrangère polymorphique qui, en pointant vers l'entité Party, peut également pointer vers les entités Individual ou Company, puisqu'elles étendent toutes les deux Party.
-
Créez un attribut supplier dans l'entité Product.
Cliquez-droit sur supplier et sélectionnez Set the Foreign Key dans la liste.
Une boîte de dialogue s'ouvre.
-
Cliquez sur le bouton [...] et parcourez votre système afin de définir un chemin Xpath pour l'entité vers laquelle vous souhaitez que la clé étrangère pointe. Dans cet exemple, le chemin Xpath est configuré vers Party/code.
-
Cliquez sur Add puis sur OK.
Le chemin de la clé étrangère s'affiche sous l'attribut supplier.
Vous avez terminé l'héritage au niveau des entités en ajoutant le type de groupe Party aux entités Company et Individual.
Le polymorphisme est également terminé lorsqu'à l'exécution l'élément Party peut être développé dans les entités Individual ou Company, lorsqu'un utilisateur ou une utilisatrice métier crée un enregistrement de données via Talend MDM Web UI. les utilisateurs et utilisatrices métier ont également accès à une liste des clés étrangères affichant Individual et Company lorsqu'ils cliquent sur l'icône Select the relationship. Dans cette liste, ils peuvent choisir n'importe quel type étendu que vous avez défini dans le Studio Talend.
Par défaut, la liste des types complexes affiche le code de ces 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 plus compréhensibles et dans différentes langues dans la liste Select a type. Pour ce faire, procédez comme suit :
-
Ouvrez le modèle de données dans lequel vous avez défini ces types complexes.
-
Cliquez sur Schema Source en bas de l'éditeur afin d'ouvrir le schéma XML source du modèle de données.
-
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 ou l'utilisatrice métier.
-
Dans l'élément racine du type complexe, utilisez l'annotation X_Label_<ISO> pour le type étendu, comme suit :
... <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> ...
Dans le schéma ci-dessus, vous souhaitez renommer IndividualType en individual supplier et vous voulez qu'il soit le troisième dans la liste des types étendus.
-
Sauvegardez vos modifications dans l'éditeur de modèles.
Lorsque des utilisateurs et des utilisatrices métier autorisé·es parcourent des enregistrements de données maître dans le modèle de données mis à jour via Talend MDM Web UI, l'icône Select the relationship (Sélectionner la relation) leur donne accès à la liste des types étendus affichant les libellés définis dans les éléments d'annotations.