Service de connexion externe sous Sharepoint 2010

Introduction

SharePoint est un outil très performant pour la création des systèmes d’informatiques des entreprises. En revanche, lorsqu’ une entreprise décide d’utiliser SharePoint, ça n’implique pas qu’elle doit renoncer aux autres systèmes déjà implémentés. Grâce à BCS (Business Connectivity Service), on peut créer une couche de connexion externe avec un autre système, en implémentant les entités et ses opérations de CRUD, les provider des vues, et les relations entre les entités.

les relations entre u système externe et sharepoint foundation à travers : Business Connectivity Service
les relations entre u système externe et sharepoint foundation à travers : Business Connectivity Service

Figure 1 : Business Connectivity Service

Le but de BCS est de créer des entités métier, qu’on puisse les gérer comme des entités internes : principalement List ou colonne.  Et que SharePoint les utilise dans ses principaux services d’applications (Excel Service, Managed Metadata Service, Access Service …).
Généralement le passage par cette couche se fait via : base des données, web service, Assembly .NET, Fichier XML. D’ailleurs, SharePoint Designer nous permet de créer ces couches, en passant par des petites interfaces de paramétrages selon le connecteur choisit.
Mais si on veut créer un connecteur personnalisé, on doit forcément passer par notre cher Visual Studio.

Comment ça marche techniquement ??

Pour créer une couche de connexion externe sur VS 2010 on doit créer un model BCS. Dans ce modèle on définit :

  1. les entités (Nom et identifiant BCS)
  2. les propriétés de chaque entité
  3. les opérations de CRUD de chaque entité:
    IEnumerable<Entity> ReadList() : invoquée lorsque l’utilisateur consulte la liste (vue AllItems.aspx). Dans cette fonction veuillez connecter à votre système externe et récupérer la liste des entités.
    Entity ReadItem(string id) : fonction invoquée lorsque l’utilisateur consulte le formulaire d’affichage de l’éléments sélectionné.
    void EditItem (Entity entity) : invoquée lorsque l’utilisateur modifie l’élément.
    void RemoveItem (Entity entity) : invoquée lorsque l’utilisateur supprime l’élément.

Après un déploiement de ce modèle sur la ferme, on peut créer une List Externe basé sur une entité de notre modèle.

On peut créer évidement une colonne externe, et l’associer à une liste SharePoint interne. Cette colonne doit être une de propriétés crées dans notre modèle.

Pour vérifier le bon fonctionnement de notre modèle :
Central Administration > Application Management > Manage service applications > Business Data Connectivity Services

Vous allez trouver toutes tes entités, un clic sur l’entité vous permet de lister ses colonnes.

Les limites

Malgré la performance de ce service, mais il dispose des limites relatives à l’architecture de SharePoint Foundation.

Une liste externe dispose quelques limites par rapport une liste SharePoint :

  • Permission sur un élément de la liste : on peut définir la permission sur toute la liste mais on ne peut pas définir des permissions sur ses éléments individuellement.
  • Event Receiver : On ne peut pas associer des eventReceiver à une liste externe, puis ce que les transactions réelles et ses commit se fait en dehors de SharePoint.
  • Flux RSS / Alerte : on ne peut pas créer un flux RSS ou des alertes utilisateurs basé sur une liste externe

Conclusion

Dans cet article on a présenté le service de connexion externe. Attendez notre prochain article de même sujet pour créer, étape par étape, un modèle de connexion à un site RedMine et récupérer les annonces.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s