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/>