Thay đổi thành phiên bản Lịch sử bằng ArcPy?


9

Tôi gặp sự cố khi cố gắng thay đổi thành phiên bản lịch sử trên lớp tính năng SDE bằng Python và arcpy.ChangeVersion_man Quản lý .

Tôi có thể tự thay đổi phiên bản thành ngày và giờ cụ thể bằng ArcMap. Tôi cũng có thể tự động hóa hoàn toàn quy trình bằng ModelBuilder.

Khi tôi xuất mô hình ModelBuilder sang tập lệnh python, tập lệnh chạy không có lỗi nhưng phiên bản được chọn là phiên bản lịch sử có ngày hôm nay và không phải ngày được chọn làm tham số ngày.

Sử dụng Arcmap và cửa sổ Python (Geoprocessing -> Python) Tôi cũng có thể chạy mã python mà không gặp lỗi và kết quả là như nhau. Lớp lịch sử được chọn với ngày hiện tại và không phải ngày được chọn làm tham số ngày.

Đây là cú pháp Python tôi đang thực hiện:

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

Tôi cũng nhận được kết quả tương tự bằng cách sử dụng:

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

trong khi sau đây ném RuntimeError:

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

Đây có phải là một lỗi đã biết hay tôi chỉ đang nghĩ về điều này sai cách?


Tôi đoán là có một vấn đề với cách bạn xác định ngày. Tham số của công cụ mong muốn giá trị là đối tượng Ngày, không phải là Chuỗi ( resource.arcgis.com/en/help/main/10.2/index.html#// tựa ). Có một diễn đàn Esri hữu ích đăng trên này: forum.arcgis.com/threads/ Kẻ
Alex Tereshenkov

Dòng mã được tạo từ lệnh ArcGIS Model Builders xuất sang lệnh menu Python Script. Tôi đã thay đổi mã python để sử dụng một đối tượng Date và kết quả là như nhau. Công việc xung quanh từ bài đăng được cung cấp là để người dùng cuối bắt đầu với phiên bản lịch sử và sau đó sử dụng chức năng để thay đổi thành phiên bản hiện tại. Cách giải quyết này sẽ không hiệu quả với tôi do thực tế tôi đang viết kịch bản toàn bộ quá trình và ngày lịch sử xuất phát từ một truy vấn SQL.
Brad Welborn

1
Tôi hiểu. Có lẽ bạn nên liên hệ với bộ phận Hỗ trợ của Esri Tech. Tôi cũng không thể làm điều này hoạt động với arcpy vào ngày 10.2.2. Bạn có thể xuất bản mã của mình, mặc dù trong phần câu hỏi vì không rõ định dạng bạn nhận được đối tượng ngày của bạn và cách bạn cung cấp tham số này cho công cụ ChangeVersion. Cảm giác ruột của tôi là chúng ta không thể tìm ra một cách đúng để cung cấp đối tượng ngày cho công cụ (Tôi đã sử dụng GUI công cụ tập lệnh cho điều đó, tham số của loại Ngày) hoặc có lỗi với công cụ này.
Alex Tereshenkov

2
Alex, cảm ơn vì đã dành thời gian để xem xét điều này. Có vẻ như liên hệ với Esri Tech Support là bước tiếp theo của tôi. Tôi sẽ cập nhật câu hỏi khi tôi nhận được phản hồi từ họ.
Brad Welborn

Câu trả lời:


6

Sau một số nghiên cứu sâu hơn, tôi đã xác nhận rằng đây là một lỗi đã biết. Hy vọng rằng việc thêm thông tin này vào đây sẽ giúp ai đó tiết kiệm thời gian trong tương lai vì không dễ tìm thấy bằng cách sử dụng Google hoặc trang Esri.

Lỗi NIM-087927 Đã
gửi: ngày 8 tháng 1 năm 2013
Trạng thái: Mở
http://support.esri.com/en/bugs/nimbus/TklNMDg3OTI3

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.