ListVersions

概要

ワークスペース内のバージョンをリストします。

ディスカッション

接続ファイルへのパスまたはフィーチャ サービスの URL を関数の引数として指定できます。または、ワークスペース環境を接続ファイルまたはフィーチャ サービスの URL に設定して、ListVersions 関数を引数を指定せずに呼び出すことができます。

メモ:

arcpy.da.ListVersions 関数を、接続しているユーザーが使用権限を持っているバージョン名のリストを返すために使用される arcpy.ListVersions 関数と混同しないでください。

構文

ListVersions (sde_workspace)
パラメーター説明データ タイプ
sde_workspace

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

String
戻り値
データ タイプ説明
Version

Version オブジェクトのリスト。

コードのサンプル

ListVersions の例 1

過去 1 週間以内に変更されたすべてのバージョンを特定します。

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 の例 2

特定ユーザーに属する子を持たないバージョンを削除します。

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 の例 3

特定の説明を含むバージョンをリコンサイルおよびポストします。 この例では、バージョン管理機能が有効化されているフィーチャ サービスを使用しています。

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

関連トピック