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=""http://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