PROBLEM
The primary key for a relationship may be based on a geodatabase maintained GlobalID, an application or customer maintained primary key, or a geodatabase maintained objectid. In some use cases, edits involving relationships may be incorrectly synchronized when the primary key for the relationship is based on an objectid (OID) column.
Note: This article pertains to ArcGIS versions 9.x only. Later versions of ArcGIS may contain different functionality, as well as different names and locations for menus, commands and geoprocessing tools.
The following is an example use case where edits are incorrectly synchronized.
Consider an example where there is a poles feature class and a transformers table in a two-way replica. In this example, there is a simple relationship class between the poles and transformers. Poles is the origin class and the primary key is its objectid column. Transformers is the destination class and the foreign key is a long integer column called poleid.
The following describes a use case where relationships are not correctly synchronized.
The example described above would work correctly if the edit to create the relationship between the pole and the transformer had been made in the same generation of edits in which the pole and transformer were originally created. For instance, if the relationship had been created before the synchronization in step 3. The synchronization algorithm records the change in the objectid of the pole on creation, and uses it to update the foreign key in the transformer correctly.
Notes on use cases where edits are correctly synchronized:
The use cases where edits are correctly synchronized correspond to common workflows with feature-linked annotation, which is based on objectid as a primary key. The most common workflow involves creating a feature together with its linked annotation as part of the same edit session. Once an annotation is created for a feature, its relationship with that feature is not changed in subsequent edits. Not all workflows involving feature linked annotation are supported. For example, creating a new piece of related annotation for a feature in a generation that does not involve the creation of the feature is not supported. The workflows that are supported rely on ArcGIS 9.2 Service Pack 5.
In some use cases (see the Description section above), edits involving relationships may be incorrectly synchronized with two-way and one-way replication when the primary key for the relationship is based on an objectid (OID) column.
This issue has been addressed in ArcGIS 9.2 Service Pack 6 and ArcGIS 9.3. An additional case has also been addressed in the following ArcGIS 9.2 Service Pack 6 patch as well as ArcGIS 9.3 Service Pack 1.
Also, this problem is not encountered when editing and synchronizing relationships with two-way and one-way replicas using GlobalID columns or customer-defined primary keys, such as EquipmentID, that are unique across all databases, as the primary keys in the relationship.
In the example above where edits are incorrectly synchronized, the relationship class could have been defined with the globalid column from poles as the primary key and a guid column from transformers as the foreign key. Relationship classes that use a globalid as the primary key require a guid column as the foreign key. In this use case, the relationship would have been properly synchronized since the globalid and guid values are the same across the replicas.
Article ID: 000009966
Get help from ArcGIS experts
Download the Esri Support App