Eine spezielle Zeichenfolge ermöglicht im Scripting-Kontext oder in Modellen den Zugriff auf eine Feature-Class in einer Enterprise Geodatabase ohne .sde-Verbindungsdatei.
Datenbankverbindung
In ArcGIS Desktop muss für den Zugriff auf Tabellen oder Feature-Classes in einer Enterprise Geodatabase immer eine Verbindungsdatei mit der Erweiterung „.sde“ erzeugt werden. In ArcGIS Pro wird diese Datei automatisch im Projektordner abgelegt. Im Kontext einer automatisierten Bearbeitung mit Hilfe von Python oder dem ModelBuilder ist es allerdings eine Herausforderung, eine physisch temporäre Datei zu erzeugen, diese Ressource zur Laufzeit zu verwalten und bei Abbruch oder Beendigung wieder zu entfernen. Um diesen Prozess zu vereinfachen, wurde in ArcGIS Pro 2.4 ein neues Werkzeug eingeführt: Datenbankverbindung erstellen (als eine Zeichenfolge). Statt einen Pfad zur Datenbank über den Verbindungsdatei-Workspace zu verwenden, wird damit eine Verbindungszeichenfolge erstellt. Diese kann als Eingabe für ein Geoverarbeitungswerkzeug, das den angegebenen Dataset-Typ unterstützt, verwendet werden.
Python-Skript
In Python wird das Geoverarbeitungswerkzeug CreateDatabaseConnectionString implementiert. Es werden sowohl die Verbindungsparameter zur Datenbank (Geodatabase) als auch der Name und eventuell die Version der zu bearbeitenden Feature-Class angegeben.
Das Resultat dieser Funktion ist eine Zeichenfolge wie diese:
CIMDATA=<CIMFeatureDatasetDataConnection xsi:type=’typens:CIMFeatureDatasetDataConnection’ xmlns:xsi=’http://www.w3.org/2001/XMLSchema-instance’ xmlns:xs=’http://www.w3.org/2001/XMLSchema’ xmlns:typens=’http://www.esri.com/schemas/ArcGIS/2.4.0′><FeatureDataset> testfeaturedataset</FeatureDataset><WorkspaceConnectionString>ENCRYPTED_PASSWORD=xxxxx;SERVER=testserver;INSTANCE=testdb; DBCLIENT=postgresql;DB_CONNECTION_PROPERTIES=server;DATABASE=testdb;USER=testuser;VERSION=sde. DEFAULT;AUTHENTICATION_MODE=DBMS</WorkspaceConnectionString><WorkspaceFactory>SDE</WorkspaceFactory><Dataset>testfeatureclass</Dataset><DatasetType>esriDTFeatureClass</DatasetType></CIMFeatureDatasetDataConnection>
Diese Zeichenfolge, in Python durch eine Variable referenziert, wird dann direkt an den Feature-Class-Parameter des nachfolgenden Geoverarbeitungswerkzeuges übergeben.
ModelBuilder
Im ModelBuilder muss ein kleiner Trick angewendet werden, um die Zeichenfolge als Parameter an das nachfolgende Geoverarbeitungswerkzeug zu übergeben, denn das Werkzeug akzeptiert nur eine Feature-Class als gültigen Parameter.
Der Trick heißt Modellvariablenersetzung. Der Wert einer Variablen für eine andere Variable kann ersetzt werden, indem der Ersetzungsvariablenname in Prozentzeichen (%CIMDATA%) eingeschlossen wird.
In diesem Fall wird die Eingabe vom Werkzeug akzeptiert und das Modell kann ausgeführt werden.