How Siebel CRM Desktop Synchronizes Data During an Incremental Synchronization

An incremental synchronization is a synchronization session that occurs any time after the initial synchronization. To determine the differences that exist in the data that is available to the user, Siebel CRM Desktop compares data in the Microsoft Outlook data storage to data in the Siebel database. It then does the following work:

  • Inserts, updates, or deletes data on the Siebel Server according to changes that occurred in Outlook since the prior synchronization

  • Inserts, updates, or deletes data in Outlook according to changes that occurred on the Siebel Server since the prior synchronization

Siebel CRM Desktop does this work for each difference until it synchronizes all data that resides in the Outlook data storage with data in the Siebel database. In all situations, the user works with data locally in Outlook and Siebel CRM Desktop sends these changes to the Siebel Server during an incremental synchronization, but not at the same time that it makes the change in Outlook. Depending on the frequency of the process, a change might not appear on the server immediately.

Siebel CRM Desktop does the following work to complete an incremental synchronization:

  1. Connects to the Siebel Server to establish a synchronization session.

  2. Authenticates the user.

  3. Passes the values of the packageId and responsibilityId arguments that it caches in Outlook to the Siebel Server. Siebel CRM Desktop cached these values during the prior synchronization. It does this to avoid expensive iterative operations through all responsibilities and customization packages every time it calls the Web service.

  4. Receives a reply from the Siebel Server. This reply indicates if new metadata is available for the user.

  5. If new metadata is available, then Siebel CRM Desktop does the following work:

    1. Determines if the customization package changed.

    2. If the package changed, then it downloads the new package to a temporary folder in Outlook.

    3. If the package is not changed, then it proceeds to Step 11.

  6. Determines if the currently applied package is compatible with the downloaded package and then does one of the following:

    1. If the package is compatible, then Siebel CRM Desktop synchronizes the current data to the Siebel Server.

    2. If the package is not compatible, then Siebel CRM Desktop stops the synchronization and the user changes are lost. The data modified in the old package is not appropriate for the current version of Siebel CRM Desktop.

    For more information, see How Siebel CRM Desktop Determines Compatibility.

  7. Determines if the currently applied package is compatible with the current version of Siebel CRM Desktop. If the package is not compatible, then Siebel CRM Desktop does not apply the downloaded package, it displays a product incompatibility error message, and then exits this process.

    For more information, see How Siebel CRM Desktop Determines Compatibility.

  8. If the package is compatible, then Siebel CRM Desktop determines if the object structure in the downloaded package changed.

  9. If the object structure did not change, then it applies the new package and proceeds to Step 11.

  10. If the object structure changed, then it displays a dialog box that asks the user to do one of the following:

    • Reinstall the object structure. Siebel CRM Desktop does the following:

      • Removes the old custom folders.

      • Removes the old data.

      • Installs the new package.

      • Displays the second part of the First Run Assistant. This part allows the user to set synchronization filters and make other settings that set up Siebel CRM Desktop to use the new customization package.

      • Starts a synchronization session after the user specifies these filters and other settings.

    • Do not reinstall the object structure. Siebel CRM Desktop does not install the new customization package. The next time the user attempts to synchronize, it displays the same dialog box that asks the user to reinstall the object structure.
  11. If the customization packages are identical, then Siebel CRM Desktop does the following work:

    1. Sends a reply that indicates that it is not necessary to download the customization package because the package that resides on the Siebel Server is the same as the package that resides in Outlook.

    2. Exits this process.

  12. Identifies the differences that exist between the data in Outlook and the data on the Siebel Server. To do this, it compares the change key values for all records that are available to the user in Outlook to the change key values that reside on the Siebel Server. The change key includes the record Id and the last time the server updated the record in the Siebel database. The value for the record Id resides in the ROW_ID column of the data table and the value for the time resides in the DB_LAST_UPD column of the data table. Depending on the differences, Siebel CRM Desktop changes the values in a data set to make sure the data between Outlook and the server is synchronized. For example, if Siebel CRM Desktop detects a new record during synchronization:

    • On the Siebel Server, then it creates a corresponding record in Outlook.

    • In Outlook, then it creates a corresponding record on the Siebel Server.

    If the user changes synchronization filters, then Siebel CRM Desktop removes the Siebel CRM data that falls outside of the filters from Outlook. It does this during synchronization. A referenced record might remain in Outlook. For example, assume an account references a contact and this account does not match a filter. Siebel CRM Desktop continues to synchronize this account but makes it read-only in Outlook. It synchronizes the account details but it does not synchronize any account relationships that exist to other records.

  13. Downloads Siebel CRM data.

    For more information, see How Siebel CRM Desktop Synchronizes Siebel CRM Data.

    The user can now view the newly downloaded data.

  14. Logs out of the synchronization session that it established in Step 1.