使用方法
协调过程要求您是当前正在编辑版本的唯一用户,并且是整个协调过程中(直到执行保存或提交操作为止)将编辑版本的唯一用户。
协调过程要求您对正在编辑的版本中的所有已修改要素类具有全部权限。
版本管理工具适用于企业级地理数据库。文件地理数据库不支持版本管理。
此工具支持在启用版本管理功能的情况下协调/提交从分支工作空间发布的数据。不支持通过地理数据库连接文件来协调/提交分支版本化。
地理数据库用于高效管理和支持使用版本的长事务。
协调过程将检测到编辑版本与目标版本之间的差异,然后将这些差异标记为冲突。如果存在冲突,则应将其解决。
使用协调所有版本选项成功运行协调过程后,地理数据库中的所有版本都会变为相同版本。
语法
arcpy.management.ReconcileVersions(input_database, reconcile_mode, {target_version}, {edit_versions}, {acquire_locks}, {abort_if_conflicts}, {conflict_definition}, {conflict_resolution}, {with_post}, {with_delete}, {out_log}, {proceed_if_conflicts_not_reviewed}, {reconcile_checkout_versions})
参数 | 说明 | 数据类型 |
input_database | 包含要协调的版本的企业级地理数据库。默认使用地理处理工作空间环境。 对于分支版本化,这将为要素服务 URL(即 https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer)。 | Workspace |
reconcile_mode | 指定执行工具时要协调的版本。 如果输入为分支工作空间,则此参数的唯一有效选择是协调所有版本。
| String |
target_version (可选) | 编辑版本的任何直系版本的名称,例如父版本或默认版本。 它通常包含您希望在编辑版本中包括的其他版本的编辑内容。 如果输入工作空间为分支版本服务,则此参数的唯一有效选择是协调默认版本。 | String |
edit_versions [edit_versions,...] (可选) | 要与所选目标版本进行协调的版本或编辑版本的名称。可以是单个版本名称或版本名称的列表。 | String |
acquire_locks (可选) | 指定是否将获取要素锁定。
| Boolean |
abort_if_conflicts (可选) | 如果协调过程中在目标版本与编辑版本之间发现冲突,则指定是否将中止协调过程。
| Boolean |
conflict_definition (可选) | 指定发生冲突所需的条件是由对象(行)还是由属性(列)定义。
| String |
conflict_resolution (可选) | 指定检测到冲突时的解决方案。 如果输入为分支工作空间,则默认支持编辑版本。
| String |
with_post (可选) | 指定是否将当前编辑会话提交到已协调的目标版本。
| Boolean |
with_delete (可选) | 指定提交后是否删除已协调的编辑版本。如果 with_post 参数设置为 POST,则应用此参数。
| Boolean |
out_log (可选) | 写入日志文件的名称和位置。日志文件为包含地理处理消息内容的 ASCII 文件。 | File |
proceed_if_conflicts_not_reviewed (可选) | 如果协调过程开始之前存在未经审核的冲突,则指定是否将继续进行协调。如果选择继续,则执行工具时,之前会话中未解决的冲突将会丢失。此参数仅适用于分支版本化。
| Boolean |
reconcile_checkout_versions (可选) |
指定协调是否将包括检出复本版本。如果要将检出复本创建为地理数据库复制工作流的一部分,则系统会在地理数据库中创建相关联的版本。您可通过此选项在要协调的版本列表中包括或移除这些类型的版本。此参数不适用于分支版本化。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
out_workspace | 已更新的输入工作空间。 | 工作空间 |
代码示例
以下独立脚本演示了如何使用 ReconcileVersions 工具协调在数据库连接文件中指定的用户所拥有的所有版本。
# Name: ReconcileVersions.py
# Description: Reconciles all versions owned by a user with SDE.Default
# Import system modules
import arcpy, os
# Set workspace
workspace = 'C:/Data/connections/bender@production.sde'
# Set the workspace environment
arcpy.env.workspace = workspace
# Use a list comprehension to get a list of version names where the owner
# is the current user and make sure sde.default is not selected.
verList = [ver.name for ver in arcpy.da.ListVersions() if ver.isOwner
== True and ver.name.lower() != 'sde.default']
arcpy.ReconcileVersions_management(workspace,
"ALL_VERSIONS",
"SDE.Default",
verList,
"LOCK_ACQUIRED",
"NO_ABORT",
"BY_OBJECT",
"FAVOR_TARGET_VERSION",
"NO_POST",
"KEEP_VERSION",
"c:\RecLog.txt")
print('Reconciling Complete')
环境
许可信息
- Basic: 否
- Standard: 是
- Advanced: 是