Contact categories / Exchange Sync

If you’re using Exchange, you probably know that every time you rebuild the database or reset the Exchange cache with Entourage 2004, the categories are lost for all your Exchange contacts.
A workaround for this problem would be to save the name of the categories to one of the unused custom fields of the contacts (that get synched to Exchange). When you need to rebuild the database, you lose all the categories, but you can find them in the custom field and re-apply them.
I thought about writing a script to do just that for a long time, but beside the time that I had very little time to devote to the project, I just plain suck with AppleScript in general and with the commands in Entourage in particular. Don’t get me wrong, I’ve already played around with other languages, but I’m not familiar enough with AppleScript so everything takes me forever. I end up looking up everything in the few books I have on the topic and when I can’t find an easy solution, I workaround the problem piping the script to shell commands :->

Hopefully, a little while ago I posted what I had in hand to save the categories to custom fields to the Entourage newsgroup and Paul Berkowitz was kind enough to reply, tell me where I was wrong, correct the scripts and post a working script back.
When I started thinking about the second script allowing me to restore the categories, I found another roadblock. Of course Paul had – again – the perfect solution. He even had additional options for non-preexisting categories and assigning them random colors. I couldn’t be thankful enough…

Posting code on newsgroup is not really convenient, so I decided to post them here. They seem to work for me. I hope they’ll work for other people too. If they don’t, let me know (you can leave a comment here).
You can easily edit the scripts.

  • Of course, first, make a backup (there is nothing really “risky” in the scripts, but you can never be too careful)
  • Make sure you install them in the Script folder for Entourage.
  • They will only work for the default account (see Tools:Accounts to set up your Exchange account as the default account).
  • As usual: “Use at your own risks” 🙂

Here are the scripts.


Si vous utilisez Exchange, vous savez probablement que la reconstruction de la base ou la remise à zéro du cache (antémémoire :-> ) avec le serveur perd toutes les catégories des contacts Exchange (les évènements du calendrier aussi, mais c’est un autre sujet).
Une solution à ce soucis consiste à enregistrer le nom des catégories pour chaque contact dans un des champs perso non utilisés, et lorsque l’on reconstruit la base de l’identité sous Entourage, on peut effectuer l’opération inverse, prendre les catégories dans le champ perso et réaffecter les catégories correspondantes pour chaque contact.
J’avais pensé à écrire un script pour faire ça il y a un certain temps déjà, mais outre le fait que j’avais beaucoup à faire par ailleurs et que j’avais peu de tems à consacrer à ce projet, je suis nul en AppleScript en général et plus en particulier encore avec les commandes propres à Entourage. Ne vous y trompez pas, je ne suis pas une buse complête : j’ai déjà tâtonné d’autres languages de programmation, mais je ne connais pas suffisamment AppleScript et tout me prend un temps fou. Je finis par devoir tout rechercher dans les quelques livres dont je dispose et quand je ne trouve pas rapidement une solution, je finit par rediriger le script sur des commandes UNIX :->

Fort heureusement, alors que le sujet était revenu sur le tapis il y a quelques temps, j’ai eu la bonne idée de poster ce que j’avais déjà sous la main pour la première partie des scripts (sauvegarder dans le champ 8 ) dans le forum de discussion sur Entourage (US). Paul Berkowitz a eu la bonté de bien vouloir répondre, de m’indiquer où je me trompais, de corriger le script et de poster une version parfaitement fonctionnelle.
Lorsqu’est venu le temps de me pencher sur la seconde partie des scripts (restaurer les catégories sauvegardées dans le champ 8 ), je me suis encore une fois retrouvé dans une impasse. Paul avait – bien sûr – la solution parfaite. Il avait même des options additionnelles pour les cas où la catégorie à ré-affecter n’existait pas déjà (et même pour attribuer des couleurs différentes dans ce cas là). Je ne pourrais pas être plus reconnaissant…

Poster le code sur les forums n’est pas très pratique, aussi ai-je décidé de les mettre à disposition ici. Ils semblent bien fonctionner pour moi, j’espère que ce sera aussi le cas pour d’autres. Si ils ne fonctionnent pas, faites-le moi savoir (vous pouvez par exemple laisser un commentaire ici).
Vous pouvez facilement éditer les scripts.

  • Faites de toute façon une sauvegarde (il n’y a rien de très risqué dans les scripts, mais on ne sait jamais: on ne peut pas être trop prudent)
  • Installez les scripts dans le dossier de scripts d’Entourage.
  • Les scripts ne fonctionneront que sur le compte par défaut (Utilisez Outils:Comptes pour faire de votre compte Exchange le compte par défaut).
  • Comme d’habitude : “Utilisez à vos risques et périls” 🙂

Voici les scripts.