Suite

L'outil ReconcileVersions renvoie l'ERREUR 000301

L'outil ReconcileVersions renvoie l'ERREUR 000301


Je souhaite créer une version, entrer dans la version, apporter des modifications, puis publier et réconcilier cette version. Lorsque j'arrive à l'outil ReconcileVersions_management, il me donne

ERREUR 000301 : L'espace de travail est du mauvais type

Je pense que cela pourrait signifier "la version est verrouillée pour l'édition" ou "la connexion à la base de données est toujours ouverte - nous ne pouvons pas l'utiliser". Je poste mon code long-ish, à la recherche de réponses.

import arcpy import os from datetime import datetime # établir une connexion à SDE.DEFAULT try: filename1 = "fn1" foldername1 = os.path.join(os.environ['APPDATA'],"ESRI","Desktop10.2", "ArcCatalog") servername1 = "gissvc" servicename1 = "sde:oracle11g:GISDEVR" dbname1 = "" auth1 = "" un1 = "MyUser" pass1 = "MyPass" userinfo1 = "" ver1 = "SDE.DEFAULT" sv1 = " SAVE_VERSION" si os.path.isfile(os.path.join(os.environ['APPDATA'],"ESRI","Desktop10.2","ArcCatalog", filename1 + ".sde")): os.remove (os.path.join(os.environ['APPDATA'],"ESRI","Desktop10.2","ArcCatalog", filename1 + ".sde")) print "création de la connexion à " + ver1 arcpy.CreateArcSDEConnectionFile_management( nomdossier1, nomfichier1, nomserveur1, nomservice1, nomdb1, auth1, un1, pass1, userinfo1, ver1, sv1) ws1 = os.path.join(os.environ['APPDATA'],"ESRI","Desktop10.2"," ArcCatalog", filename1 + ".sde") ver2 = "net_edits" # crée une version pour la version dans arcpy.da.ListVersions(ws1) : si ver2 dans version.name : print ver2 + " existe, suppression" arcpy.DeleteVersion_management(ws1, version.name) print "création d'une nouvelle version, " + ver2 arcpy.CreateVersion_management(ws1, "SDE.DEFAULT", ver2, "PUBLIC") # se connecter à la nouvelle version filename2 = "fn2" foldername2 = os .path.join(os.environ['APPDATA'],"ESRI","Desktop10.2","ArcCatalog") servername2 = "gissvc" servicename2 = "sde:oracle11g:GISDEVR" dbname2 = "" auth2 = "" un2 = "MyUser" pass2 = "MyPass" userinfo2 = "" #ver2 = "net_edits" sv2 = "SAVE_VERSION" if os.path.isfile(os.path.join(os.environ['APPDATA'],"ESRI" ,"Desktop10.2","ArcCatalog", filename2 + ".sde")): os.remove(os.path.join(os.environ['APPDATA'],"ESRI","Desktop10.2"," ArcCatalog", filename2 + ".sde")) print "création de la connexion à " + ver2 arcpy.CreateArcSDEConnectionFile_management(foldername2, filename2, servername2, servicename2, dbname2, auth2, un2, pass2, userinfo2, ver2, sv2) ws2 = os.path .join(os.environ['APPDATA'],"ESRI","Desktop10.2","ArcCatalog", filename2 + ".sde") # modifiez certaines choses -- sélectionnez où status = 5, changez à "tacos" tbl_vw = "t" où = 'STATUS = 5' arcpy.MakeTableView_management(os.path.join(ws2, "fooditems"), tbl_vw, où, "", "") arcpy.CalculateField_management(tbl_vw, " STATUS", '"tacos"') # fermer les connexions arcpy.ClearWorkspaceCache_management() print arcpy.GetMessages() # réconcilier avec post reclogname = "reconcile_log_" + str(datetime.now().strftime('%Y-%m- %d')) + ".txt" reclog = os.path.join("F:PythonScripts","ErrorLogFiles",reclogname) if os.path.isfile(reclog): os.remove(reclog) print "rapprochement avec les options post et delete_version définies" arcpy.ReconcileVersions_management(ws2, "ALL_VERSIONS", "SDE.Default", ver2, "LOCK_ACQUIRED", "ABORT_CONFLICTS", "BY_OBJECT", "FAVOR_TARGET_VERSION", "POST", "DELETE_VERSION", reclog ) sauf Exception en tant que e: imprimer e.message

J'ai eu le même problème : j'ai passé du temps à dépanner l'opération dans ArcMap (où elle a réussi), puis à copier l'extrait de code python à partir du volet Résultats et à le comparer à mon code.

Résultat final : lorsque vous faites référence à la version par défaut dans arcpy.ReconcileVersions_management, il doit s'agir de sde.DEFAULT, et non de SDE.Default. J'ai eu ça aussi, j'ai mis du temps à comprendre.


J'ai corrigé cette erreur en changeant le type de connexion en 'dbo.DEFAULT'. Cela a réussi car mon fichier de connexion a été créé avec un utilisateur avec un rôle dbo dans SQL (même si l'authentification de la connexion sde est OS).

Comment : automatiser les processus de réconciliation, de publication et de compression

DBO ou SDE ou quel schéma ?


Voir la vidéo: سيتكوم لوتيل. الحلقة الخامسة والعشرون