Mehr

RuntimeError: Feld kann nicht bearbeitet werden, wenn InsertCursor in einer ArcSDE-Geodatabase mit installiertem ArcFM verwendet wird?

RuntimeError: Feld kann nicht bearbeitet werden, wenn InsertCursor in einer ArcSDE-Geodatabase mit installiertem ArcFM verwendet wird?


Wir führen ArcGIS Desktop 10.1 SP1 aus und haben auch ArcFM installiert.

Ich habe diesen einfachen Code:

workspace = "C:my.sde" arcpy.env.workspace = workspace edit = arcpy.da.Editor(arcpy.env.workspace) edit.startEditing(False, True) edit.startOperation() mit arcpy.da. InsertCursor("C:my.sdedatasetfeature", ("Comments")) as icur: try: icur.insertRow(["Test comment"]) außer Ausnahme als e: print e edit.stopOperation () edit.stopEditing(True)

Ich erhalte den sehr spezifischen (/s) Fehler:

SystemError: Fehlerrückgabe ohne Ausnahmesatz

Ich habe denselben Code in einer anderen Feature-Class in derselben Geodatabase ausprobiert und erhalte:

RuntimeError: Feld ist nicht editierbar.

Aber ich kann mir keinen Grund vorstellen, warum es nicht editierbar ist. Ich kann die Daten in ArcMap problemlos bearbeiten. Irgendeine Idee, was falsch sein könnte?


Es hatte mit ArcFM zu tun, von dem ich das Gefühl hatte, dass es das Problem war.

Das Skript muss eine Lizenz auschecken.

Sie haben ein Beispielskript zur Verfügung:

How-To - Arbeiten mit ArcFM-Features in Python

Lösung

Wie beim Arbeiten mit ArcFM-Features in VBA, ArcGIS for Desktop oder anderswo ist zum Bearbeiten der Features eine ArcFM-Lizenz erforderlich…


Feldlängen

Eine zu geringe Länge in einem Feld kann dies verursachen. Insbesondere wenn Sie Cursor verwenden, um Werte von einer Feature-Class in eine andere zu kopieren, kann es schwierig sein, zu erkennen, welche Felder möglicherweise kurz sind.

Hier ist auch ein hilfreicher Geonet-Thread zu diesem Thema: https://community.esri.com/thread/91717


Schau das Video: Использование ArcFM для редактирования