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