切换版本 (数据管理)

摘要

用于修改图层或表视图的工作空间以连接到指定版本。

使用情况

  • 此工具仅适用于要素图层和表视图。

  • 该工具不会编辑用于创建输入要素图层或表视图的企业级地理数据库连接文件或要素服务。 仅将输入要素图层、表视图、拓扑图层、宗地图层、公共设施网络图层或追踪网络图层的开放工作空间更改为连接到指定版本。

  • 支持事务和历史视图。

参数

标注说明数据类型
输入图层

将连接到指定版本的图层或表视图。

注:

拓扑图层、宗地图层、公共设施网络图层或追踪网络图层的子图层不是有效输入。

Feature Layer; Table View; Topology Layer; Parcel Layer; Utility Network Layer; Trace Network Layer
版本类型

指定输入要素图层将连接到的版本类型。

  • 传统版本连接到数据库的一种已定义状态(传统版本)。
  • 历史版本连接到表示过去某一特定时刻的版本,通常通过时间标记或历史标记指定。
  • 分支版本连接到分支版本。
String
版本名称
(可选)

输入要素图层将连接到的版本的名称。 如果使用历史版本,则此参数为可选参数。

String
日期和时间
(可选)

输入要素图层将连接到的历史版本的日期。

Date
包括参与控制器数据集的类
(可选)

指定参与类的工作空间是否也会更改。

仅当输入图层是拓扑图层、宗地图层、公共设施网络图层或追踪网络图层时,此参数才适用。

  • 选中 - 如果控制器数据集的参与类来自与控制器数据集相同的工作空间,则其版本将更改。 这是默认设置。
  • 未选中 - 仅控制器数据集的版本将更改。
Boolean

派生输出

标注说明数据类型
输出图层

已更新的输入数据集。

Feature Layer

arcpy.management.ChangeVersion(in_features, version_type, {version_name}, {date}, {include_participating})
名称说明数据类型
in_features

将连接到指定版本的图层或表视图。

注:

拓扑图层、宗地图层、公共设施网络图层或追踪网络图层的子图层不是有效输入。

Feature Layer; Table View; Topology Layer; Parcel Layer; Utility Network Layer; Trace Network Layer
version_type

指定输入要素图层将连接到的版本类型。

  • TRANSACTIONAL连接到数据库的一种已定义状态(传统版本)。
  • HISTORICAL连接到表示过去某一特定时刻的版本,通常通过时间标记或历史标记指定。
  • BRANCH连接到分支版本。
String
version_name
(可选)

输入要素图层将连接到的版本的名称。 如果使用历史版本,则此参数为可选参数。

String
date
(可选)

输入要素图层将连接到的历史版本的日期。

Date
include_participating
(可选)

指定参与类的工作空间是否也会更改。

仅当输入图层是拓扑图层、宗地图层、公共设施网络图层或追踪网络图层时,此参数才适用。

  • INCLUDE如果控制器数据集的参与类来自与控制器数据集相同的工作空间,则其版本将更改。
  • EXCLUDE仅控制器数据集的版本将更改。
Boolean

派生输出

名称说明数据类型
out_feature_layer

已更新的输入数据集。

Feature Layer

代码示例

ChangeVersion 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 ChangeVersion 函数。

import arcpy
from arcpy import env
env.workspace = r'c:\Connections\toolbox.sde'
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.street','RedlandsStreets')
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.streams','RedlandsStreams')
arcpy.MakeFeatureLayer_management(arcpy.SelectLayerByLocation_management("RedlandsStreams","WITHIN_A_DISTANCE","RedlandsStreets","100 Meters","NEW_SELECTION",'#'),
                                  'StreamsNearStreets','','','')
arcpy.ChangeVersion_management('RedlandsStreets','TRANSACTIONAL', 'TOOLBOX.proposedStreets2k9','')
arcpy.MakeFeatureLayer_management(arcpy.SelectLayerByLocation_management("RedlandsStreams","WITHIN_A_DISTANCE","RedlandsStreets","100 Meters","NEW_SELECTION",'#'),
                                  'NewStreamsNearStreets','','','')
ChangeVersion 示例 2(独立脚本)

在典型的版本化分析工作流中使用 ChangeVersion 函数。

# Name: ChangeVersion.py
# Description: Use the ChangeVersion tool in a typical versioned analysis workflow.
#              Quick check of additional streams within a pre-determined distance
#              of new proposed street development.

# Import system modules 
import arcpy
import sys
import os

# Set environments
arcpy.env.workspace = sys.path[0] + os.sep + "toolbox.sde"

# Create the layers
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.street','RedlandsStreets')
arcpy.MakeFeatureLayer_management(r'TOOLBOX.Redlands\TOOLBOX.streams','RedlandsStreams')

# Perform analysis on the Default version to determine
# current number of streams within 100 meters of streets.
selection1 = arcpy.SelectLayerByLocation_management("RedlandsStreams",
                                                    "WITHIN_A_DISTANCE",
                                                    "RedlandsStreets",
                                                    "100 Meters",
                                                    "NEW_SELECTION",
                                                    '#')
arcpy.MakeFeatureLayer_management(selection1,'StreamsNearStreets','','','')
print("Streams within 100 Meters of current streets: {}".format(
    arcpy.GetCount_management("StreamsNearStreets")[0]))

# Change to the development version
arcpy.ChangeVersion_management('RedlandsStreets',
                               'TRANSACTIONAL',
                               'TOOLBOX.proposedStreets2k9',
                               '')

# Perform the same analysis on the development version to see the effect of the proposed changes.
selection2 = arcpy.SelectLayerByLocation_management("RedlandsStreams",
                                                   "WITHIN_A_DISTANCE",
                                                   "RedlandsStreets",
                                                   "100 Meters",
                                                   "NEW_SELECTION",
                                                   '#')
arcpy.MakeFeatureLayer_management(selection2,'NewStreamsNearStreets','','','')
print("Streams projected to be within 100 Meters of streets after proposed street additions: {}".format(
    arcpy.GetCount_management("NewStreamsNearStreets")[0]))
ChangeVersion 示例 3(独立脚本)

使用 ChangeVersion 函数将要素服务图层更改为指定分支版本。

# Name: ChangeVersionBranchVersioning.py
# Description: Use the ChangeVersion tool to change the branch version of a feature service
#              layer that has the version management capability enabled.

# 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/0"

# Create the layers
arcpy.management.MakeFeatureLayer(myFS, 'myFSLayer')

# Change to a branch version named myVersion
arcpy.management.ChangeVersion('myFSLayer', "BRANCH", "portaladmin.myVersion")

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 否
  • Standard: 是
  • Advanced: 是

相关主题