Instrução
Reconciliar e postar versões em um fluxo de trabalho de controle de versão de várias camadas, como secundário para primário para padrão, seguido de compactação, é um fluxo de trabalho típico executado por administradores ou gerentes de GIS.
Nota: Este artigo se refere apenas ao ArcGIS da versão 10.0. Versões posteriores do ArcGIS podem conter diferentes funcionalidades, bem como diferentes nomes e locais para menus, comandos e ferramentas de geoprocessamento.
Nota: O software ArcSDE, incluindo o servidor de aplicativos, ferramentas de comando e SDK com APIs C e Java, foi descontinuado no ArcGIS 10.2.2 e não é mais distribuído. Os recursos do software ArcGIS foram descontinuados, ao invés de removidos imediatamente, para fornecer aos clientes compatibilidade com versões anteriores e dar o aviso com a maior antecedência possível para a adoção de tecnologia mais recente.
O script Python abaixo fornece um método para automatizar o fluxo de trabalho de reconciliação, postagem e compactação. O fluxo de trabalho assume três camadas (padrão> primário> secundário), de forma que as versões secundárias sejam reconciliadas com as versões primárias e as versões primárias sejam reconciliadas com o padrão.
Nota: O script também compacta o geodatabase para o estado 0, exclui todas as versões, exceto DEFAULT e recria as versões secundárias.
vTree = {'SDE.Parent':'SDE.Child','SDE.QA':'SDE.Edit'}
workspace = r"Database Connections\MXD2.sde"
defaultVersion = "sde.DEFAULT"
logName = "RecPostLog.txt" logName2 = "RecPostDefaultLog.txt" logName3 = "CompressLog.txt" logWorkspace = r"C:\temp"
#Reconciliar e postar versões em 10.0 import arcpy, os, sys, string #Preencha as versões pai e filho da seguinte maneira ('Pai':'Filho', etc.). DO NOT LIST DEFAULT vTree = {'SDE.Parent':'SDE.Child','SDE.QA':'SDE.Edit'} #Reconcilie e publique versões filho com pai def RecPostNonDefault(workspace,logWorkspace,logName): outLog = open(os.path.join(logWorkspace, logName), 'w') for key, val in vTree.iteritems(): arcpy.ReconcileVersion_management(workspace, val, key,"BY_OBJECT", "FAVOR_TARGET_VERSION", "NO_LOCK_AQUIRED", "NO_ABORT", "POST") print "Reconciling and posting {0} to {1}".format(val, key) outLog.write("Reconciling and posting {0} to {1}".format(val, key)) outLog.write("\n") outLog.close() del outLog, key, val #Reconcilie e publique com o pai def RecPostDefault(workspace,logWorkspace,logName2,defaultVersion): outLog = open(os.path.join(logWorkspace, logName2), 'w') #Reconcilie e publique pais com DEFAULT for key, val in vTree.iteritems(): arcpy.ReconcileVersion_management(workspace, key, defaultVersion,"BY_OBJECT", "FAVOR_TARGET_VERSION", "NO_LOCK_AQUIRED", "NO_ABORT", "POST") print "Reconciliando e postando {0} em DEFAULT".format(key) outLog.write("Reconciliando e postando {0} em DEFAULT".format(key)) outLog.write("\n") outLog.close() del outLog, key, val def DeleteChildVersions(workspace): arcpy.ClearWorkspaceCache_management() for key, val in vTree.iteritems(): arcpy.DeleteVersion_management(workspace, val) print "Deleted {0}".format(val) def DeleteParentVersions(workspace): arcpy.ClearWorkspaceCache_management() for key, val in vTree.iteritems(): arcpy.DeleteVersion_management(workspace, key) print "Deleted {0}".format(key) #Compress database def Compress(workspace,logWorkspace,logName3): arcpy.ClearWorkspaceCache_management() outLog = open(os.path.join(logWorkspace, logName3), 'w') arcpy.Compress_management(workspace) print ("Banco de dados compactado {0}".format(workspace)) outLog.write("Banco de dados compactado {0}".format(workspace)) outLog.close() def RecreateVersions(workspace, defaultVersion): for key, val in vTree.iteritems(): arcpy.CreateVersion_management(workspace,defaultVersion, key[4:], "PUBLIC") print "Created version {0}".format(key) arcpy.CreateVersion_management(workspace, key, val[4:], "PUBLIC") print "Versão criada {0}".format(val) if __name__=="__main__": workspace = r"Database Connections\MXD2.sde" defaultVersion = "sde.DEFAULT" logName = "RecPostLog.txt" logName2 = "RecPostDefaultLog.txt" logName3 = "CompressLog.txt" logWorkspace = r"C:\temp" RecPostNonDefault(workspace,logWorkspace,logName) RecPostDefault(workspace,logWorkspace,logName2,defaultVersion) DeleteChildVersions(workspace) DeleteParentVersions(workspace) Compress(workspace,logWorkspace,logName3) RecreateVersions(workspace, defaultVersion)
Obtenha ajuda de especialistas do ArcGIS
Baixe o Esri Support App