変更の同期 (Synchronize Changes) (データ管理)

概要

ユーザーによって指定された同期方向で、2 つのレプリカ ジオデータベース間の変更を同期します。

使用法

  • このツールは、接続環境でレプリカを同期させる場合に使用されます。

  • このツールを使って、双方向レプリカ、一方向レプリカ、およびチェックアウト レプリカを同期させることができます。

  • レプリカ ジオデータベースは、ローカル ジオデータベースでもジオデータ サービスでもかまいません。

  • いったん同期すると、変更 (編集) 内容はターゲット ジオデータベースに反映され、すべてのユーザーが参照できるようになります。

構文

SynchronizeChanges(geodatabase_1, in_replica, geodatabase_2, in_direction, conflict_policy, conflict_definition, reconcile)
パラメーター説明データ タイプ
geodatabase_1

同期するレプリカをホストしているジオデータベース。ジオデータベースは、ローカルでもリモートでもかまいません。

Workspace; GeoDataServer
in_replica

ある入力ジオデータベース内に親レプリカが格納されていて、他の入力ジオデータベース内に子レプリカが格納されている有効なレプリカ。

String
geodatabase_2

相対レプリカをホストしているジオデータベース。ジオデータベースは、ローカルでもリモートでもかまいません。

Workspace; GeoDataServer
in_direction

変更内容を送信する方向を指定します。[ジオデータベース 1 → ジオデータベース 2]、[ジオデータベース 2 → ジオデータベース 1]、または [両方] の方向に変更内容を送信します。チェックアウト/チェックイン レプリカまたは一方向レプリカの場合、適切な方向は一方向だけです。双方向レプリカの場合、3 つの選択肢のいずれかを選択できます。

  • BOTH_DIRECTIONS変更内容は、双方向で同期されます。これがデフォルトです。
  • FROM_GEODATABASE2_TO_1変更内容はジオデータベース 2 からジオデータベース 1 に同期されます。
  • FROM_GEODATABASE1_TO_2変更内容はジオデータベース 1 からジオデータベース 2 に同期されます。
String
conflict_policy

競合が検出された場合の、競合の解決方法を指定します。

  • MANUALバージョニングのリコンサイルを使用して、競合を手動で解決します。
  • IN_FAVOR_OF_GDB1ジオデータベース 1 を優先して競合を解決します。これがデフォルトです。
  • IN_FAVOR_OF_GDB2ジオデータベース 2 を優先して競合を解決します。
String
conflict_definition

競合を定義する方法を指定します。

  • BY_OBJECT 親バージョン内と子バージョン内の同じ行またはフィーチャに加えたすべての変更に対して、リコンサイル中に競合を発生させます。これがデフォルトです。
  • BY_ATTRIBUTE 親バージョン内と子バージョン内の同じ行またはフィーチャの同じ属性 (列) に加えた変更に対してのみ、リコンサイル中に競合フラグを設定します。親バージョンと子バージョンで異なる属性に加えた変更は、リコンサイル中に競合とはみなされません。
String
reconcile

データの変更が親レプリカに送信された際に、競合が存在しない場合は親レプリカに自動的に変更をリコンサイルするかどうかを指定します。このオプションは、チェックアウト/チェックイン レプリカの場合にのみ有効となります。

  • DO_NOT_RECONCILE親バージョンとリコンサイルしません。これがデフォルトです。
  • RECONCILE親バージョンとリコンサイルします。
Boolean

派生した出力

名前説明データ タイプ
out_geodatabase_1

同期するレプリカをホストしているジオデータベース。

ワークスペース、GeoDataServer
out_geodatabase_2

相対レプリカをホストしているジオデータベース。

ワークスペース、GeoDataServer

コードのサンプル

SynchronizeChanges (変更の同期) の例 (Python ウィンドウ)

次の Python ウィンドウの例は、SynchronizeChanges 関数を使用する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/Data"
arcpy.SynchronizeChanges_management("MyData.sde", "My2wayReplica", 
                                    "MyData_child.sde", "BOTH_DIRECTIONS",
                                    "IN_FAVOR_OF_GDB1", "BY_ATTRIBUTE")
SynchronizeChanges (変更の同期) の例 2 (スタンドアロン スクリプト)

以下は、スタンドアロン Python スクリプトで SynchronizeChanges 関数を使用する方法を示しています。

# Name: SynchronizeChanges_Example2.py
# Description: Synchronizes changes for a one way replica from the Parent 
# to the child replica geodatabase. The parent is an enterprise geodatabase workspace, and the 
# child is file geodatabase.
# Import system modules
import arcpy
# Set workspace
arcpy.env.workspace = "C:/Data"
# Set local variables
replica_gdb1 = "MyData.sde"
replica_gdb2 = "Counties_replica.gdb"
replica_name = "MyOneWayReplica"
sync_direction = "FROM_GEODATABASE1_TO_2"
conflict_policy = "" 				# Not applicable for one way replicas, there is not conflict detection.
conflict_detection = ""  # Not applicable for one way replicas, there is not conflict detection.
reconcile = ""           # Only applicable for Checkout replicas
# Execute SynchronizeChanges
arcpy.SynchronizeChanges_management(replica_gdb1, replica_name, replica_gdb2, 
                                    sync_direction, conflict_policy, 
                                    conflict_detection, reconcile)

ライセンス情報

  • Basic: いいえ
  • Standard: はい
  • Advanced: はい

関連トピック