En POO, on est souvent mené à vérifier si un handler a été instancié. Cela fait parti des opérations que j'estime les plus basiques et naturelles. Et pourtant, jusqu'à peu, je n'avais jamais réussi à le faire en LS sur un objet de type Variant (un fourre-tout qui peut être typé en tout et n'importe quoi -- voilà qui rend le code plus lisible et compréhensible, vous en conviendrez).

Cela ne m'a jamais posé de problème avec tous les autres types d'objets cela dit, un simple if (obj is Nothing) then faisant parfaitement l'affaire. Mais non, pas avec les Variant, cela aurait été trop simple. J'ai testé tout un tas de syntaxes farfelues, au fil des situations auxquelles j'ai été confronté à un tel problème/besoin, telles que (obj is Null), (obj = Null), (obj = Nothing), etc. Mais rien à faire, impossible de vérifier si le Variant a été instancié, cela génère irrémédiablement une erreur 13 type mismatch.

Alors à défaut d'arriver à mes fins, je recodais dans la mesure du possible l'agent en Java, un langage que je n'ai jamais vraiment porté dans mon coeur mais dont j'ai appris à aimer la pratique depuis que le LS est devenu mon quotidien, ou, quand le temps me faisait défaut, j'implémentais une gestion d'erreur (enfin, si on peut appeler ça une gestion d'erreur.. On Error plop Goto label) spécifique sur le bloc incriminé -- en cas d'erreur, je savais que le Variant n'avait pas été instancié. C'est du haut niveau, non ?

Tout ça pour dire, voilà quelques jours, j'ai à nouveau été confronté à ce fameux problème. Mais cette fois-ci c'était différent, un collègue a été capable de m'expliquer comment faire : "Ben voyons Olivier, il faut utiliser la fonction IsObject() !". Comme si ça coulait de source. Il convient donc de mettre en oeuvre la chose comme suit : if (IsObject(obj)) then. Voilà, c'est tout. Et ça marche. 10 mois pour trouver ça. Utiliser une comparaison à l'entité Nothing dans 99% des cas, et une fonction spécifique qui sort de je ne sais où pour le pourcentage restant, ça résume bien ce qu'est le développement Lotus. Pitié, je veux refaire du Java !