¿Cambiar a la versión histórica con ArcPy?

9

Tengo un problema al intentar cambiar a una versión histórica en una clase de entidad SDE usando Python y arcpy.ChangeVersion_management .

Puedo cambiar manualmente la versión a una fecha y hora específicas usando ArcMap. También puedo automatizar completamente el proceso usando ModelBuilder.

Cuando exporto el modelo ModelBuilder a un script de Python, el script se ejecuta sin error, pero la versión seleccionada es la versión histórica con la fecha de hoy y no la fecha seleccionada como parámetro de fecha.

Usando Arcmap y la ventana de Python (Geoprocesamiento -> Python) también puedo ejecutar el código de Python sin error y el resultado es el mismo. La capa histórica se selecciona con la fecha actual y no con la fecha seleccionada como parámetro de fecha.

Aquí está la sintaxis de Python que estoy ejecutando:

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

También obtengo los mismos resultados usando:

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

mientras que lo siguiente arroja un RuntimeError:

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

¿Se trata de un error conocido o simplemente voy por el camino equivocado?

Brad Welborn
fuente
Supongo que hay un problema con la forma en que define la fecha. El parámetro de la herramienta espera que el valor sea un objeto Date, no una String ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). Hay una publicación útil en los foros de Esri sobre esto: forums.arcgis.com/threads/…
Alex Tereshenkov
La línea de código se generó a partir de la exportación de ArcGIS Model Builders al comando de menú Python Script. Cambié el código de Python para usar un objeto Date y los resultados son los mismos. La solución de la publicación proporcionada es hacer que el usuario final comience con la versión histórica y luego use la función para cambiar a la versión actual. Esta solución alternativa no funcionará para mí debido al hecho de que estoy haciendo un script de todo el proceso y la fecha histórica proviene de una consulta SQL.
Brad Welborn
1
Entiendo. Probablemente debería ponerse en contacto con el soporte técnico de Esri. Tampoco pude hacer que esto funcionara con arcpy en 10.2.2. Puede publicar su código, aunque en el cuerpo de la pregunta, ya que no está claro en qué formato obtiene su objeto de fecha y cómo proporciona este parámetro a la herramienta ChangeVersion. Mi intuición es que no podemos encontrar una manera correcta de proporcionar el objeto de fecha a la herramienta (he usado la GUI de la herramienta de script para eso, parámetro de tipo de fecha) o hay un error con esta herramienta.
Alex Tereshenkov
2
Alex, gracias por tomarte el tiempo de ver esto. Parece que contactar con el soporte técnico de Esri es mi siguiente paso. Actualizaré la pregunta cuando reciba una respuesta de ellos.
Brad Welborn

Respuestas:

6

Después de algunas investigaciones adicionales, he confirmado que este es un error conocido. Con suerte, agregar esta información aquí le ahorrará a alguien algún tiempo en el futuro, ya que no fue fácil de encontrar usando Google o el sitio de Esri.

Error NIM-087927
Enviado: 8 de enero de 2013
Estado: Abierto
http://support.esri.com/en/bugs/nimbus/TklNMDg3OTI3

Brad Welborn
fuente