Fehlermeldung
Das Ausführen eines Python-Skripts zum Bearbeiten von nicht versionierten Daten in einer Enterprise-Geodatabase schlägt fehl, und der folgende Laufzeitfehler wird zurückgegeben:
Error:
Workspace bereits im Transaktionsmodus
Ursache
Für dieses Problem gibt es mehrere mögliche Ursachen:
- Unzureichende Lizenzstufe zum Bearbeiten der Enterprise-Geodatabase.
- Die Funktion "InsertCursor()" wird wie im nachstehenden Codebeispiel gezeigt in einer Schleife verwendet.
with arcpy.da.InsertCursor(PatchesFC, icFields) as iCursor:
iCursor.insertRow(rowTuple)
- Die Parameter "with_undo" und "multiuser_mode" der Funktion "startEditing()" sind nicht korrekt. Weitere Informationen finden Sie im folgenden Webhilfe-Dokument: ArcGIS Desktop: Editor.
Lösung oder Problemumgehung
Verwenden Sie eine der folgenden Lösungen, um den Fehler zu beheben:
- Das Bearbeiten versionierter Daten ist nur mit Standard- oder Advanced-Lizenz verfügbar. Bei der Basic-Lizenz ist das Bearbeiten deaktiviert. Führen Sie ein Upgrade auf eine höhere Lizenzstufe durch, um das Bearbeiten für versionierte Daten zu aktivieren.
- Deklarieren Sie die Funktion "InsertCursor()" als Objekt, statt sie in eine Schleife einzubinden, wie im nachstehenden Codeausschnitt gezeigt.
iCursor = arcpy.da.InsertCursor(PatchesFC, icFields)
- Legen Sie für die Parameter "with_undo" und "multiuser_mode" in der Funktion "startEditing()" "false" fest. Wenn für diese Parameter "false" festgelegt ist, wird dem aktuellen Benutzer Vollzugriff für die Bearbeitung von Daten gewährt. Der folgende Codeausschnitt veranschaulicht, wie für die Parameter "false" festgelegt wird.
edit.startEditing(False, False)
Hinweis:
In der Funktion "startEditing()" entspricht der erste Parameter "with_undo" und der zweite Parameter "multiuser_mode".
Beispiel:
startEditing({with_undo}, {multiuser_mode})