Problem:
Der Zugriff auf UT Featureklassen mit einem externen Programm, wie z. B. FME, gelingt.
Beim Schreiben von Daten (z. B. über den SDE-Geodatabase Writer von FME) wird allerdings zusätzlicher Programmcode durch die UT Featureklassen-Erweiterungen ausgeführt. (Dafür sind Featureklassen-Erweiterungen ja da.) Die UT Featureklassen-Erweiterungen setzen jedoch eine UT Umgebung voraus, die zwar bei jeder UT Anwendung hergestellt ist, nicht aber beim Zugriff von externen Programmen aus.
Ursache:
Featureklassen-Erweiterungen werden jedes Mal aufgerufen, wenn die Featureklasse angesprochen wird. Das geschieht automatisch von ArcGIS aus. Da kommt man auch nicht dazwischen.
Lösung:
Die Featureklassen-Erweiterungen kann man nicht temporär abschalten. Die Ausführung des Programmcodes kann man aber unterbinden. Zu diesem Zweck wurde die Umgebungsvariable DisableUTObjectEventManager eingeführt. Diese Umgebungsvariable bewirkt bei allen UT Featureklassen-Erweiterungen, dass die Ausführung ihres Programmcodes abgeschaltet wird:
- Hat die Umgebungsvariable den Wert true, dann wird die Ausführung des Programmcodes abgeschaltet.
- In jedem anderen Fall wird der Programmcode wie gewohnt ausgeführt.
Anmerkung: Dieses Vorgehen bedeutet auch, dass die Datenlogik dann aber vom externen Programm hergestellt werden muss.
Wichtig: Das Abschalten der UT Featureklassen-Erweiterungen darf auf gar keinen Fall für den normalen Betrieb vorgenommen werden. Bei der regulären Arbeit mit UT for ArcGIS sind die UT Featureklassen-Erweiterungen unerlässlich. Es drohen sonst Funktionsausfälle und schwere Datenfehler. Deshalb raten wir vom Setzen der Umgebungsvariable als System- oder Benutzervariable ab. Zur Handhabung der Umgebungsvariable hat es sich bewährt, das externe Programm in einem Batchskript (DOS-Konsole *.bat oder Powershell *.ps1 oder Python *.py oder ...) ablaufen zu lassen. Darin wird die Umgebungsvariable lokal als Prozessvariable gesetzt und automatisch wieder zurückgeschaltet, sobald die Aktion beendet ist. Hier ein Beispiel für ein DOS-Konsolen-Skript: @Echo off Mit der lokalen Setzung in einem Skript wird ausgeschlossen, dass dieser Schalter versehentlich nicht zurückgesetzt wird. |
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.