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