Passer à la version historique à l'aide d'ArcPy?

9

J'ai un problème en essayant de passer à une version historique sur une classe d' entités SDE en utilisant Python et arcpy.ChangeVersion_management .

Je peux modifier manuellement la version à une date et une heure spécifiques à l'aide d'ArcMap. Je suis également en mesure d'automatiser entièrement le processus à l'aide de ModelBuilder.

Lorsque j'exporte le modèle ModelBuilder vers un script python, le script s'exécute sans erreur, mais la version sélectionnée est la version historique avec la date d'aujourd'hui et non la date sélectionnée comme paramètre de date.

En utilisant Arcmap et la fenêtre Python (Géotraitement -> Python), je peux également exécuter le code python sans erreur et le résultat est le même. La couche historique est sélectionnée avec la date actuelle et non la date sélectionnée comme paramètre de date.

Voici la syntaxe Python que j'exécute:

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

J'obtiens également les mêmes résultats en utilisant:

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

tandis que ce qui suit lance une RuntimeError:

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

Est-ce un bug connu ou est-ce que je m'y trompe?

Brad Welborn
la source
Je suppose qu'il y a un problème avec la façon dont vous définissez la date. Le paramètre de l'outil s'attend à ce que la valeur soit un objet Date, pas une chaîne ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). Il y a un message utile sur les forums Esri à ce sujet: forums.arcgis.com/threads/…
Alex Tereshenkov
La ligne de code a été générée à partir de la commande de menu d'exportation ArcGIS Model Builders vers Python Script. J'ai changé le code python pour utiliser un objet Date et les résultats sont les mêmes. La solution consiste à demander à l'utilisateur final de démarrer avec la version historique, puis d'utiliser la fonction pour passer à la version actuelle. Cette solution de contournement ne fonctionnera pas pour moi car j'écris tout le processus et la date historique provient d'une requête SQL.
Brad Welborn
1
Je comprends. Vous devriez alors probablement contacter le support technique Esri. Je n'ai pas pu faire fonctionner cette chose avec arcpy sur 10.2.2 non plus. Vous pouvez publier votre code, bien que dans le corps de la question car il n'est pas clair dans quel format vous obtenez votre objet date et comment vous fournissez ce paramètre à l'outil ChangeVersion. Mon intuition est que nous ne pouvons pas trouver une bonne façon de fournir l'objet date à l'outil (j'ai utilisé l'interface graphique de l'outil de script pour cela, paramètre de type Date) ou il y a un bug avec cet outil.
Alex Tereshenkov
2
Alex, merci d'avoir pris le temps de regarder ça. On dirait que contacter le support technique Esri est ma prochaine étape. Je mettrai à jour la question lorsque j'obtiendrai une réponse de leur part.
Brad Welborn

Réponses:

6

Après quelques recherches supplémentaires, j'ai confirmé qu'il s'agit d'un bug connu. J'espère que l'ajout de ces informations ici fera gagner du temps à quelqu'un car il n'a pas été facile de trouver Google ou le site Esri.

Bogue NIM-087927
Soumis le 8 janvier 2013
État: ouvert
http://support.esri.com/en/bugs/nimbus/TklNMDg3OTI3

Brad Welborn
la source