{"id":10,"date":"2007-12-10T10:23:25","date_gmt":"2007-12-10T15:23:25","guid":{"rendered":"http:\/\/analystik.ca\/?p=10"},"modified":"2017-02-22T17:13:28","modified_gmt":"2017-02-22T22:13:28","slug":"integrite-des-donnees-outlook","status":"publish","type":"post","link":"https:\/\/analystik.ca\/blogue\/language\/fr\/integrite-des-donnees-outlook\/","title":{"rendered":"Int\u00e9grit\u00e9 des donn\u00e9es Outlook quand celui-ci interagit avec une BD SQL de clients et d&rsquo;activit\u00e9s"},"content":{"rendered":"<p>Une des t\u00e2ches importantes lors du d\u00e9veloppement d&rsquo;une application de grande envergure est de s&rsquo;assurer que l&rsquo;int\u00e9grit\u00e9 des donn\u00e9es est sans reproche. Cette t\u00e2che peut s&rsquo;av\u00e9rer relativement facile \u00e0 accomplir lorsque l&rsquo;application n\u2019est disponible que dans un environnement dit de production. Par contre, dans certaines situations, g\u00e9rer l&rsquo;int\u00e9grit\u00e9 devient un peu plus complexe. Cela demande du travail suppl\u00e9mentaire lorsqu&rsquo;il faut passer d&rsquo;un environnement \u00e0 un autre.<\/p>\n<h3><!--more-->BD SQL POUR OUTLOOK<\/h3>\n<p>Chez Analystik, on a d\u00e9velopp\u00e9 une innovation permettant de transposer les compagnies (BD SQL) des repr\u00e9sentants de son principal client dans l&rsquo;environnement du logiciel de courriel d&rsquo;Office. Par le fait m\u00eame sur le BlackBerry (SUMMeet). De plus, dans cette innovation, les activit\u00e9s saisies sont aussi sauvegard\u00e9es dans SQL.<\/p>\n<p>Dans le cas de SUMMeet, un m\u00e9canisme permettant de s&rsquo;assurer qu&rsquo;aucune donn\u00e9e de test ne se faufilera en production a d\u00fb \u00eatre implant\u00e9. Plusieurs options \u00e9taient envisageables telles:<\/p>\n<ul>\n<li>la suppression manuelle<\/li>\n<li>l\u2019ajout d\u2019un d\u00e9clencheur \u00e0 m\u00eame l\u2019application SUMMeet<\/li>\n<li>la suppression automatique transparente pour l\u2019usager lors du changement d\u2019environnement.<\/li>\n<\/ul>\n<p>La solution la plus appropri\u00e9e pour cette situation sp\u00e9cifique f\u00fbt la suppression des items contenus dans Outlook \u00e0 m\u00eame l\u2019application permettant le changement d\u2019environnement.<\/p>\n<p>Les raisons suivantes ont motiv\u00e9 cette prise de d\u00e9cision :<\/p>\n<ul>\n<li>Les contacts et les activit\u00e9s contenus dans Outlook sont dot\u00e9s d&rsquo;une cat\u00e9gorie sp\u00e9cifique, donc facilement filtrable.<\/li>\n<li>Les charg\u00e9s de projets ne produisent aucunes donn\u00e9es sensibles reli\u00e9es au business.<\/li>\n<li>La rapidit\u00e9 et facilit\u00e9 d&rsquo;implantation dans la m\u00e9canique actuelle permettant le changement d&rsquo;environnement.<\/li>\n<li>L&rsquo;application de nos connaissances en VBScript et OOM (Outlook Object Model).<\/li>\n<\/ul>\n<p>L\u2019exemple de code pr\u00e9sent\u00e9 ici-bas permet donc la suppression des activit\u00e9s et des contacts contenus dans Outlook afin qu&rsquo;aucune donn\u00e9e ne transite entre les deux environnements (test et production).<\/p>\n<p>Une fois la main mise sur l&rsquo;objet \u00ab\u00a0Application\u00a0\u00bb, il faut r\u00e9cup\u00e9rer tous les contacts correspondant au filtre d\u00e9sir\u00e9. Ensuite, il suffit de parcourir tous les items et les supprimer un \u00e0 la fois. R\u00e9p\u00e9ter le m\u00eame processus pour les activit\u00e9s.<\/p>\n<h2>Le code<\/h2>\n<pre><span style=\"color: #000000;\"><code>' Supprime tous les contacts et les activit\u00e9s de cat\u00e9gorie SpecialSync Dim objOL \r\n\r\n' As Outlook.Application Dim objNs ' As Outlook.NameSpace Dim objF \r\n\r\n' As Outlook.MAPIFolder Dim objItems \r\n\r\n' As Outlook.Items Dim objItemsS \r\n\r\n' As Outlook.Items - R\u00e9sultat de filtre \r\n\r\n' D\u00e9claration g\u00e9n\u00e9ral Set objOL = CreateObject(\"Outlook.Application\") Set objNs = objOL.GetNamespace(\"MAPI\") \r\n\r\n' Contacts Set objF = objNs.GetDefaultFolder(10) Set objItems = objF.Items Set objItemsS = objItems.Restrict(\"[Categories] = \r\n\r\n'SpecialSync'\") ContactCount = objItemsS.Count While ContactCount &gt; 0 If TypeName(objItemsS(ContactCount)) = \"ContactItem\" Then Set c = objItemsS(ContactCount) c.Delete Set c = Nothing End If ContactCount = ContactCount - 1 Wend \r\n\r\n' Activit\u00e9s Set objF = objNs.GetDefaultFolder(9) Set objItems = objF.Items Set objItemsS = objItems.Restrict(\"[Categories] = 'SpecialSync'\") AppointmentCount = objItemsS.Count While AppointmentCount &gt; 0 If TypeName(objItemsS(AppointmentCount)) = \"AppointmentItem\" Then Set c = objItemsS(AppointmentCount) c.Delete Set c = Nothing End If AppointmentCount = AppointmentCount - 1 Wend \r\n\r\n' Rel\u00e2cher les objets Set objItemsS = Nothing Set objItems = Nothing Set objF = Nothing Set objNs = Nothing Set objOL = Nothing<\/code><\/span><\/pre>\n<p>Pascal Groulx<br \/>\nD\u00e9veloppeur<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Une des t\u00e2ches importantes lors du d\u00e9veloppement d&rsquo;une application de grande envergure est de s&rsquo;assurer que l&rsquo;int\u00e9grit\u00e9 des donn\u00e9es est sans reproche. Cette t\u00e2che peut s&rsquo;av\u00e9rer relativement facile \u00e0 accomplir lorsque l&rsquo;application n\u2019est disponible que dans un environnement dit de production. Par contre, dans certaines situations, g\u00e9rer l&rsquo;int\u00e9grit\u00e9 devient un peu plus complexe. Cela demande&#8230;  <a class=\"excerpt-read-more\" href=\"https:\/\/analystik.ca\/blogue\/language\/fr\/integrite-des-donnees-outlook\/\" title=\"Read Int\u00e9grit\u00e9 des donn\u00e9es Outlook quand celui-ci interagit avec une BD SQL de clients et d&rsquo;activit\u00e9s\">Read more &raquo;<\/a><!-- AddThis Advanced Settings generic via filter on wp_trim_excerpt --><!-- AddThis Share Buttons generic via filter on wp_trim_excerpt --><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Int\u00e9grit\u00e9 des donn\u00e9es Outlook quand celui-ci interagit avec une BD SQL de clients et d'activit\u00e9s","_seopress_titles_desc":"On a d\u00e9velopp\u00e9 une innovation permettant de transposer les compagnies (BD SQL) des repr\u00e9sentants de son principal client dans l'environnement Outlook","_seopress_robots_index":"","content-type":"","footnotes":""},"categories":[36,3373,3371],"tags":[2257,790,1968,786,3060,1690],"better_featured_image":null,"_links":{"self":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts\/10"}],"collection":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":4,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":11288,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts\/10\/revisions\/11288"}],"wp:attachment":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}