Problème :
L'accès aux classes de caractéristiques UT à l'aide d'un programme externe, tel que FME, réussit.
Lors de l'écriture de données (par exemple, via le graveur de géodatabase SDE de FME), un code de programme supplémentaire est exécuté par les extensions de classes de fonctionnalités UT. (C'est à cela que servent les extensions de classes de fonctionnalités.) Cependant, les extensions de classes de fonctionnalités UT nécessitent un environnement UT, qui est établi avec chaque application UT, mais pas lorsqu'on y accède à partir de programmes externes.
Cause :
Les extensions de classe d'entités sont appelées chaque fois que la classe d'entités est adressée. Cela se fait automatiquement depuis ArcGIS. Vous ne pouvez pas non plus vous y opposer.
Solution :
Désactiver les extensions de classe de la fonction UT ne fonctionne pas. Mais empêcher l'exécution du code du programme fonctionne. À cette fin, la variable d'environnement DisableUTObjectEventManager a été implémentée. Cette variable d'environnement fait en sorte que toutes les extensions de classe de fonctionnalité UT désactivent l'exécution de leur code de programme :
- Si la variable d'environnement a la valeur true, alors l'exécution du code de programme est désactivée.
- Dans tout autre cas, le code de programme est exécuté comme d'habitude.
Remarque : Cette procédure signifie également que la logique des données doit alors être produite par le programme externe.
Importante : La désactivation des extensions de classe de caractéristiques UT ne doit en aucun cas être effectuée pour un fonctionnement normal. Lors d'un travail régulier avec UT pour ArcGIS, les extensions de classe de caractéristiques UT sont essentielles. Sinon, il y a un risque de défaillances fonctionnelles et d'erreurs de données graves. Par conséquent, nous ne recommandons pas de définir la variable d'environnement comme une variable système ou utilisateur. Pour gérer la variable d'environnement, il s'est avéré utile d'exécuter le programme externe dans un script batch (console DOS *.bat ou Powershell *.ps1 ou Python *.py ou ...). Dans ce script, la variable d'environnement est définie localement comme une variable de processus et est automatiquement rebasculée dès que l'action est terminée. Voici un exemple de script de console DOS : @Echo off La définition locale dans un script permet d'exclure que ce commutateur ne soit pas réinitialisé par inadvertance. |
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.