Intégrité des données Outlook quand celui-ci interagit avec une BD SQL de clients et d’activités

Une des tâches importantes lors du développement d’une application de grande envergure est de s’assurer que l’intégrité des données est sans reproche. Cette tâche peut s’avérer relativement facile à accomplir lorsque l’application n’est disponible que dans un environnement dit de production. Par contre, dans certaines situations, gérer l’intégrité devient un peu plus complexe et demande du travail supplémentaire lorsqu’il faut passer d’un environnement à un autre par exemple.


Chez Analystik, on a développé une innovation permettant de transposer les compagnies (BD SQL) des représentants de son principal client dans l’environnemt Outlook et par le fait même sur le BlackBerry (SUMMeet). De plus, dans cette innovation, les activités saisies dans Outlook sont aussi sauvegardées dans SQL.

Dans le cas de SUMMeet, un mécanisme permettant de s’assurer qu’aucune donnée de test ne se faufilera par erreur en production a dû être implanté. Plusieurs options étaient envisageables telles la suppression manuelle, l’ajout d’un déclencheur à même l’application SUMMeet ou la suppression automatique transparente pour l’usager lors du changement d’environnement. La solution la plus appropriée pour cette situation spécifique fût la suppression des items contenus dans Outlook à même l’application permettant le changement d’environnement.

Les raisons suivantes ont motivé cette prise de décision :

  • Les contacts et les activités contenus dans Outlook sont dotés d’une catégorie spécifique, donc facilement filtrable.
  • Les chargés de projets ne produisent aucunes données sensibles reliées au business.
  • La rapidité et facilité d’implantation dans la mécanique actuelle permettant le changement d’environnement.
  • L’application de nos connaissances en VBScript et OOM (Outlook Object Model).

L’exemple de code présenté ici-bas permet donc la suppression des activités et des contacts contenus dans Outlook afin qu’aucune donnée ne transite entre les deux environnements (test et production).

Une fois la main mise sur l’objet « Application » d’Outlook, il faut récupérer tous les contacts correspondant au filtre désiré. Ensuite, il suffit de parcourir tous les items et les supprimer un à la fois. Répéter le même processus pour les activités.

' Supprime tous les contacts et les activités de catégorie SpecialSync                 

Dim objOL ' As Outlook.Application
Dim objNs ' As Outlook.NameSpace
Dim objF ' As Outlook.MAPIFolder
Dim objItems ' As Outlook.Items
Dim objItemsS ' As Outlook.Items - Résultat de filtre           

' Déclaration général           

Set objOL = CreateObject("Outlook.Application")
Set objNs = objOL.GetNamespace("MAPI")           

' Contacts           

Set objF = objNs.GetDefaultFolder(10)
Set objItems = objF.Items
Set objItemsS = objItems.Restrict("[Categories] = 'SpecialSync'")           

ContactCount = objItemsS.Count
While ContactCount > 0
	If TypeName(objItemsS(ContactCount)) = "ContactItem" Then
		Set c = objItemsS(ContactCount)
		c.Delete
		Set c = Nothing
	End If
	ContactCount = ContactCount - 1
Wend           

' Activités           

Set objF = objNs.GetDefaultFolder(9)
Set objItems = objF.Items
Set objItemsS = objItems.Restrict("[Categories] = 'SpecialSync'")           

AppointmentCount = objItemsS.Count
While AppointmentCount > 0
	If TypeName(objItemsS(AppointmentCount)) = "AppointmentItem" Then
		Set c = objItemsS(AppointmentCount)
		c.Delete
		Set c = Nothing
	End If
	AppointmentCount = AppointmentCount - 1
Wend           

' Relâcher les objets           

Set objItemsS = Nothing
Set objItems = Nothing
Set objF = Nothing
Set objNs = Nothing
Set objOL = Nothing

Pascal Groulx
Développeur


Soyez avertis des commentaires concernant cet article en vous inscrivant à notre feed RSS 2.0 . Vous pouvez ajouter un commentaire, ou un trackback provenant de votre site.


Ajouter un commentaire

Additional comments powered by BackType