> Mobilité > Comprendre les Projected Fields

Comprendre les Projected Fields

Mobilité - Par Sébastien Sougnez - Publié le 27 janvier 2012
email

Nous allons utiliser des projected fields. En fait, quand vous allez effectuer la jointure, tous les champs des 2 tables seront présents, mais il faudra bien trouver une manière de savoir les afficher.

Consultez notre précédent dossier pour réaliser des jointures en CAML avec SharePoint 2010.

Ce dossier est issu de notre publication EIT Pro Magazine (05/11). Pour consulter les schémas et illustrations associés, rendez-vous dans le club abonnés.


Par exemple, actuellement, notre jointure lie la tableMonuments à la table Villes, mais comment faire pour récupérer le champ Title d’une de ces deux tables. Effectivement, ce champ existant dans les deux tables, il pourrait y avoir un risque de confusion. C’est donc là qu’interviennent les projected fields. Par défaut, seuls les champs de la première liste seront récupérés, il nous faudra ensuite "projeter" les champs de la deuxième liste pour pouvoir les récupérer. Tapez donc ce code à la suite du précédent : Voir Code 1 ci-dessous.

Nous allons ici définir quel champ dans la liste liée nous allons récupérer. La syntaxe est très simple. Chaque champ projeté sera identifié grâce à un élément Field. L’attribut Name permet de définir le nom qu’il aura au final dans l’objet model. Ici, nous ne pouvons pas mettreTitle étant donné que ce nom de champ est déjà utilisé pour le Title du monument. Nous devons ensuite définir que le type de ce champ est un Lookup. Ensuite, nous avons l’attribut List qui permet de définir de quelle liste nous récupérons le champ. Il faut ici faire passer l’alias de cette liste, nous faisons donc passer celui de la liste Villes. Ensuite, l’attribut ShowField permet de faire passer le nom du champ à récupérer dans la liste identifiée par l’attribut List. Le premier élément va donc récupérer le champ Title de la liste Villes et le placer dans un champ nommé VilleTitle. Le deuxième élément va récupérer le champ Superficie de la liste Villes et le placer dans le champ nommé VilleSuperficie.

Nous définissions ensuite l’élément ViewFields qui va permettre de définir quels champs seront renvoyés par la requête CAML : Voir Code 2 ci-dessous.

Nous récupérons donc ici tout simplement le champ nommé Title, le champ Entrepreneur, le champ VilleTitle et le champ VilleSuperficie. Vient ensuite le code permettant d’afficher tout cela dans la WebPart : Voir Code 3 ci-dessous.

Ce code n’est pas très compliqué. Nous utilisons l’objet query avec la méthode GetItems de la liste pour récupérer les éléments correspondant à la requête définie. Nous devons ensuite vérifier si le champ VilleSuperficie existe car cela n’est pas certain quand nous faisons une requête du type LEFT. Nous allons voir ça très prochainement. Nous récupérons ensuite le champ en faisant des opérations dessus car étant un champ du type Lookup, il renvoi ID;#Valeur, nous devons donc uniquement récupérer la partie Valeur, nous faisons donc un Substring depuis la position de ;# + 2.
 

 

Téléchargez gratuitement cette ressource

IBM Cloud Pak for Security : Quelles avancées avec IDC ?

IBM Cloud Pak for Security : Quelles avancées avec IDC ?

IBM Cloud Pak for Security est une plateforme de sécurité intégrée ouverte conçue pour fournir des éclairages approfondis sur les menaces pour plusieurs environnements. Découvrez comment obtenir des informations sur les menaces et les risques, orchestrer les actions, automatiser les réponses sans devoir faire migrer vos données.

Mobilité - Par Sébastien Sougnez - Publié le 27 janvier 2012