バージョンのリコンサイル(Reconcile Versions) (データ管理)
サマリ
ターゲットバージョンに対して 1 つまたは複数のバージョンをリコンサイルします。
使用法
-
リコンサイルを実行するには、バージョンを編集中のユーザが自分だけであることと、バージョンの保存またはポストまでのリコンサイル プロセス全体を通じてバージョンの編集を許可されたユーザが自分だけであることが前提となります。
リコンサイル プロセスを実行するには、編集中のバージョンで変更されたすべてのフィーチャクラスに対するフル アクセス権が必要です。
バージョニング ツールはエンタープライズ(ArcSDE)ジオデータベースでのみ機能します。ファイル ジオデータベースとパーソナル ジオデータベースは、バージョニングをサポートしていません。
ジオデータベースは、バージョニングを使用することで、効率的にロング トランザクションを管理およびサポートできるように設計されています。
リコンサイル プロセスを実行すると、編集バージョンとターゲット バージョン間の差分が検出され、その差分に競合フラグを設定します。競合が発生している場合は、その競合を解決する必要があります。
「ALL_VERSIONS」オプションを使用して正常にリコンサイル プロセスを実行すると、ジオデータベースのすべてのバージョンの状態が同じになります。
構文
パラメータ | 説明 | データ タイプ |
input_database |
リコンサイルするバージョンを含むエンタープライズ ジオデータベース。デフォルトでは、その環境で定義されているワークスペースが使用されます。 | Workspace |
reconcile_mode |
ツールの実行時にどのバージョンをリコンサイルするかを決定します。
| String |
target_version (オプション) |
編集バージョンの直系に当たる任意の上位バージョン(親バージョンやデフォルト バージョンなど)の名前。 一般的に、リコンサイルを実行しているユーザが自分の編集バージョンに取り込もうとしている、他のバージョンの編集が含まれます。 | String |
edit_versions [edit_versions,...] (オプション) | 選択したターゲット バージョンに対してリコンサイルされる 1 つまたは複数の編集バージョンの名前。個別のバージョン名を指定するか、バージョン名の Python リストを指定します。 | String |
acquire_locks (オプション) |
フィーチャのロックを取得するかどうかを指定します。
| Boolean |
abort_if_conflicts (オプション) |
ターゲット バージョンと編集バージョン間の競合が検出された場合に、リコンサイル プロセスを中断するかどうかを指定します。
| Boolean |
conflict_definition (オプション) |
競合の発生に必要な条件を記述します。
| Boolean |
conflict_resolution (オプション) |
競合が検出された場合の動作を記述します。
| String |
with_post (オプション) |
リコンサイル後のターゲット バージョンに、現在の編集セッションをポストします。
| Boolean |
with_delete (オプション) |
| Boolean |
out_log (オプション) |
出力されるログ ファイルの名前と場所を指定します。ログ ファイルは、ジオプロセシング メッセージの内容を含む ASCII ファイルです。 | File |
コードのサンプル
次のスタンドアロン スクリプトは、ReconcileVersions(バージョンのリコンサイル)ツールを使用して、SDE 接続ファイルで指定されたユーザが所有するすべてのバージョンをリコンサイルする方法を示しています。
# Name: ReconcileVersions.py
# Description: Reconciles all versions owned by a user with SDE.Default
# Import system modules
import arcpy, os
from arcpy import env
# Set workspace
workspace = r'c:\Connections\bender@production.sde'
# Set the workspace environment
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'