Siebel CRM Desktop for Microsoft Outlook Administration Guide > How Siebel CRM Desktop Synchronizes Data > How Siebel CRM Desktop Handles a Conflict During Synchronization >

How Siebel CRM Desktop Prevents Cyclical Synchronization


This topic describes how Siebel CRM Desktop handles cyclical synchronization.

About Cyclical Synchronization

Siebel CRM Desktop synchronizes PIM data between Microsoft Outlook and Siebel CRM data on the Siebel Server. This situation creates a potential for duplicate records and cyclical synchronization. A potential synchronization problem occurs when two or more synchronizations form a circular loop. Cyclical synchronization is a phenomenon that occurs when a single transaction repeatedly loops between Microsoft Outlook and the Siebel Server. For example, consider two separate processes that synchronize appointment data between the PIM system and the Siebel Server, such as between Siebel CRM Desktop and Siebel Server Synchronization for Exchange (SSSE). If a change in a timestamp in the source data store starts these processes and updates the timestamp in the target data store, then a single transaction can repeatedly synchronize between A and B.

How Siebel CRM Desktop Handles Cyclical Synchronization

Siebel CRM Desktop must use the correct order when it synchronizes application objects that contain fields which, in turn, reference other fields. To determine the sequence that Siebel CRM Desktop uses to process the objects, the Synchronization Engine uses the references that exist between these fields. The algorithm that the Synchronization Engine uses to define the sequence also determines if a chain of cyclical links exists. The Synchronization Engine cannot synchronize together any objects that belong to a chain of cyclic links, because Siebel CRM Desktop cannot resolve the reference field for at least one of the objects until it adds the object that this field references to the data file.

To define such an object, the Synchronization Engine uses a required attribute of the field that is referenced. Siebel CRM Desktop defines the required attribute for the link tag in the connector_configuration.xml file. To break the chain of cyclic links, Siebel CRM Desktop chooses an object that does not contain a reference field that is required, and that is part of the chain of cyclic links. In this situation, the Synchronization Engine does the following work:

  1. Determines the sequence in which objects are processed. This order depends on the references that exist between these objects.
  2. Identifies the chain of cyclical links.
  3. For each chain of cyclical links, chooses an object that breaks the chain.
  4. Creates jobs to process the objects in an appropriate sequence.
  5. Creates more jobs to process the objects that it chose to break each chain.
  6. (Conditional). Assume Siebel CRM Desktop does not run the jobs that are described in Step 5. Examples that might cause this situation include an error, a terminated synchronization, and so forth. The field that is referenced that was not removed contains a null value. Therefore, the Synchronization Engine processes the objects that are not removed during the next synchronization.
  7. During the next synchronization, Siebel CRM Desktop does the following work:
    1. Processes the objects that it removed during the previous synchronization.
    2. Creates corresponding jobs for these objects.
    3. Assume there is a match between the object on the Siebel Server and the object in Microsoft Outlook, and that the object that Siebel CRM Desktop did not remove from the chain of cyclical links is modified or removed. In this situation, Siebel CRM Desktop does the following:
      • Creates a duplicate to process the object
      • Does not create a job

Example of How Siebel CRM Desktop Handles Cyclical Synchronization

The example in this topic describes how Siebel CRM Desktop chooses the account object to break the chain of cyclic links between the account and business addresses of the account objects. Siebel CRM Desktop does not require the Primary Address Id field of the account object. Siebel CRM Desktop does the following work:

  • Adds the account object to the data file
  • Resolves the Primary Address Id field to the reference of the account
  • Adds the business address of the account to the record

The following code illustrates this example:

<type id="Account.Business_Address">

<synchronizer name_format=":[:(Street Address):]">

<links>

<link required="true">BogusParentId</link>

</links>

</synchronizer>

</type>

type id=<"Account">

<synchronizer name_format=":[:(Name):]">

<links>

<link>Primary Address Id</link>

<link>Primary Position Id</link>

<link>Primary Territory Id</link>

<link>Primary Industry Id</link>

</links>

</synchronizer>

</type>

Siebel CRM Desktop for Microsoft Outlook Administration Guide Copyright © 2011, Oracle and/or its affiliates. All rights reserved. Legal Notices.