概要
ワークスペース内のバージョンをリストします。
ディスカッション
接続ファイルへのパスまたはフィーチャ サービスの 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 |
コードのサンプル
過去 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)
特定ユーザーに属する子を持たないバージョンを削除します。
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)
特定の説明を含むバージョンをリコンサイルおよびポストします。 この例では、バージョン管理機能が有効化されているフィーチャ サービスを使用しています。
# 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')