Mudando para a versão histórica usando o ArcPy?


9

Estou com um problema ao tentar mudar para uma versão histórica em uma classe de recurso SDE usando Python e arcpy.ChangeVersion_management .

Consigo alterar manualmente a versão para uma data e hora específicas usando o ArcMap. Também sou capaz de automatizar completamente o processo usando o ModelBuilder.

Quando exporto o modelo ModelBuilder para um script python, o script é executado sem erros, mas a versão selecionada é a versão histórica com a data de hoje e não a data selecionada como o parâmetro date.

Usando o Arcmap e a janela Python (Geoprocessamento -> Python), também posso executar o código python sem erros e o resultado é o mesmo. A camada histórica é selecionada com a data atual e não a data selecionada como parâmetro de data.

Aqui está a sintaxe do Python que estou executando:

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

Eu também recebo os mesmos resultados usando:

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

enquanto o seguinte lança um RuntimeError:

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

Isso é um bug conhecido ou estou apenas fazendo isso da maneira errada?


Meu palpite é que há um problema com a forma como você define a data. O parâmetro da ferramenta espera que o valor seja um objeto Date, não uma String ( resources.arcgis.com/en/help/main/10.2/index.html#//… ). Há uma publicação útil dos fóruns da Esri sobre isso: forums.arcgis.com/threads/…
Alex Tereshenkov

A linha de código foi gerada a partir da exportação do ArcGIS Model Builders para o comando de menu Script Python. Alterei o código python para usar um objeto Date e os resultados são os mesmos. A solução alternativa da postagem fornecida é fazer com que o usuário final inicie com a versão histórica e use a função para mudar para a versão atual. Esta solução alternativa não funcionará para mim devido ao fato de eu estar criando um script para todo o processo e a data histórica vir de uma consulta SQL.
precisa

11
Compreendo. Você provavelmente deve entrar em contato com o suporte técnico da Esri. Também não consegui fazer isso funcionar com o arcpy na versão 10.2.2. Você pode publicar seu código, embora no corpo da pergunta, pois não está claro em qual formato você obtém seu objeto de data e como fornece esse parâmetro à ferramenta ChangeVersion. Meu pressentimento é que não podemos descobrir a maneira correta de fornecer o objeto de data para a ferramenta (usei a GUI da ferramenta de script para isso, parâmetro do tipo Date) ou há um erro nessa ferramenta.
Alex Tereshenkov

2
Alex, obrigado por reservar um tempo para analisar isso. Parece que entrar em contato com o suporte técnico da Esri é o próximo passo. Vou atualizar a pergunta quando receber uma resposta deles.
Brad Bradborn

Respostas:


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.