SharePoint 2007 : BDC - Récupérer une liste d'entités

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.

Comme dit précédement, BDC est une façon de récupérer des données externes et de les lier à MOSS. Tout ce qui peut être accéder via ADO.NET ou un Web Service peut être ammener à MOSS en utilisant BDC.

Après vous avoir montré simplement comment récupérer via le BDC, une instance de la table client provenant de la base Northwind sur un server SQL (2000/2005), Nous allons étendre l'exemple précedent (la plupart des modifications se feront dans le fichier XML) de façon à récupérer toute les entités. Comme par exemple de récupérer tout les clients vivant dans une ville dont le nom serait passé en paramètre.

Les changements à effectuer sont assez simples :

  • Récupérez le fichier XML.
  • Modifiez la méthode "GetCustomers", et changez la propriété "RdbCommandText" pour :
    SELECT CustomerID, ContactName, Address, City FROM Customers WHERE City like @City
  • Juste en dessous, supprimez le "FilterDescriptor" pour "CustomerID", et remplacez le par la section suivante :

    <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>
    </FilterDescriptors>
     
  • Changez le paramètre "CustomerID" (direction "in") par "City" comme ci dessous :

    <Parameter Direction="In" Name="@City">
      <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" AssociatedFilter="City" Name="City">
        <DefaultValues>
          <DefaultValue MethodInstanceName="CustomerFinderInstance" Type="System.String">%</DefaultValue>
        </DefaultValues>
      </TypeDescriptor>
    </Parameter>

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"

Normalement vous devriez encore avoir un message prévenant que la création de la page de profil n'a pas été effectué (c'est normal).

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 :

Félicitations !!

Dans le prochain article, nous règlerons cette fumeuse histoire de création de page de profil et étudierons la question de la possibilité de voir les détails d'une entité via l'utilisation d'un "Specific Finder".

 <Philippe/>

Publié lundi 7 mai 2007 14:09 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

- Le nouveau Gojira, c’est pour lundi… par CoqBlog le il y a 8 heures et 25 minutes

- SharePoint : nouvel article sur la mise en place des Scopes dans MOSS Searchs par Blog Technique de Romelard Fabrice le il y a 15 heures et 51 minutes

- Hello CS par Le Blog de julz le il y a 21 heures et 17 minutes

- MSDN/TechNet/Microsoft Days Tour 2008 à Lille les 13 et 14 Octobre ! par RedoBlog - The .NET Gentleman !!! le 10-10-2008, 09:35

- MVC Pratique #07 - Un projet concret et le transfert des objets avec les ModelBinders par #Rui le 10-09-2008, 23:39

- SQL Server 2008 : Certifié - TS Admin (70-432) par SQL Server vu par Christian Robert le 10-09-2008, 10:58

- [WPF] Comment changer la couleur utilisée pour sélectionner les éléments d’un ItemsControl ? par Thomas Lebrun le 10-09-2008, 10:49

- Hello World! par Hamid's Place le 10-08-2008, 23:38

- SQL Profiler - Configuration pour un développeur - tracer les requêtes SQL de votre application par Atteint de JavaScriptite Aiguë [Cyril Durand] le 10-08-2008, 15:52

- Monitoring et Patron de méthode par Le blog de Marc Ranchin le 10-08-2008, 10:22