Service de connexion externe sous SharePoint 2010

Publié dans: 

SharePoint un est 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.

 

Figure 1 : 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 utilises 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 des 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. Il dispose des limites relatives à l’architecture de SharePoint Foundation.

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

  • 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
  • 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.

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.