ListVersions

Synthèse

Répertorie les versions dans l'espace de travail.

Discussion

Vous pouvez définir le chemin d'accès à un fichier de connexion ou l'URL du service d'entité comme argument de la fonction ou définir l'environnement de l'espace de travail sur le fichier de connexion ou l'URL du service d'entités et appeler la fonction ListVersions sans aucun argument.

Remarque :

La fonction arcpy.da.ListVersions ne doit pas être confondue avec la fonction arcpy.ListVersions, qui permet de renvoyer une liste des noms de version pouvant être utilisés par l'utilisateur connecté.

Syntaxe

ListVersions (sde_workspace)
ParamètreExplicationType de données
sde_workspace

An enterprise geodatabase workspace or a feature service with version management capability enabled.

String
Valeur renvoyée
Type de donnéesExplication
Version

Liste d’objets Version.

Exemple de code

Exemple 1 d'utilisation de la fonction ListVersions

Identifier toutes les versions modifiées au cours de la semaine passée.

import arcpy
import datetime

# Use datetime to establish current date/time
#
now = datetime.datetime.now()

sdeConnection = "C:/MyProject/toolboxDEFAULTVersion.sde"

# Compare lastModified property of each version to current date, and 
#  print version name if the version was modified in the last 7 days.
#
for version in arcpy.da.ListVersions(sdeConnection):
    if (now - version.lastModified).days < 7:
        print(version.name)
Exemple 2 d'utilisation de la fonction ListVersions

Supprimer toutes les versions appartenant à un utilisateur donné sans enfants.

import arcpy

sdeConnection = "C:/MyProject/toolboxDEFAULTVersion.sde"

for version in arcpy.da.ListVersions(sdeConnection):
    # Delete any versions owned by "RJones" that don't have any children
    #
    if version.name.split(".")[0] == "RJones" and not version.children:
        print("Deleting version {0}".format(version.name))
        arcpy.DeleteVersion_management(sdeConnection, version.name)
Exemple 3 d'utilisation de la fonction ListVersions

Réconcilier et réinjecter des versions avec une description spécifique. Cet exemple utilise un service d'entités dont la fonction de gestion des versions est activée.

# Import system modules 
import arcpy

# Sign into ArcGIS Enterprise
arcpy.SignInToPortal("https://myserver.mydomain.com/portal", 'portaladmin', 
                     'my.password')

# Create a variable for the feature service URL
myFS = "https://myserver.mydomain.com/server/rest/services/BranchVersioningData/FeatureServer"

# Use the ListVersions function to get a list of versions
versions = arcpy.da.ListVersions(myFS)

# Create a list of version to reconcile
listToRec = []

# For each version in the list, append only those that have the "READY TO POST" 
# description
for version in versions:
    if "READY FOR POST" in version.description.upper():
        listToRec.append(version.name)
        
# Reconcile and post the versions 
arcpy.ReconcileVersions_management(myFS,
                                   'ALL_VERSIONS',
                                   'sde.DEFAULT',
                                   listToRec,
                                   'NO_LOCK_ACQUIRED',
                                   'ABORT_CONFLICTS',
                                   'BY_OBJECT',
                                   'FAVOR_EDIT_VERSION',
                                   'POST',
                                   'KEEP_VERSION')

Rubriques connexes