Перехід на історичну версію за допомогою ArcPy?


9

У мене виникає проблема, яка намагається змінити історичну версію на клас функцій SDE за допомогою Python та arcpy.ChangeVersion_management .

Я можу вручну змінити версію на певну дату та час за допомогою ArcMap. Я також в змозі повністю автоматизувати процес за допомогою ModelBuilder.

Коли я експортую модель ModelBuilder в сценарій python, сценарій працює без помилок, але вибрана версія є історичною версією з сьогоднішньою датою, а не датою, вибраною в якості параметра дати.

Використовуючи Arcmap та вікно Python (Geoprocessing -> Python), я також можу запускати код python без помилок, і результат той самий. Історичний рівень вибирається з поточною датою, а не з датою, вибраною як параметр дати.

Ось синтаксис Python, який я виконую:

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

Я також отримую ті ж результати, використовуючи:

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

в той час, як наступні викидає RuntimeError:

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

Це відома помилка чи я просто йду про це неправильним шляхом?


Я здогадуюсь, що існує проблема з визначенням дати. Параметр інструменту очікує, що значення буде об'єктом Date, а не String ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). Є корисна публікація форумів Esri на цьому форумі
Олексій Терешенков

Рядок коду був створений при експорті ArcGIS Model Builders в команду меню Python Script. Я змінив код python, щоб використовувати об'єкт Date, і результати однакові. Потрібно вирішити питання про те, щоб кінцевий користувач розпочав роботу з історичної версії, а потім скористався функцією для переходу на поточну версію. Це вирішення для мене не буде працювати через те, що я проглядаю весь процес, і історична дата походить із SQL-запиту.
Бред Велборн

1
Я розумію. Ви, мабуть, тоді повинні зв’язатися з технічною підтримкою Esri. Мені також не вдалося змусити цю роботу працювати з arcpy 10.2.2. Ви можете опублікувати свій код, хоча в тілі запитань, оскільки незрозуміло, у якому форматі ви отримуєте об’єкт дати та як ви надаєте цей параметр інструменту ChangeVersion. Моє відчуття в тому, що ми або не можемо знайти правильний спосіб поставити об’єкт дати в інструмент (я для цього використовував графічний інтерфейс інструмента скрипта, параметр типу дати), або є помилка з цим інструментом.
Олексій Терешенков

2
Алекс, дякую, що знайшов час, щоб розглянути це. Можливо, наступний крок - зв’язатися з технічною підтримкою Esri. Я оновлю питання, коли отримаю відповідь від них.
Бред Велборн

Відповіді:


6

Після деяких подальших досліджень я підтвердив, що це відома помилка. Сподіваємось, додавання цієї інформації сюди заощадить комусь деякий час у майбутньому, оскільки це було непросто знайти за допомогою Google або на сайті Esri.

Помилка NIM-087927
Опубліковано: 8 січня 2013 р.
Статус: Відкрити
http://support.esri.com/uk/bugs/nimbus/TklNMDg3OTI3

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.