Zmieniasz wersję na Historyczną za pomocą ArcPy?

9

Mam problem z przejściem do wersji historycznej w klasie funkcji SDE za pomocą Pythona i arcpy.ChangeVersion_management .

Jestem w stanie ręcznie zmienić wersję na określoną datę i godzinę za pomocą ArcMap. Jestem również w stanie w pełni zautomatyzować proces za pomocą ModelBuilder.

Kiedy eksportuję model ModelBuilder do skryptu Pythona, skrypt działa bezbłędnie, ale wybrana wersja jest wersją historyczną z dzisiejszą datą, a nie datą wybraną jako parametr daty.

Używając Arcmap i okna Pythona (Geoprocessing -> Python), mogę również uruchomić kod python bez błędów, a wynik jest taki sam. Warstwa historyczna jest wybierana z bieżącą datą, a nie z datą wybraną jako parametr daty.

Oto wykonywana przeze mnie składnia Python:

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

Te same wyniki uzyskuję również za pomocą:

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

podczas gdy następujący zgłasza RuntimeError:

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

Czy to znany błąd, czy po prostu robię to w niewłaściwy sposób?

Brad Welborn
źródło
Domyślam się, że istnieje problem z tym, jak definiujesz datę. Parametr tego narzędzia oczekuje, że wartością będzie obiekt Date, a nie String ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). Na stronie znajduje się pomocny post na forach Esri: forums.arcgis.com/threads/…
Alex
Wiersz kodu został wygenerowany z eksportu ArcGIS Model Builders do polecenia menu Skrypt Python. Zmieniłem kod Pythona, aby używał obiektu Date, a wyniki są takie same. Obejście z podanego postu polega na tym, że użytkownik końcowy powinien rozpocząć od wersji historycznej, a następnie użyć funkcji, aby przejść do bieżącej wersji. To obejście nie zadziała, ponieważ piszę skrypt do całego procesu, a data historyczna pochodzi z zapytania SQL.
Brad Welborn
1
Rozumiem. Prawdopodobnie powinieneś wtedy skontaktować się z pomocą techniczną Esri. Nie byłem w stanie sprawić, aby ta rzecz działała z Arcpy na 10.2.2. Możesz opublikować swój kod, choć w treści pytania, ponieważ nie jest jasne, w jakim formacie otrzymujesz obiekt daty i jak podajesz ten parametr do narzędzia ChangeVersion. Mam przeczucie, że albo nie możemy znaleźć właściwego sposobu na dostarczenie obiektu daty do narzędzia (użyłem do tego GUI narzędzia skryptowego, parametru typu Data), albo istnieje błąd w tym narzędziu.
Alex Tereshenkov
2
Alex, dziękuję za poświęcenie czasu na to. Wygląda na to, że skontaktowanie się z pomocą techniczną Esri to mój kolejny krok. Zaktualizuję pytanie, gdy otrzymam od nich odpowiedź.
Brad Welborn

Odpowiedzi:

6

Po kilku dalszych badaniach potwierdziłem, że jest to znany błąd. Mam nadzieję, że dodanie tych informacji pozwoli zaoszczędzić komuś trochę czasu w przyszłości, ponieważ znalezienie go za pomocą Google lub strony Esri nie było łatwe.

Błąd NIM-087927
Zgłoszony: 8 stycznia 2013
Status: Otwarty
http://support.esri.com/en/bugs/nimbus/TklNMDg3OTI3

Brad Welborn
źródło