Mit ArcPy zur historischen Version wechseln?

9

Ich habe ein Problem beim Versuch, mit Python und arcpy.ChangeVersion_management zu einer historischen Version einer SDE-Feature-Class zu wechseln .

Ich kann die Version mithilfe von ArcMap manuell auf ein bestimmtes Datum und eine bestimmte Uhrzeit ändern. Ich bin auch in der Lage, den Prozess mit ModelBuilder vollständig zu automatisieren.

Wenn ich das ModelBuilder-Modell in ein Python-Skript exportiere, wird das Skript fehlerfrei ausgeführt. Die ausgewählte Version ist jedoch die historische Version mit dem heutigen Datum und nicht das als Datumsparameter ausgewählte Datum.

Mit Arcmap und dem Python-Fenster (Geoverarbeitung -> Python) kann ich den Python-Code auch fehlerfrei ausführen und das Ergebnis ist das gleiche. Die historische Ebene wird mit dem aktuellen Datum und nicht mit dem als Datumsparameter ausgewählten Datum ausgewählt.

Hier ist die Python-Syntax, die ich ausführe:

arcpy.ChangeVersion_management("Parcels", "HISTORICAL", "", "7/1/2013 4:30:00 PM")

Ich bekomme auch die gleichen Ergebnisse mit:

historyDate = datetime.datetime(2011, 7, 1)
arcpy.ChangeVersion_management("Parcels", "HISTORICAL", "", historyDate)

während das Folgende einen RuntimeError auslöst:

historyDate = datetime.date(2011, 7, 1)
arcpy.ChangeVersion_management("Parcel", "HISTORICAL", "", historyDate)

Ist das ein bekannter Fehler oder gehe ich einfach falsch vor?

Brad Welborn
quelle
Ich vermute, dass es ein Problem mit der Definition des Datums gibt. Der Parameter des Tools erwartet, dass der Wert ein Datumsobjekt und kein String ist ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). Es gibt einen hilfreichen Beitrag in Esri-Foren: forums.arcgis.com/threads/…
Alex Tereshenkov
Die Codezeile wurde aus dem Menübefehl ArcGIS Model Builders-Export nach Python Script generiert. Ich habe den Python-Code geändert, um ein Date-Objekt zu verwenden, und die Ergebnisse sind dieselben. Die Problemumgehung des bereitgestellten Beitrags besteht darin, den Endbenutzer mit der historischen Version beginnen zu lassen und dann die Funktion zu verwenden, um zur aktuellen Version zu wechseln. Diese Problemumgehung funktioniert bei mir nicht, da ich den gesamten Prozess skripte und das historische Datum aus einer SQL-Abfrage stammt.
Brad Welborn
1
Ich verstehe. Wenden Sie sich dann wahrscheinlich an den technischen Support von Esri. Ich war auch nicht in der Lage, dieses Ding mit arcpy unter 10.2.2 zum Laufen zu bringen. Sie können Ihren Code jedoch im Fragentext veröffentlichen, da unklar ist, in welchem ​​Format Sie Ihr Datumsobjekt erhalten und wie Sie diesen Parameter an das ChangeVersion-Tool übergeben. Mein Bauchgefühl ist, dass wir entweder keinen richtigen Weg finden können, um das Datumsobjekt an das Tool zu liefern (ich habe dafür die GUI des Skript-Tools verwendet, Parameter vom Datumstyp), oder es gibt einen Fehler mit diesem Tool.
Alex Tereshenkov
2
Alex, danke, dass du dir die Zeit genommen hast, dir das anzuschauen. Die Kontaktaufnahme mit dem technischen Support von Esri ist anscheinend mein nächster Schritt. Ich werde die Frage aktualisieren, wenn ich eine Antwort von ihnen bekomme.
Brad Welborn

Antworten:

6

Nach einigen weiteren Untersuchungen habe ich bestätigt, dass dies ein bekannter Fehler ist. Wenn Sie diese Informationen hier hinzufügen, sparen Sie hoffentlich in Zukunft Zeit, da sie mit Google oder der Esri-Website nicht leicht zu finden waren.

Fehler NIM-087927
Eingereicht: 8. Januar 2013
Status: Öffnen Sie
http://support.esri.com/en/bugs/nimbus/TklNMDg3OTI3

Brad Welborn
quelle