ListVersions

Zusammenfassung

Die Versionen im Workspace werden aufgelistet.

Auswertung

Sie können den Pfad zu einer Verbindungsdatei oder die Feature-Service-URL als Argument für die Funktion angeben oder die Workspace-Umgebung auf die Verbindungsdatei oder die Feature-Service-URL festlegen und die ListVersions-Funktion ohne Argumente aufrufen.

Hinweis:

Die Funktion arcpy.da.ListVersions ist nicht mit der Funktion arcpy.ListVersions zu verwechseln. Letztere dient zur Rückgabe einer Liste der Versionsnamen, zu deren Verwendung der verbundene Benutzer berechtigt ist.

Syntax

ListVersions (sde_workspace)
ParameterErklärungDatentyp
sde_workspace

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

String
Rückgabewert
DatentypErklärung
Version

Eine Liste von Version-Objekten.

Codebeispiel

ListVersions - Beispiel 1

Identifizieren aller innerhalb der letzten Woche geänderten Versionen

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)
ListVersions - Beispiel 2

Löschen aller Versionen ohne Child-Versionen im Besitz eines bestimmten Benutzers

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)
ListVersions - Beispiel 3

Abgleichen und Zurückschreiben von Versionen mit einer spezifischen Beschreibung In diesem Beispiel wird ein Feature-Service mit aktivierter Versionsverwaltungsfunktion verwendet.

# 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')

Verwandte Themen