ArcPy를 사용하여 히스토리 버전으로 변경 하시겠습니까?


9

Python 및 arcpy.ChangeVersion_management을 사용하여 SDE 기능 클래스에서 히스토리 버전으로 변경하는 데 문제가 있습니다 .

ArcMap을 사용하여 버전을 특정 날짜 및 시간으로 수동으로 변경할 수 있습니다. ModelBuilder를 사용하여 프로세스를 완전히 자동화 할 수도 있습니다.

ModelBuilder 모델을 파이썬 스크립트로 내보낼 때 스크립트는 오류없이 실행되지만 선택된 버전은 날짜 매개 변수로 선택된 날짜가 아닌 오늘 날짜가있는 히스토리 버전입니다.

Arcmap과 Python 창 (Geoprocessing-> 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)

이것은 알려진 버그입니까, 아니면 그냥 잘못된 길로 가고 있습니까?


내 생각에 날짜를 정의하는 방법에 문제가 있다고 생각합니다. 도구의 매개 변수는 값이 String이 아닌 Date 객체 일 것으로 예상합니다 ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). 유용한 Esri 포럼 게시물이 있습니다 : forums.arcgis.com/threads/…
Alex Tereshenkov

코드 줄은 ArcGIS Model Builders에서 Python Script로 내보내기 메뉴 명령에서 생성되었습니다. Python 객체를 Date 객체를 사용하도록 변경했으며 결과는 동일합니다. 제공된 게시물의 해결 방법은 최종 사용자가 히스토리 버전으로 시작한 다음이 기능을 사용하여 현재 버전으로 변경하는 것입니다. 이 해결 방법은 전체 프로세스를 스크립팅하고 기록 날짜가 SQL 쿼리에서 발생하기 때문에 작동하지 않습니다.
브래드 웰본

1
이해 했어요. 그런 다음 Esri Tech Support에 문의해야합니다. 10.2.2에서 arcpy를 사용 하여이 작업을 수행 할 수 없었습니다. 날짜 개체를 얻는 형식과 ChangeVersion 도구에이 매개 변수를 제공하는 방법이 확실하지 않기 때문에 질문 본문에 코드를 게시 할 수 있습니다. 내 생각은 도구에 날짜 개체를 제공하는 올바른 방법을 알 수 없거나 (날짜 유형의 매개 변수에 스크립트 도구 GUI를 사용 했음)이 도구에 버그가 있다는 것입니다.
Alex Tereshenkov 2016 년

2
알렉스, 시간을내어 이것에 대해 감사합니다. Esri Tech Support에 문의하는 것이 다음 단계입니다. 답변을 받으면 질문을 업데이트하겠습니다.
브래드 웰본

답변:


6

몇 가지 추가 연구를 한 결과 이것이 알려진 버그임을 확인했습니다. 이 정보를 여기에 추가하면 Google 또는 Esri 사이트를 사용하여 쉽게 찾을 수 없기 때문에 향후 시간을 절약 할 수 있기를 바랍니다.

버그 NIM-087927
제출 : 2013 년 1 월 8 일
상태 : 공개
http://support.esri.com/en/bugs/nimbus/TklNMDg3OTI3

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.