Synchronize Changes (Data Management)
Summary
Synchronizes updates between two replica geodatabases in a direction specified by the user.
Usage
- 
This tool is used when synchronizing replicas in connected mode. To synchronize replicas in disconnected mode see the Export_Data_Change_Message, Import Message, Export Acknowledgement Message and Re-Export Unacknowledged Messages tools. 
- 
Two-way, one-way, and check-out replicas can be synchronized with this tool. 
- 
The replica geodatabases can be local geodatabases or geodata services. 
- 
Once synchronized, the changes (edits) will be reflected in the target geodatabase and viewable by all users. 
Syntax
| Parameter | Explanation | Data Type | 
| geodatabase_1 | The geodatabase hosting the replica to synchronize. The geodatabase may be local or remote. | Workspace ;GeoDataServer | 
| in_replica | A valid replica with a parent contained within one input geodatabase and a child in the other input geodatabase. | String | 
| geodatabase_2 | The geodatabase hosting the relative replica. The geodatabase may be local or remote. | Workspace; GeoDataServer | 
| in_direction | The direction in which you want changes to be sent: from geodatabase 1 to geodatabase 2, from geodatabase 2 to geodatabase 1, or to send changes in both directions. For check-out/check-in replicas or one-way replicas there is only one appropriate direction. If the replica is two-way then any of the three choices are available. 
 | String | 
| conflict_policy | Specifies how conflicts are resolved when they are encountered. 
 | String | 
| conflict_definition | Specifies how you would like to define conflicts: 
 | String | 
| reconcile reconcile | Indicates whether to automatically reconcile once data changes are sent to the parent replica if there are no conflicts present. This option is only available for check-out/check-in replicas. 
 | Boolean | 
Code Sample
The following Python window example demonstrates how to use the SynchronizeChanges function in the Python window.
import arcpy
from arcpy import env
env.workspace = "C:/Data"
arcpy.SynchronizeChanges_management("MySDEdata.sde", "My2wayReplica", "MySDEdata_child.sde", "BOTH_DIRECTIONS", \
"IN_FAVOR_OF_GDB1", "BY_ATTRIBUTE", "")
The following demonstrates how to use the SynchronizeChanges function in a stand-alone Python script.
# Name: SynchronizeChanges_Example2.py
# Description: Synchronizes changes for a one way replica from the Parent 
# to the child replica geodatabase. The parent is an ArcSDE workspace, and the child is file geodatabase.
# Import system modules
import arcpy
from arcpy import env
# Set workspace
env.workspace = "C:/Data"
# Set local variables
replica_gdb1 = "MySDEdata.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)