BakTek

Spécialiste du développement SharePoint
Accueil  Mon Expertise  Mon Offre  Informations et Contact  Partenaires  Clients  SharePoint...   
Paramètres de synchronisation des listes WSS dans Outlook
 
 
J'ai eu l'occasion récemment de faire quelques recherches sur les délais de synchronisation des listes SharePoint 2007 synchronisées dans Outlook 2007. Ne trouvant pas beaucoup d'articles sur le sujet sur le Web, j'ai dû chercher les informations quelque temps ; quelques tests ont également été nécessaires. Voici donc un résumé de mes trouvailles :
 
  1. La règle de base est qu’Outlook 2007 ne peut déclencher une mise à jour que sur les événements suivants :
        
    a. Sauvegarde d’un fichier dans la liste depuis Outlook
        
    b. Navigation dans Outlook vers le dossier d’une liste
         c. Send/Receive programmé :
    Groupes Outlook Outlook 'send/receive'
    d. Send/Receiver manuel (F9)
  2. Il existe deux valeurs qu’Outlook 2007 utilise pour contrôler la fréquence de mise à jour : TTL (Time to Live) et ASI (Automatic Sync Interval). Ces deux valeurs viennent du serveur SharePoint (ces valeurs sont globales à la ferme).
  3. Par défaut, TTL est à 0
  4. Par défaut ASI est à 180 (minutes)
  5. TTL est utilisé par Outlook pour éviter dans tous les cas une mise à jour plus fréquente que la valeur spécifiée. Par exemple, si on commande une mise à jour manuelle et que le temps écoulé depuis la dernière mise à jour est inférieur à TTL, la mise à jour ne s’effectue pas. Idem pour une mise à jour dans tous les cas 1a, 1b, 1c et 1d ci-dessus.
  6. ASI est utilisé pour éviter une mise à jour automatique (i.e. Send/Receiver programmé, cas 1c ci-dessus) plus fréquente que la valeur indiquée. Par exemple, avec un ASI à 180 minutes (le défaut), et un Send/Receiver programmé toutes les 30 minutes, les synchronisations des 30, 60, 90, 120 et 150ième minutes ne sont pas effectuées. Seules les synchronisations des minutes 0 et 180 seront réalisées. L’ASI n’est cependant pas pris en compte dans les cas 1a, 1b et 1d ci-dessus.
  7. La valeur qui apparaît dans la section « Update Limit » des paramètres avancés d’un abonnement est celle du TTL
  8. Lors de l’ajout de l’abonnement, même si un TTL est publié par le serveur, la valeur n’apparaît pas dans la boîte de dialogue : en fait, Outlook n’a pas encore eu l’occasion de demander cette information au serveur. Ce n’est que plus tard (lors de la première synchronisation) qu’Outlook aura accès à cette valeur. On peut alors y accéder par : « Tools -> Account Settings… -> SharePoint Lists -> Change… » :



  9. Pour spécifier les valeurs TTL et ASI sur le serveur SharePoint, il faut utiliser stsadm pour positionner les propriétés min-time-between-syncs (TTL) et recommended-time-between-syncs (ASI). Par exemple, pour forcer un TTL d’une heure :

    stsadm -o setproperty -pn min-time-between-syncs -pv "60"
  10. La clé de registre « HKCU\Software\Microsoft\Office\12.0\Outlook\Options\WSS\IgnoreTTL » permet de positionner la valeur du « Update Limit » par défaut (0 = coché, 1 = décoché)
  11. La clé « HKCU\Software\Policies\Microsoft\Office\12.0\Outlook\Options\WSS\IgnoreTTL » est plus intéressante puisqu’elle permet de bloquer pour l’utilisateur la possibilité de choisir entre l’utilisation ou non de TTL. En positionnant cette clé à 0, on force l’utilisation de la valeur TTL envoyée par le serveur, et on empêche l’utilisateur de modifier cela (cliquer pour agrandir) :

    Paramètres Outlook dans la base de registre pour la synchronisation de listes SharePoint

    La logique derrière cette implémentation est qu’il faut d’une part limiter le nombre de requêtes de synchronisation vers le serveur, et d’autre part essayer d’avoir les données les plus récentes sur le client. C’est pour cela que les moyens de synchronisation privilégiés sont les 1a et 1b ci-dessus. Cependant, il est laissé à l’administrateur SharePoint la possibilité de diminuer le nombre de requête sur son serveur en positionnant le TTL à une valeur supérieure à 0. Enfin, sans action de la part de l’utilisateur (cas 1c), c’est l’ASI qui entre en jeu, et dans ce cas, la valeur par défaut (180 minutes) limite le nombre de requêtes, quelque soit l’intervalle de programmation du Send/Receive.

    Cependant, l’utilisateur a la possibilité de ne pas tenir compte des paramètres du serveur en décochant la case « Update Limit ». Cette possibilité laissée à l’utilisateur peut-être supprimée en positionnant la clé de registre IgnoreTTL (dans \Policies) à 0.

    Enfin, pour les plus curieux, sachez qu'Outlook utilise pour la synchro les Web services de WSS, et particulièrement la méthode GetListItemChangesSinceToken de Lists.asmx (voir Synchronizing with Windows SharePoint Services). C'est cette méthode qui permet de récupérer la liste des derniers éléments à refraîchir, ainsi que les paramètres TTL et ASI. Cela explique pourquoi Outlook ne connait pas ces valeurs avant d'avoir fait une première synchro. Dans le cas d'une bibliothèque de documents, Outlook utilise GetListItemChangesSinceToken pour récupérer la liste des documents puis va ensuite récupérer le document à l'URL trouvée dans la réponse. Voici ce que cela donne :

    Trace Fiddler de la syncrhonisation de listes SharePoint depuis Outlook