Trucs et astuces pour l’utilisation des Web Services d’Exchange

Document Sample
Trucs et astuces pour l’utilisation des Web Services d’Exchange Powered By Docstoc
					Trucs et astuces pour l’utilisation des
Web Services d’Exchange server 2007



Introduction
Exchange server est la plateforme de référence développée par Microsoft qui permet de gérer de
manière centrale, les contacts, les comptes mail ou les plannings de toutes les personnes d’une
organisation. Les bénéfices de cette plateforme en termes de centralisation, de sauvegarde, ou de
partage de ces données sont bien évidemment immenses.

La partie la plus visible de cette plateforme est sans conteste l’intégration avec Office Outlook qui
offre la possibilité de manipuler ces données au travers d’une application cliente. Cependant,
Microsoft a mis à la disposition des développeurs un autre moyen de manipuler le modèle objet
d’Exchange grâce à l’exposition de web services.

Ces web services sont largement documentés sur la msdn, avec notamment la description des
messages soap, mais on trouve très peu d’exemple d’utilisation de ces services via du code. C’est
justement cela que nous allons voir dans cet article. Plus particulièrement nous allons nous
concentrer sur la création, la modification et la suppression de rendez-vous dans le planning d’un
utilisateur Exchange. Si l’utilisation des web services peut paraître assez simple, certaines subtilités
liées à Exchange ralentissent le développement de ces opérations.

Le but de cet article est de donner quelques bonnes pratiques pour consommer les web service
Exchange et ainsi gagner du temps lors du développement d’application tierce basée sur Exchange
server.




Référencement du web service exchange

Première étape pour pouvoir utiliser les services web d’Exchange, les référencer à l’intérieur de son
projet dans Visual Studio. Pour ce faire la manière la plus simple est d’utiliser l’utilitaire d’ajout d’une
référence web intégré à Visual Studio.
        Pour les utilisateurs de Visual Studio 2008, la fenêtre est un peu cachée. Pour la
        retrouver, faire « Ajouter une référence service », puis cliquez sur le bouton « Avancé » et
        dans la fenêtre ouverte, il faut cliquer sur « Ajouter une référence Web ».


Une fois dans la fenêtre suivante, rentrer l’url correspondant à l’adresse à l’adresse des services
Exchange que vous souhaitez utiliser, puis donnez un nom au namespace qui correspondra à votre
service.




Après avoir validé, vous devez trouver un répertoire « Web References » à l’intérieur duquel on
retrouve l’espace de nom précisé précédemment.




Maintenant que l’on a une référence vers les web services Exchange, nous allons pouvoir commencer
à les utiliser.
Initialisation du service

A l’intérieur de l’espace de nom que l’on a créé on va trouver une classe particulière appelée
ExchangeServiceBinding qui constitue la classe principale pour accéder aux services.




A l’intérieur de cette classe on va trouver de nombreuses méthodes qui vont nous permettre de
manipuler les objets Exchange, ainsi que les propriétés qui servent à authentifier l’utilisateur. Voici
comment créer le service.




Une fois le service créé nous allons pouvoir utiliser l’objet renvoyé pour effectuer nos opérations de
création, récupération, modification et suppression d’un rendez-vous.


Création d’un rendez-vous
Maintenant que nous avons initialisé le service nous allons pouvoir créer le rendez-vous avec les
données que l’on souhaite. Pour illustrer cet article nous allons renseigner la date de début, la date
de fin, le sujet, ainsi qu’une donnée personnelle qu’on insérera dans un champ custom du rendez-
vous.

Voici la méthode qui permet de créer une entité correspondant au rendez-vous Exchange.




Plusieurs points sont à noter sur ce bout de code.

Premièrement, on remarque qu’en plus du renseignement des données évoquées plus haut, on
renseigne des propriétés supplémentaires (StartSpecified, EndSpecified, AllDayEventSpecified). Ces
propriétés doivent absolument être spécifiées sans quoi les valeurs des champs associés (Start, End,
IsAllDayEvent) ne seront pas correctement enregistrées.

La fin de la création du rendez-vous est consacrée à la création de la propriété étendue. Le GUID
associé à la propriété permettra de l’identifier et ainsi de pouvoir modifier la propriété plus tard. Ici
l’identifiant de la propriété est déféni comme suit :



Une fois l’objet CalendarItemType initialisé nous allons utiliser le service pour créer le rendez-vous
sur le serveur Exchange.
Pour vérifier que le rendez-vous s’est bien créé, il suffit d’ouvrir Outlook configuré avec le compte
que l’on a utilisé pour initialiser le service et vérifier que le rendez-vous est bien présent dans le
calendrier de l’utilisateur.




Récupération des informations du rendez-vous

Pour récupérer les données associées au rendez-vous créé précédemment (y compris les données
personnelles), nous allons utiliser le code suivant :
De manière à récupérer l’intégralité des propriétés associées au rendez-vous, la propriété importante
est celle définie en début de méthode, c'est-à-dire « ItemResponseShapeType ». On remarque qu’on
y associe une forme de base qui permet de récupérer toutes les propriétés de base, et on ajoute
ensuite les champs personnels grâce à l’identifiant défini plus tôt.


Modification d’un rendez-vous

Voyons à présent comment modifier plusieurs champs d’un même rendez-vous en même temps.
Cette fois encore quelques spécificités de ces services web sont à prendre en compte. Le plus simple
est de voir le code puis d’expliquer les parties un peu particulières.
La classe ItemChangeType représente un changement à effectuer sur l’item à modifier. Donc si l’on
veut modifier plusieurs valeurs en même temps sur un même item on va devoir créer autant
d’instance d’ItemChangeType, qu’il y a de propriétés à modifier. Voyons maintenant comment on
instancie les objets de type ItemChangeType.
Encore une fois pour que le changement de valeur soit pris en compte, il faut renseigner la propriété
« StartSpecified ». Si la propriété n’est pas renseignée, la mise à jour échouera.


Suppression d’un rendez-vous

Pour pouvoir supprimer le rendez-vous, il suffit de renseigner l’identifiant du rendez-vous et la
« ChangeKey » associée. Voici comment effectuer cette suppression.
Conclusion

Au travers de ces simples opérations de création, récupération, modification et suppression de
rendez-vous via les web services exposés par Exchange Server, on remarque que certaines
spécificités de ces web services peuvent rendre le développement d’une application cliente plus
lent. Le problème ici, n’est pas tellement la difficulté de l’utilisation que le manque de
documentation précise sur ces services. Je prends par exemple la nécessité de renseigner les
propriétés « Specified » sans quoi les modifications ne sont pas prises en compte.

J’espère que grâce à cet article vos différents développements autour des services web exchange
seront plus efficaces.

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:11
posted:6/17/2010
language:French
pages:9