Utilisation de Microsoft Windows SharePoint Services avec Microsoft Office System

Mike Gunderloy
Lark Group, Inc.

S’applique à :
    Microsoft® Windows® SharePoint™ Services
    Microsoft Office SharePoint Portal Server 2003
    Microsoft Office Access 2003
    Microsoft Office Excel 2003
    Microsoft Office System

Résumé : Apprenez à interagir par programmation à partir d'applications de Microsoft Office System grâce aux produits et technologies Microsoft SharePoint, à utiliser la fonctionnalité de liste Sharepoint et le service Web et à documenter par programme les bibliothèques à partir d'Access et d'Excel.

Sommaire

Introduction
Présentation de Windows SharePoint Services
Utilisation des listes SharePoint
Utilisation de l'interface de service Web de Windows SharePoint Services
Documentation et Windows SharePoint Services
Conclusion

Introduction

L'un des principaux objectifs de Microsoft® Office System est de mieux prendre en charge la collaboration à partir des applications qui le composent. Des fonctionnalités telles que l'espace de travail de document et l'espace de travail de réunion permettent aux utilisateurs de partager leurs données en toute transparence, de coopérer sur des tâches et d'échanger des courriers électroniques ainsi que des messages instantanés sans quitter les applications Microsoft Office System qui leur sont familières. Cette collaboration est possible grâce à Microsoft Windows® SharePoint™ Services. Microsoft Office SharePoint Portal Server 2003 vient enrichir cette collaboration et offre un ensemble de caractéristiques encore plus avancées. Outre une intégration approfondie de l'interface utilisateur, Microsoft Office System intègre les produits et technologies Microsoft SharePoint via toute une variété d'API.

Remarque   Les informations contenues dans cet article s'appliquent également à Microsoft Office SharePoint Portal Server 2003, basé sur la plate-forme Windows SharePoint Services.

Présentation de Windows SharePoint Services

Windows SharePoint Services vous permet de communiquer, de partager des documents et de collaborer sur des projets à l'aide d'un simple navigateur Web.

Installation de Windows SharePoint Services

Pour pouvoir utiliser les sites d'espace de travail de document dans Microsoft Office System, il convient d'installer Microsoft Windows SharePoint Services ou Microsoft SharePoint Portal Server 2003. Pour installer Windows SharePoint Services, vous devez disposer d'un serveur dont la configuration minimale est la suivante :

  • Système d'exploitation Windows Server 2003
  • Système de fichiers NTFS
  • Microsoft Internet Information Services (IIS) 6.0 installé selon le mode par défaut d'isolation de processus de traitement
  • ASP.NET installé

Pour obtenir la liste complète des éléments requis, reportez-vous au document Microsoft Windows SharePoint Services Administrators Guide (en anglais).

Vous pouvez télécharger Microsoft Windows SharePoint Services à partir du Centre de téléchargement Microsoft (site en anglais).

Architecture de Windows SharePoint Services

Windows SharePoint Services est construit sur la double base de Microsoft SQL Server (ou MSDE) et de ASP.NET. Il inclut un ensemble de composants WebPart qui sont des contrôles de serveur ASP.NET. Ces composants WebPart peuvent afficher des listes ou des images, extraire des cotations boursières ou des prévisions météorologiques et exécuter bien d'autres tâches encore. Ils doivent être insérés dans les zones WebPart de pages WebPart. Vous pouvez créer et modifier les pages de composants WebPart dans un éditeur HTML tel que Microsoft Office FrontPage 2003, ou directement dans le navigateur via l'interface utilisateur de Windows SharePoint Services.

Utilisation des listes SharePoint

Avec Microsoft Office System, il est possible d'interagir par programmation sur les données Windows SharePoint Services. Prenons comme point de départ la prise en charge des listes SharePoint dans Microsoft Office Access 2003. Vous pouvez traiter une liste SharePoint dans Access tout comme vous le feriez avec toute autre source de données. Vous pouvez importer les données à partir de Windows SharePoint Services, exporter les données Access vers un site SharePoint ou lier les données Windows SharePoint Services à une base de données Access.

Tout comme pour les autres sources de données, Access utilise la méthode DoCmd.TransferDatabase pour interagir avec les listes SharePoint. Pour exporter une table dans une base de données Windows SharePoint Services, par exemple, vous pouvez utiliser la syntaxe suivante :

DoCmd.TransferDatabase acExport, "Windows SharePoint Services", _
 "http://server_name/sites/site_name", _
 acTable, "Customers", "Customers"

L'exemple précédent exporte la table Customers de la base de données courante vers une liste SharePoint, également appelée Customers, sur le site SharePoint spécifié.

Pour importer une liste SharePoint dans Access ou ajouter un lien vers une liste SharePoint à partir d'une base de données Access, vous pouvez également utiliser la méthode TransferDatabase mais la syntaxe est quelque peu plus complexe. Voici une commande VBA (Microsoft Visual Basic for Applications) permettant d'ajouter un lien à une liste SharePoint appelée Parts :

DoCmd.TransferDatabase acLink, "Windows SharePoint Services", _
 "WSS;HDR=NO;IMEX=2;" & _
 "DATABASE=http://server_name/sites/site_nam;" & _
 "LIST={800BE2B7-FA3C-4CFC-BBB3-8500C4EDCF22};" & _
 "VIEW=;RetrieveIds=Yes;TABLE=Parts", acTable, , _
 "Parts"

Toute la difficulté de la construction de cette commande réside dans le fait que Windows SharePoint Services utilise des GUID pour identifier les listes. C'est de cette manière qu'il stocke dix listes de contact différentes dans la même base de données MSDE, par exemple. Lorsque vous utilisez l'interface utilisateur d'Access pour importer ou lier des données dans Windows SharePoint Services, le système met en correspondance les noms avec les GUID. Lorsque vous interagissez avec le moteur Jet directement via VBA, la mise en correspondance doit être effectuée manuellement. La longue chaîne de cet exemple qui débute par « Windows SharePoint Services » et se termine par « TABLE=Parts » identifie une liste SharePoint spécifique.

Il existe deux méthodes d'identification du GUID approprié lorsqu'il s'agit d'importer par programmation ou d'ajouter des liens vers des données dans Windows SharePoint Services. La méthode la plus simple consiste à ajouter un lien manuellement entre la liste SharePoint souhaitée et la base de données Access, puis à ouvrir la table liée en mode de conception ; la propriété Description de la table liée contient la chaîne de liaison requise. Bien évidemment, cette étape est totalement inutile en cas de liaison avec des listes arbitraires. Vous pouvez également utiliser l'interface de service Web de Windows SharePoint Services, qui comprend une méthode Lists.GetList. Cette méthode obtient le nom d'une liste sur un site SharePoint donné et renvoie les informations détaillées, y compris le GUID qui identifie la liste. L'interface du service Web Windows SharePoint Services est traitée plus en détail plus loin dans cet article.

Si vous avez créé un lien entre une liste SharePoint et une base de données Access, vous pouvez travailler avec cette liste comme avec toute autre table. Vous pouvez exécuter des instructions SQL pour récupérer ou modifier des données, ou encore ouvrir un Recordset et manipuler la liste par programmation. Access traite la liste SharePoint de la même façon qu'une autre table et tout le code orienté table que vous connaissez fonctionne. Un modèle de verrouillage optimiste coordonne les problèmes de simultanéité d'accès, lorsque deux utilisateurs sous Windows SharePoint Services et Access, par exemple, travaillent en même temps sur les mêmes données.

Microsoft Office Excel 2003 intègre également les listes SharePoint en implémentant une extension de son modèle objet qui permet de distinguer le travail sur les listes des autres activités. L'objet Worksheet dans Excel est enrichi d'une collection ListObjects qui contient des objets ListObject individuels. L'objet ListObject contient des collections d'objets ListColumns et ListRows, chacun de ces objets ayant des propriétés qui les relient aux objets Excel Range.

Par défaut, la collection ListObjects contient des listes natives Excel 2003. Vous pouvez toutefois raccorder ces listes à un site SharePoint en appelant la méthode Publish de l'objet ListObject correspondant.

Reportez-vous à la feuille présentée en figure 1 comme exemple. Pour créer une liste à partir d'une zone rectangulaire s'étendant de A1 à C8, vous devez exécuter le code VBA suivant :

Public Sub PublishList()
 ' Get the collection of lists for the active sheet
 Dim L As ListObjects
 Set L = ActiveSheet.ListObjects
 ' Add a new list
 Dim NewList As ListObject
 Set NewList = L.Add(xlSrcRange, Range("A1:C8"), , True)
 NewList.Name = "PartsList"
 ' Publish it to a SharePoint site
 NewList.Publish Array("http://server_name/sites/site_name", _
 "NewParts"), True
End Sub

Cliquez ici pour agrandir

Figure 1. Plage d'une feuille de calcul, à publier sous forme de liste (cliquez sur l'image pour l'agrandir)

Lorsque vous ajoutez la liste, le troisième paramètre indique que cette liste particulière est dotée d'en-têtes. Lorsque la liste est publiée, Windows SharePoint Services utilise ces en-têtes comme noms des colonnes de la liste, comme illustré en figure 2.

Cliquez ici pour agrandir

Figure 2. Plage exportée sous forme de liste SharePoint (cliquez sur l'image pour l'agrandir)

Le deuxième argument vers la méthode Publish de l'objet ListObject indique que cette liste est liée à la liste SharePoint. On peut donc utiliser les méthodes Refresh et UpdateChanges pour conserver deux versions synchronisées de la liste.

La méthode Refresh copie le schéma courant et les données de la liste SharePoint dans la feuille de calcul. Par exemple :

Public Sub RefreshList()
 ActiveSheet.ListObjects("PartsList").Refresh
End Sub

Tous les changements non enregistrés que vous avez apportés aux données dans la feuille de calcul sont annulés lorsque vous appelez la méthode Refresh.

La méthode UpdateChanges est plus complexe. Si une valeur de la feuille de calcul est modifiée, elle est copiée par UpdateChanges dans la liste SharePoint. Si une valeur de la liste SharePoint est modifiée, la méthode copie la modification dans la feuille de calcul. Mais que se passe-t-il lorsque les deux valeurs sont modifiées ? La méthode détecte le conflit et agit conformément au paramètre que vous avez fourni. Vous pouvez, par exemple, laisser le choix à l'utilisateur en appelant la méthode UpdateChanges comme suit :

Public Sub UpdateList()
 ActiveSheet.ListObjects("PartsList").UpdateChanges (xlListConflictDialog)
End Sub

Du fait de la constante xlListConflictDialog, Excel affiche la boîte de dialogue présentée en figure 3 s'il détecte un conflit entre la version locale des données et la version de la liste SharePoint. L'utilisateur décide de la manière dont les conflits seront résolus.

Cliquez ici pour agrandir

Figure 3. Résolution d'un conflit de mise à jour entre Excel et une liste SharePoint (cliquez sur l'image pour l'agrandir)

Vous pouvez contrôler le comportement de la méthode UpdateChanges en spécifiant différentes constantes :

  • xlListConflictDiscardAllConflicts indique d'accepter la version des données stockées dans la liste SharePoint
  • xlListConflictError indique de déclencher une erreur en cas de conflit
  • xlListConflictDiscardAllConflicts indique d'écraser la version des données stockées dans la liste SharePoint

Utilisation de l'interface Web Service de Windows SharePoint Services

L'interface Web Service de Windows SharePoint Services offre davantage de fonctionnalités et d'options pour faciliter l'intégration. Le tableau 1 fournit un aperçu des différents services Web disponibles.

Tableau 1. Services Web disponibles dans Windows SharePoint Services

Service URL de référence du Web Description
Administration http://nom_serveur:5966/_vti_adm/Admin.asmx Méthodes administratives permettant de gérer le déploiement de Microsoft Windows SharePoint Services (par exemple créer ou supprimer des collections de site).
Alertes http://nom_serveur/_vti_bin/Alerts.asmx Méthodes d'utilisation des alertes avec des éléments de liste sur un site SharePoint.
Service de récupération des données http://nom_serveur/_vti_bin/DspSts.asmx Méthodes de récupération des schémas et des données.
Espace de travail de document http://nom_serveur/_vti_bin/DWS.asmx Méthodes de gestion des sites d'espace de travail de document et des données qu'ils contiennent.
Formulaires http://nom_serveur/_vti_bin/Forms.asmx Méthodes de renvoi des formulaires utilisés dans l'interface utilisateur lorsque l'on travaille sur le contenu d'une liste.
Imagerie http://nom_serveur/_vti_bin/Imaging.asmx Méthodes vous permettant de créer et de gérer des bibliothèques d'image.
Listes http://nom_serveur/_vti_bin/List.asmx Méthodes pour travailler avec des listes et des données de liste.
Réunions http://nom_serveur/_vti_bin/Meetings.asmx Méthodes vous permettant de créer et de gérer les sites d'espace de travail de réunion.
Autorisations http://nom_serveur/_vti_bin/Permissions.asmx Méthodes pour utiliser la sécurité de Windows SharePoint Services.
Données du site http://nom_serveur/_vti_bin/SiteData.asmx Méthodes utilisées par les services de recherche pour extraire et analyser les données des sites SharePoint.
Sites http://nom_serveur/_vti_bin/Site.asmx Méthode de renvoi des informations relatives à la collection de modèles de site sur le serveur virtuel.
Utilisateurs et Groupes http://nom_serveur/_vti_bin/UserGroup.asmx Méthodes pour travailler avec les utilisateurs, les groupes du site et les groupes inter-sites.
Versions http://nom_serveur/_vti_bin/version.asmx Méthode pour travailler avec les versions de fichier.
Vues http://nom_serveur/_vti_bin/Views.asmx Méthodes pour travailler avec des vues de listes.
Pages de composants WebPart http://nom_serveur/_vti_bin/WebPartPages.asmx Méthodes pour envoyer les informations vers des services Web XML et récupérer des informations des mêmes services.
Web http://nom_serveur/_vti_bin/Webs.asmx Méthodes pour travailler avec les sites et les sous-sites.

Remarque   SharePoint Portal Server propose de nombreux services Web supplémentaires. Pour plus d'informations, reportez-vous au Kit de développement pour les produits et les technologies Microsoft SharePoint (SDK) (en anglais).

Chacun de ces services Web expose plusieurs méthodes que vous pouvez utiliser à partir d'applications clientes. Vous pouvez obtenir le détail de ces méthodes en accédant à l'URL de référence Web à l'aide d'Internet Explorer. La figure 4, par exemple, illustre les méthodes du service Web Listes. Si vous accédez sur votre ordinateur à l'endroit où Windows SharePoint Services est installé, vous pouvez également tester ces méthodes de manière interactive à partir du navigateur.

odc_ofofficesysandwss_fig4.gif

Figure 4. Découverte du service Web Listes

À titre d'exemple des possibilités que vous offrent les services Web inclus dans Windows SharePoint Services, vous pouvez créer dans Microsoft Office Word 2003 une macro qui récupère toutes les listes d'un site SharePoint particulier ainsi que les GUID qui identifient ces listes. Bien que la macro convertisse ces informations en tableau dans Word, vous pouvez également l'utiliser dans Access pour définir les informations nécessaires à la liaison ou à l'importation d'une liste SharePoint.

Pour faciliter l'écriture de la macro, reportez-vous au Microsoft Office 2003 Web Services Toolkit (en anglais). Cette boîte à outil vous donne le moyen de définir aisément le code nécessaire pour appeler un service Web à partir de code VBA. Vous pouvez également télécharger la version Office XP du toolkit. Les différences entre les deux versions de ce toolkit sont relativement négligeables mais vous pouvez en obtenir le détail sur le site What's New in the Microsoft Office 2003 Web Services Toolkit (en anglais).

Après avoir installé le toolkit, vous pouvez sélectionner Tools, puis Web Service References pour ouvrir la boîte de dialogue Web Services Toolkit, comme illustré en figure 5. Tapez l'adresse URL de l'un des services Web et cliquez sur Search pour afficher les méthodes de ce service Web dans l'arborescence Search Results. Cochez la case en regard du nom du service Web et cliquez sur Add. Le toolkit génère tout le code VBA nécessaire pour utiliser le service Web dans votre projet.

Cliquez ici pour agrandir

Figure 5. Utilisation du toolkit Web Services pour ajouter une référence Web (cliquez sur l'image pour l'agrandir)

Une fois la référence Web créée, le code suivant appelle l'une de ses méthodes et met en forme les résultats pour les afficher :

Sub GetListCollection()
 ' Class created by toolkit to connect to the Web service
 Dim ws As New clsws_Lists
 ' The collection is returned as an XML node list
 Dim lc As MSXML2.IXMLDOMNodeList
 'Root node of the returned list
 Dim nod As MSXML2.IXMLDOMNode
 ' Document to hold an XSLT transform
 Dim docXSLT As New MSXML2.DOMDocument50
 ' Output string for the XML transformation
 dim strOutput As String
 
 ' Retrieve the collection of lists
 Set lc = ws.wsm_GetListCollection

 ' Create the XSLT to select the desired information
 docXSLT.LoadXml ("<xsl:stylesheet" & _ 
 "xmlns:xsl=""http://www.w3.org/1999/XSL/Transform""" & _
 " xmlns:wss=""https://schemas.microsoft.com/sharepoint/soap/""" & _
 " version=""1.0""><xsl:output method=""text"" />" & _
 "<xsl:template match=""wss:List"">," & _
 "<xsl:value-of select=""@Title""/>," & _
 "<xsl:value-of select=""@ID""/></xsl:template></xsl:stylesheet>")

 ' Get the root node from the list
 Set nod = lc.Item(0)
 ' Apply the XSLT transform
 strOutput = (nod.transformNode(docXSLT))

 ' Use the Word 2003 object model to turn the results into a table
 With Selection
 .TypeText ("List Name, List ID" & strOutput)
 .HomeKey wdStory, wdExtend
 .ConvertToTable Separator:=wdSeparateByCommas, NumColumns:=2
 .HomeKey wdStory
 End With
End Sub

L'exécution du code dans un nouveau document Word permet de créer le tableau présenté en figure 6.

Cliquez ici pour agrandir

Figure 6. Données récupérées à l'aide du service Web Listes (cliquez sur l'image pour l'agrandir)

Il existe bien d'autres façons d'utiliser les services Web à partir des applications de Microsoft Office System ; le code de champ INCLUDETEXT des requêtes Web Excel et Word en est une. Pour plus d'informations, reportez-vous à l'article « Working with Documents and Web services in the Microsoft Office System » (en anglais).

Documentation et Windows SharePoint Services

Vous pouvez également stocker les documents dans Windows SharePoint Services. Chaque site SharePoint comprend une bibliothèque de documents, appelée Documents partagés, qui sert de référentiels pour les documents.

Enregistrement par programmation vers un site SharePoint

Pour enregistrer un document dans un site SharePoint, vous pouvez utiliser la méthode Save du modèle d'objet de l'application à laquelle vous devez associer une URL construite. Pour ajouter le premier classeur Excel ouvert à un site SharePoint sur un serveur, par exemple, exécutez cette ligne de code :

Application.Workbooks(1).SaveAs _
 "http://server_name/sites/site_name/Shared%20Documents/file_name.xls"

Vous pouvez continuer à travailler normalement dans Excel, avec le classeur enregistré dans une bibliothèque de documents. En outre, le document est disponible sur le site SharePoint, comme illustré en figure 7.

Cliquez ici pour agrandir l'image

Figure 7. Documents dans une bibliothèque de documents (cliquez sur l'image pour l'agrandir)

Vous pouvez exécuter un certain nombre d'opérations sur le document, directement à partir de la bibliothèque de documents. Vous pouvez, entre autres, utiliser le contrôle de version (archivée et extraite) ou créer un site d'espace de travail de document basé sur le document.

Utilisation de l'extraction et de l'archivage

Vous pouvez extraire un document à partir de l'interface du navigateur, en sélectionnant Extraire dans le menu déroulant associé au document. Vous pouvez modifier ce document dans son application hôte. Lorsque vous l'enregistrez, Windows SharePoint Services vous demande d'indiquer si vous souhaitez conserver le document extrait, si vous souhaitez l'archiver ou ignorer les modifications. Windows SharePoint Services utilise un modèle d'exclusivité simple pour gérer les extractions : un document spécifique ne peut être extrait que par une seule personne à tout moment.

Chaque fois que vous archivez un document, Windows SharePoint Services en stocke une nouvelle version. Vous pouvez effacer les anciennes versions directement depuis l'interface du navigateur si vous le souhaitez.

Vous pouvez également extraire et archiver les documents à partir du code VBA d'un document, sous réserve que ce document ait été ouvert à partir d'une bibliothèque de documents. Comme le système utilise un modèle d'extraction exclusive, vous devez toujours vous assurer que l'exécution de ces opérations ne pose pas de problème avant de les exécuter réellement. Pour extraire un classeur Excel, utilisez l'exemple de code suivant :

If Workbooks.CanCheckOut("PartSales.xls") = True Then
 Workbooks.CheckOut docCheckOut
Else
 MsgBox "This document cannot be checked out."
End If

À l'inverse, vous pouvez archiver le même document à l'aide du code ci-après :

If Workbooks("PartSales").CanCheckIn = True Then
 Workbooks("PartSales").CheckIn SaveChanges:=True, _
 Comments:="New version"
Else
 MsgBox "This document cannot be checked in."
End If

Notez que la fonctionnalité d'extraction est située dans la collection Workbooks et que celle d'archivage appartient à l'objet individuel Workbook.

Espaces de travail partagés

Pour finir, vous pouvez créer un site d'espace de travail de document autour d'un document dans Word, Excel ou PowerPoint. Un site d'espace de travail de document est un site SharePoint conçu pour aider un groupe d'utilisateurs à coopérer sur un ou plusieurs documents. Ces sites sont gérés via le volet des tâches Espace de travail partagé dans votre document. La figure 8 montre le volet Espace de travail partagé en action

odc_ofofficesysandwss_fig8.gif

Figure 8. Volet des tâches Espace de travail partagé

Le volet Espace de travail partagé comprend un lien vers l'espace de travail partagé ainsi que six onglets (voir la figure 8). Vous pouvez utiliser le lien pour ouvrir l'Espace de travail partagé dans votre navigateur. Les onglets ont les fonctions suivantes, de gauche à droite :

  • État. Affiche les messages d'état
  • Membres. Affiche les membres de l'Espace de travail partagé. Chaque membre a un contrôle Name associé qui vous permet d'envoyer des messages électroniques ou instantanés, de planifier une réunion, d'ajouter le membre à vos contacts Outlook et d'effectuer de nombreuses autres opérations utiles.
  • Tâches. Affiche les tâches dans l'Espace de travail partagé, ainsi que leur statut et le nom de la personne à qui elles ont été attribuées.
  • Documents. Affiche les documents de la bibliothèque dans laquelle figure le document en cours.
  • Liens. Affiche les liens hypertextes de l'Espace de travail.
  • Informations sur le document. Vous permet d'afficher le nom de la personne qui a effectué la dernière modification, l'historique des versions du document, ainsi que toutes les propriétés personnalisées qui lui ont été attribuées.

Vous pouvez créer un Espace de travail partagé directement depuis le volet des tâches de l'interface utilisateur. Vous pouvez également utiliser l'objet SharedWorkspace, pour créer l'espace comme suit :

ActiveDocument.SharedWorkspace.CreateNew _
 URL:="http://server_name/sites/site_name", _
 Name:="Workspace_name"

L'objet SharedWorkspace fournit un accès par programme à toutes les fonctions du volet Espace de travail partagé.

Conclusion

Windows SharePoint Services offre aux applications de Microsoft Office System une ossature pour développer la collaboration. Vous pouvez utiliser les listes SharePoint, à partir d'applications telles que Access et Excel, comme lieu de stockage des données à partager avec des utilisateurs de Microsoft Office System et les autres. Pour parfaire l'intégration, vous pouvez utiliser les services Web fournis avec Windows SharePoint Services pour interagir directement avec Windows SharePoint Services, ou utiliser le modèle d'objet Espace de travail partagé pour mettre en place des solutions de collaboration autour d'un document. Tout comme avec Microsoft Office System, Windows SharePoint Services offre une solide base de fonctionnalités que vous pouvez enrichir avec votre propre code.

Dernière mise à jour le mercredi 11 février 2004