Passare alla versione storica usando ArcPy?


9

Sto riscontrando un problema nel tentativo di passare a una versione storica in una classe di funzionalità SDE utilizzando Python e arcpy.ChangeVersion_management .

Sono in grado di modificare manualmente la versione in una data e ora specifiche utilizzando ArcMap. Sono anche in grado di automatizzare completamente il processo utilizzando ModelBuilder.

Quando esporto il modello ModelBuilder in uno script Python, lo script viene eseguito senza errori ma la versione selezionata è la versione storica con la data odierna e non la data selezionata come parametro della data.

Utilizzando Arcmap e la finestra di Python (Geoprocessing -> Python) posso anche eseguire il codice Python senza errori e il risultato è lo stesso. Il livello storico viene selezionato con la data corrente e non la data selezionata come parametro della data.

Ecco la sintassi di Python che sto eseguendo:

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

Ottengo anche gli stessi risultati usando:

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

mentre quanto segue genera un RuntimeError:

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

Si tratta di un bug noto o sto solo facendo questo nel modo sbagliato?


Suppongo che ci sia un problema con il modo in cui si definisce la data. Il parametro dello strumento prevede che il valore sia un oggetto Date, non una stringa ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). C'è un utile post sui forum Esri su questo: forums.arcgis.com/threads/…
Alex Tereshenkov,

La riga di codice è stata generata dall'esportazione del menu ArcGIS Model Builders in Python Script. Ho modificato il codice Python per utilizzare un oggetto Date e i risultati sono gli stessi. La soluzione dal post fornito consiste nel far iniziare l'utente finale con la versione storica e quindi utilizzare la funzione per passare alla versione corrente. Questa soluzione alternativa non funzionerà per me a causa del fatto che sto copiando l'intero processo e la data storica proviene da una query SQL.
Brad Welborn,

1
Capisco. Probabilmente dovresti contattare il Supporto tecnico Esri allora. Non sono riuscito a far funzionare questa cosa con arcpy su 10.2.2. È possibile pubblicare il codice, anche se nel corpo della domanda poiché non è chiaro in quale formato si ottiene l'oggetto data e come si fornisce questo parametro allo strumento ChangeVersion. La mia sensazione è che non riusciamo a trovare un modo giusto per fornire l'oggetto data allo strumento (ho usato la GUI dello strumento di script, parametro del tipo Data) o c'è un bug con questo strumento.
Alex Tereshenkov,

2
Alex, grazie per aver dedicato del tempo a guardare questo. Sembra che contattare il supporto tecnico di Esri sia il mio prossimo passo. Aggiornerò la domanda quando riceverò una risposta da loro.
Brad Welborn,

Risposte:


6

Dopo alcune ulteriori ricerche ho confermato che si tratta di un bug noto. Spero che aggiungere queste informazioni qui salverà qualcuno un po 'di tempo in futuro in quanto non è stato facile trovare usando Google o il sito Esri.

Bug NIM-087927
Inviato: 8 gennaio 2013
Stato: Apri
http://support.esri.com/en/bugs/nimbus/TklNMDg3OTI3

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.