SharePoint 2007 : BDC - Ajout de "Specific Finder"

Ce post fait partie d'une série d'articles dédiés à la présentation du BDC (Business Data Catalog) ou Catalogue de Données Métier dans SharePoint 2007. Cette fonctionnalité, plus complexe à maitriser qu'elle n'y parait, n'est disponible qu'a partir de la version Entreprise.

Cet article n'aurait pu voir le jour sans l'aimable autorisation de Salik Malik (MVP C# et membre actif de la communauté SharePoint) qui m'a permis de le rendre disponible à la communauté francophone.

Lors des articles précédents, nous avons utilisé un exemple simple où nous pouvions nous connecter à la base de donnée NorthWind et à la table Customers, et récupérer les clients habitants dans une une ville spécifique. Dans le contexte du BDC, les clients étant ce que l'on appelle des entités.

Lors de la lecture des deux précédents articles, vous avez remarqué que l'erreur "Profile Page Création" n'était pas corrigée. Ne vous inquiétez plus, nous allons nous en occuper durant ce post.

Pour ce faire, suivez les étapes suivantes :

  • Commencez à ré-ouvrir le fameux fichier xml
  • Modifiez la méthode "GetCustomers", changez la valeur de RdbCommandText par : 

SELECT CustomerID, ContactName, Address, City FROM Customers WHERE (City like @City) AND (CustomerID Like @CustomerID)

  • Changez la section FiltersDescriptors comme suit :
<FilterDescriptors>
  <!-- Define the filters supported by the back-end method (or sql query) here. -->
  <FilterDescriptor Type="Wildcard" Name="City" >
    <Properties>
      <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
    </Properties>
  </FilterDescriptor>
  <FilterDescriptor Type="Wildcard" Name="CustomerID"/>
</FilterDescriptors>
  • Ajoutez une nouvelle section MethodInstance à la fin de l'XML en question :
<MethodInstance Name="CustomerSpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="Customers" />
  • Changez la section Parameters par ce bloc de texte :
<Parameter Direction="In" Name="@City">
  <TypeDescriptor TypeName="System.String" AssociatedFilter="City" Name="City">
    <DefaultValues>
      <DefaultValue MethodInstanceName="CustomerFinderInstance" Type="System.String">%</DefaultValue>
      <DefaultValue MethodInstanceName="CustomerSpecificFinderInstance" Type="System.String">%</DefaultValue>
    </DefaultValues>
  </TypeDescriptor>
</Parameter>
<Parameter Direction="In" Name="@CustomerID">
  <TypeDescriptor TypeName="System.String" AssociatedFilter="CustomerID" Name="CustomerID" IdentifierName="CustomerID">
    <DefaultValues>
      <DefaultValue MethodInstanceName="CustomerFinderInstance" Type="System.String">%</DefaultValue>
      <DefaultValue MethodInstanceName="CustomerSpecificFinderInstance" Type="System.String">%</DefaultValue>
    </DefaultValues>
  </TypeDescriptor>
</Parameter>
<Parameter Direction="Return" Name="Customers">
  ...
<Parameter>
  • Finalement sauvez l'XML

Sauvez les modifications et redéployez l'application dans le SSP (Shared Service Provider ) en suivant les étapes suivantes :

  • Allez dans la section SSP 
  • Cliquez sur "Business Data Catalog" >> "View Applications" >> "Delete Previous Application" (Vous pourriez utiliser le versionning ici) 
  • Cliquez sur "Business Data Catalog" >> "Import Application Definition"
  • Importez votre fichier XML comme un "Model" et cliquez sur "Import"

Vous remarquerez au passage que désormais vous n'avez plus d'erreur.

Votre fichier applicatif est prêt à être consommer, vous pouvez l'utiliser de la manière suivante :

  • Allez sur votre site de test
  • Editez une page de Webparts 
  • Ajoutez une Webpart appelée "Business Data List" (Si vous ne l'avez pas dans la liste, allez l'activer via Site Actions >> Site Settings >> WebPart gallery)
  • Vous devriez avoir ceci :

  • Ouvrez le Tool Pane et configurez le :

  • Si tout va bien vous devriez obtenir :

  • Sortez du mode "Edit", Donnez en paramètre de la Webpart "London" par exemple, Cliquez sur "Retrieve Data" et en suposant que tout ce soit bien passé, vous devriez obtenir ce résultat :

Attention, ici nous allons rajouter une fonctionnalité grâce au Specific Finder rajouté précédemment :

  • Maintenant, éditez la page une fois de plus et ajoutez une nouvelle webpart : La Business Data Item.
  • Ouvrez le Tool Pane ou cliquez sur "Modify the shared webpart".
  • Spécifiez "Customer (NorthWindTraders)" comme le type d'entités qui vous intéresse 

  • Cliquez sur OK 
  • Tant que vous êtes encore dans le mode d'édition, connectez la webpart Business Data List de façon à fournir les informations à la webpart Business Data Item, comme celà :

 

  • Sortez du mode d'édition
  • Cherchez des clients dans une ville (London) et selectionnez en un, via le bouton radio, vous devriez voir ceci : 

 
Plutôt sympa.

Maintenant que vous avez créé une page de profile et implémenté une méthode "specific finder", vous allez pouvoir utiliser les données du BDC dans une  liste custom (nous verrons ça par la suite).

De plus, il y a un curieux "View Profile" en haut à droite du BDCDataItem, nous verrons comment rajouter d'autres actions pour l'utilisateur final dans les prochains articles.

 <Philippe/>

 


Publié mercredi 30 mai 2007 12:03 par phil
Classé sous , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

About phil

Leader Technique SharePoint chez Winwise, je m'occupe de missions d'expertise autour de WSS 3.0 et MOSS 2007, tout en me tenant au courant de ce qui se fait autour de Asp.net, Silverlight et des technologies Web by Microsoft en général.

Les 10 derniers blogs postés

- [Fun] Votre simulateur de vol avec Microsoft ESP par Julien Chable le il y a 3 heures et 28 minutes

- [Best Practices] Customisation du My Site : Comment le modifier en amont et en aval par The Mit's Blog le il y a 4 heures et 42 minutes

- Patrick Tisseghem s'en est allé ... par The Mit's Blog le il y a 5 heures et 26 minutes

- MS AutoCollage par alex# le il y a 6 heures et 12 minutes

- Un grand SharePointeur nous a quitte : Patrick Tisseghem manquera à la communauté ! par RedoBlog - The .NET Gentleman !!! le il y a 6 heures et 37 minutes

- [WPF] Comment charger dynamiquement un fichier XAML qui définit des eventhandler ? par Thomas Lebrun le 09-04-2008, 10:56

- Article sur le filtrage des modèles de site SharePoint par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 09-04-2008, 00:11

- Adopter votre Redo en 3D - Clone Virtuel - avec photosynth par RedoBlog - The .NET Gentleman !!! le 09-04-2008, 00:07

- [Expression Web] Astuce de la Semaine : Mettre en bouton ses macros dans une barre d'outils. par Expression Web & Me le 09-03-2008, 20:48

- [.Net] Présentation du Client Profile par Elise's blog le 09-03-2008, 12:28