Partager via


Ajout d’associations entre des types de contenu externes

Dernière modification : mardi 4 mai 2010

S’applique à : SharePoint Server 2010

Dans cet article
Types d’association les plus courants : un-à-plusieurs
Associations et service BDC
Associations prises en charge dans SharePoint Designer 2010
Associations de types de contenu externes basés sur une base de données et sur un service Web
Choix d’un type de contenu externe pour la création de l’association
Association inversée
Affichage des associations dans l’interface utilisateur

Dans les scénarios réels, vous êtes souvent amené à rechercher des informations connexes ou complémentaires pour une entité commerciale spécifique. Par exemple, vous pouvez souhaiter rechercher des informations supplémentaires sur un profil client, telles que les dernières commandes passées par ce client ou les cinq produits qu’il achète le plus souvent. Microsoft Business Connectivity Services (BCS) permet d’associer deux types de contenu externes pour prendre en charge de tels scénarios. Le concept qui consiste à lier deux types de contenu externes connexes est appelé association.

Types d’association les plus courants : un-à-plusieurs

Le type d’association le plus courant est l’association un-à-plusieurs ou maître-détail. Pour reprendre l’exemple classique des commandes client, lorsque vous définissez une association, Business Connectivity Services autorise les scénarios suivants :

  • Pendant que vous consultez un profil client, vous pouvez voir les commandes soumises par ce client (rapport maître-détail).

  • Lorsque vous parcourez une commande, vous pouvez accéder aux détails du client qui l’a passée.

  • Lorsque vous créez une commande, vous devez lui affecter un client. Or, vous souhaitez avoir la possibilité de le sélectionner dans une liste de clients disponibles existants au lieu d’avoir à deviner la clé primaire (identificateur) du client dans le formulaire de création de commande. Une fois le client sélectionné, le nom du client doit s’afficher et non sa clé primaire.

  • Lorsque vous parcourez une commande, vous souhaiter voir plus de détails sur le client qui l’a passée (recherche inversée).

Associations et service BDC

Association est une instance de méthode du service Service BDC (Business Data Connectivity). Une association contient des pointeurs vers les types de contenu externes parent et enfant et un pointeur vers la logique métier (objet MethodInstance) qui permet à un client d’obtenir le type de contenu externe enfant à partir du type de contenu externe parent. La traversée d’une association est un appel de méthode sur le système externe.

Une instance de méthode Association contient des emplacements pour les valeurs d’identificateur de l’instance de SourceEntity, ainsi qu’un emplacement pour les valeurs d’identificateur des instances de DestinationEntity. Par conséquent, vous devez baliser suffisamment d’objets TypeDescriptor d’entrée avec des identificateurs qui correspondent à chaque identificateur de chaque type de contenu externe représentant une source dans l’Association de la méthode Association. L’attribut IdentifierName d’un objet TypeDescriptor d’entrée appelle le service BDC à insérer la valeur d’identificateur de l’EntityInstance appropriée avant d’exécuter la méthode. Par exemple, dans une AssociationMethodInstance, l’utilisateur a probablement fourni les valeurs d’identificateur pour l’EntityInstance source qu’il souhaite extraire. Le service BDC insérera cette valeur dans cet emplacement après avoir instancié intégralement ce paramètre en utilisant toutes les valeurs par défaut.

Dans le modèle BDC, la logique d’Association (MethodInstance) peut se trouver dans d’importe quel type de contenu externe (source ou de destination) ou un type de contenu externe non associé, si le type de contenu externe de destination appartient au LobSystem qui contient l’instance de méthode Association. Microsoft SharePoint Designer 2010 permet de créer des associations ; toutefois, elles doivent être définies dans le type de contenu externe de destination.

Le service BDC prend également en charge plusieurs scénarios de type de contenu externe source et un scénario de type de contenu externe de destination. SharePoint Designer 2010 ne prend pas en charge ce type d’association.

De même, le service BDC prend en charge les associations sans clé étrangère. Ces associations ne sont pas des associations de premier ordre. Prenons le cas d’une méthode Web qui renvoie un client (Customer), et l’un des champs de Customer est la clé permettant d’accéder à l’adresse (Address) de Customer. Envisagez également une autre méthode Web qui renvoie l’Address si sa clé est spécifiée. Vous pouvez utiliser cette méthode en tant que méthode Customer-AddressAssociation (éventuellement avec un SpecificFinder d’Address). Les pseudo-associations de clé étangère déterminent que la cible de cette méthode est une Address, recherchent la clé d’Address du client renvoyé (Returned Customer), puis appelle cette association Method pour renvoyer automatiquement l’Address.

Note AttentionAttention

Si le modèle BDC prend en charge les pseudo-associations de clé étrangère, il n’en va pas de même de SharePoint Designer 2010. Par conséquent, vous ne pouvez pas modéliser de pseudo-associations de clé étrangère à l’aide de SharePoint Designer.

Associations prises en charge dans SharePoint Designer 2010

Les types d’association que vous pouvez créer dans SharePoint Designer 2010Concepteur de type de contenu externe sont les associations un-à-plusieurs et les associations auto-référentielles, qui sont des instances associées du même type de contenu externe. Toutes ces associations sont basées sur une clé étrangère.

Pour créer des associations plusieurs-à-plusieurs sans clés étrangères ou des associations avec plusieurs types de contenu externe associés, vous devez les concevoir manuellement en utilisant un éditeur XML ou Visual Studio 2010. Pour voir Concepteur de type de contenu externe dans Visual Studio 2010 et visionner une démonstration de création d’associations, regardez la vidéo de Boris Scholl intitulée Using the SharePoint Business Data Connectivity Designer in VS 2010 (éventuellement en anglais).

Associations de types de contenu externes basés sur une base de données et sur un service Web

Dans le cas des types de contenu externes basés sur une base de données, l’association est créée au niveau d’une table, qui est la même table utilisée pour créer les autres opérations. Dans le cas des types de contenu externes basés sur un service Web, l’association est créée au niveau de la méthode Web appropriée. Pour plus d’informations, voir les rubriques suivantes :

Note AttentionAttention

Vous ne pouvez pas créer d’association inversée au niveau d’une table de base de données. Pour plus d’informations, voir Association inversée.

Choix d’un type de contenu externe pour la création de l’association

Lorsque vous serez prêt à créer une association, vous aurez déjà créé les deux types de contenu externes (avec les opérations Read Item et Read List correspondantes). SharePoint DesignerConcepteur de type de contenu externe vous permet de créer une association de façon déclarative comme vous le feriez pour n’importe quelle autre opération. Créez l’association dans le type de contenu externe qui contient la clé étrangère permettant d’accéder au type de contenu externe parent. Prenons pour exemple le scénario Commande client dans lequel un client passe plusieurs commandes. Chaque commande comporte un champ qui indique le nom du client qui a passé la commande, en plus des autres champs tels que Prix, Quantité et Date. Ce champ est le champ de clé étrangère, et comme cette information figure sur la commande, vous devez ouvrir le type de contenu externe Commande dans SharePoint Designer et y créer l’association.

Dans le cas d’un type de contenu externe basée sur une base de données, vous devez cliquer avec le bouton droit sur la même table que lorsque vous avez créé les autres opérations, puis créer l’association au niveau de cette table. Pour plus d’informations, voir Procédure : ajouter une association entre deux types de contenu externes basés sur une table de base de données. Dans le cas des types de contenus externes basés sur un service Web, vous devez cliquer avec le bouton droit sur la méthode conçue pour l’association. Pour plus d’informations, voir Procédure : ajouter une association entre deux types de contenu externes basés sur des services Web

Association inversée

La plupart du temps, vous devez disposer d’une association antérograde pour afficher les éléments associés (détail) d’un élément parent (maître) basé sur une clé étrangère. Cependant, vous êtes parfois tenu d’afficher l’élément maître pour un élément spécifique : tel est le cas lorsqu’il s’agit d’afficher le client auquel appartient une commande spécifique. Pour ce faire, vous devez créer une association inversée. Autrement dit, une association dans SharePoint Designer obtient plusieurs éléments pour le type de contenu externe, alors qu’une association inversée en obtient un seul pour le type de contenu externe associé.

Affichage des associations dans l’interface utilisateur

Après avoir créé une association entre deux types de contenu externes (voir Procédure : ajouter une association entre deux types de contenu externes basés sur une table de base de données, vous pouvez l’afficher dans l’interface utilisateur de SharePoint Designer 2010 et sur le site SharePoint aux emplacements suivants :

  • Formulaires de liste externe : les associations s’affichent distinctement dans les formulaires de liste externe. Par exemple, un sélecteur d’élément externe peut être utilisé pour sélectionner un client pour la commande. Vous pouvez désormais sélectionner un client dans une liste existante de clients pour ce formulaire. Si la liste externe est synchronisée à Outlook ou SharePoint Workspace, une version client enrichie du sélecteur s’affiche dans les formulaires, que vous pouvez également utiliser pour créer des commandes.

    Figure 1. Sélecteur d’élément externe

    Nouveau formulaire de commande avec sélecteur de client externe

    Dans les deux cas, vous pouvez afficher un nom complet convivial dans le contrôle de sélection d’élément externe après avoir sélectionné le client pour montrer quelque chose de plus explicite que le numéro identifiant le client dans le système externe (p.ex., le nom du client ou un champ marqué comme étant le champ de titre dans SharePoint Designer).

  • Pages de profil : comme vous pouvez le constater, après avoir défini une association, les commandes du client s’affichent dans la page de profil du client. De la même façon, dans la page de profil des commandes, si une association inversée est définie, vous pouvez l’utiliser pour naviguer et afficher des détails supplémentaires sur le client.

    Figure 2. Commandes dans la page de profil du client

    Liste des commandes du client

  • Composants WebPart Données métiers : les composants WebPart de liste associée Liste de données métiers et Données métiers tirent parti des associations et autorisent des scénarios intéressants comme celui illustré dans la figure 3. Le composant du haut Liste de données métiers y répertorie un ensemble de clients et affiche les commandes associées au client sélectionné dans le composant de liste associée Données métiers.

    Figure 3. Composants WebPart Données métiers

    Liste de données métiers et liste liée aux données métiers

Voir aussi

Tâches

Procédure : ajouter une association entre deux types de contenu externes basés sur des services Web

Procédure : ajouter une association entre deux types de contenu externes basés sur une table de base de données