6How Oracle CRM On Demand Desktop Synchronizes Data

About Local Synchronization

Local synchronization allows users to synchronize changes to records that occurred in Microsoft Outlook with corresponding records in Oracle CRM On Demand, and to synchronize changes made in CRM On Demand with those same records back to Microsoft Outlook.

In local synchronization, only the records modified in Microsoft Outlook are synchronized with Oracle CRM On Demand. To synchronize all the records in Microsoft Outlook, you must run full synchronization. Oracle CRM On Demand Desktop allows users to switch between full synchronization and local synchronization.

During each local synchronization, Oracle CRM On Demand Desktop does the following:

  • Builds a snapshot of records modified in Oracle CRM On Demand Desktop and compares them with the same records in Oracle CRM On Demand. If there are no collisions, then the changes are saved in Oracle CRM On Demand. Otherwise, you are prompted to resolve the synchronization collisions.

  • If you have created new records in Oracle CRM On Demand Desktop, then local synchronization adds them to Oracle CRM On Demand.

  • Deletes records you have deleted in Oracle CRM On Demand Desktop in Oracle CRM On Demand. If these records have been modified in Oracle CRM On Demand, then a collision occurs.

    Note: The default synchronization in Oracle CRM On Demand Desktop is local synchronization. If you double-click the CRM Desktop icon in the system tray, then local synchronization launches. However, clicking the Synchronize Now button in the Resolve Conflicts tab in the Control Panel always launches full synchronization, regardless of the default synchronization option.

For more information on Windows registry parameters that affect local synchronization, see Windows Registry Parameters That Affect Local Synchronization.

How Oracle CRM On Demand Desktop Synchronizes Data During the Initial Synchronization

An initial synchronization is a type of synchronization that occurs in the following situations:

  • Immediately after the user installs Oracle CRM On Demand Desktop.

  • If you make a metadata change to the user that includes a change to the customization package.

  • If the options in the login dialog box change, for example, if the user name changes or the Oracle CRM On Demand URL changes.

The purpose of the initial synchronization is to initialize the Microsoft Outlook data storage with the Oracle CRM On Demand data that is available to the user. Oracle CRM On Demand Desktop downloads the customization package to Microsoft Outlook the first time the user synchronizes metadata with Oracle CRM On Demand.

    How Oracle CRM On Demand Desktop Handles Errors During Metadata Download

    If the current version of Oracle CRM On Demand Desktop is not compatible with the downloaded customization package, then Oracle CRM On Demand Desktop does not apply the package. Instead, it displays an error message to notify the user, and then records an entry in the general log file:

    Logs\GeneralLog\log.####.txt 
    

    where #### are the assigned log numbers.

    For information about where Oracle CRM On Demand Desktop stores this log file, see About Files, File Locations, and Profiles.

    If an error occurs while the customization package is downloaded, then Oracle CRM On Demand Desktop displays an error message in the system tray. This error notifies the user that the customization package changed but Oracle CRM On Demand Desktop cannot download it because of certain errors. The problem might be because the user does not possess the required privilege on the Oracle CRM On Demand server. In this situation, the user must contact the system administrator to acquire the necessary privileges and then restart the synchronization. Also, the problem might be due to the fact that the user does not have the correct package published to that user's role, or the customization package might not have all the files needed. You must also check that the ZIP file for every customization package contains all the required metadata files, as you can have different packages for different roles.

      How Oracle CRM On Demand 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, Oracle CRM On Demand Desktop compares data in the Microsoft Outlook data storage to data in the Oracle CRM On Demand database. Oracle CRM On Demand Desktop then does the following:

      • Inserts, updates, or deletes data on the Oracle CRM On Demand server according to changes that occurred in Microsoft Outlook since the prior synchronization.

      • Inserts, updates, or deletes data in Microsoft Outlook according to changes that occurred on the Oracle CRM On Demand server since the prior synchronization.

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

        How Oracle CRM On Demand Desktop Handles Changes to Login Credentials

        If the user name or the server URL changes, then Oracle CRM On Demand Desktop clears the data it has downloaded from Oracle CRM On Demand. Oracle CRM On Demand Desktop does this to remove any personal user data that might exist and to provide the user with an opportunity to synchronize data. Before Oracle CRM On Demand Desktop begins the reinitialization, it displays a warning message to the user that any data that is not synchronized might be lost. If the user agrees to proceed, then the following occurs:

        1. Oracle CRM On Demand Desktop removes the current customization.

        2. The user logs in with new credentials.

        3. Oracle CRM On Demand Desktop downloads the package from the Oracle CRM On Demand server and then starts the CRM On Demand Desktop Assistant.

          How Oracle CRM On Demand Desktop Synchronizes Oracle CRM On Demand Data

          Oracle CRM On Demand Desktop synchronization of data with CRM On Demand is based on the configuration of the customization package. The customization package contains configuration files, which include objects, object fields, and object relationships.

          To synchronize Oracle CRM On Demand data, for example, opportunities or accounts, Oracle CRM On Demand Desktop does the following:

          1. Verifies the user login and connection to Oracle CRM On Demand.

          2. Checks the version to ensure Oracle CRM On Demand Desktop is compatible with the current version of Oracle CRM On Demand.

          3. Checks the version of Oracle CRM On Demand Desktop to ensure it has the latest version of the customization package.

          4. Determines the number of records of each type of record, such as opportunities or accounts, which are records that are visible to the user through the ownership or team membership view mode, or book-based visibility for the record type. When book-based visibility is set for a record type, the Oracle CRM On Demand Desktop synchronizes records of that type, which are associated with the user specified book. Data filters are applied to the top of the records that are visible to the user, and records are then restricted by the filter configuration. The basic logic is to find all the records that are visible on the server side, compare them with the client side, and calculate the difference between the server and the client. All synchronization uses this logic.

          5. Gets the values of the change keys for all synchronization objects that are enabled, such as opportunities or accounts, for example, the record ID and the last updated date in the Oracle CRM On Demand database. The change key by default includes the record Id and the time the record was last updated in the Oracle CRM On Demand database.

          6. Compares the set of IDs and timestamps in Microsoft Outlook with the set of IDs and timestamps on the Oracle CRM On Demand server to do the following:

            • Determine the differences that exist between the data sets for insert, update, and delete operations.

            • Identify conflicts and create a log entry in the synchronization conflict list for any conflict.

          7. For each difference, Oracle CRM On Demand Desktop performs one of the following operations in Microsoft Outlook or on the Oracle CRM On Demand server:

            • Insert. Query the Oracle CRM On Demand database to get the details of the new record and then insert the appropriate item in Microsoft Outlook.

            • Update. Query the Oracle CRM On Demand database to get the details of the updated record and then update the appropriate item in Microsoft Outlook. Note that an Oracle CRM On Demand update overwrites all fields in the corresponding Microsoft Outlook item, not just the updated fields.

            • Delete. Delete the appropriate item in Microsoft Outlook.

            • Microsoft Outlook insert. Use the user key that is defined in the metadata to query the Oracle CRM On Demand database, and then do one of the following:

              • If it does not find a match, then it inserts the appropriate record in the Oracle CRM On Demand database, and then queries the Oracle CRM On Demand database to get the record ID and timestamp.

              • If it does find a match, then it returns a deduplication conflict, a situation when two records, one in Microsoft Outlook and the other in Oracle CRM On Demand, have the same values for the fields acting as user keys. This deduplication conflict is not an error. After the user resolves the conflict by selecting the correct values or object instance, the object is synchronized. If the user does not resolve the issue, then synchronization continues, but the object involved in the conflict is not synchronized.

            • Microsoft Outlook update. update. Use the user key that is defined in the metadata to query the Oracle CRM On Demand database, and then do one of the following:

              • If it does not find an update for the modification number of the record, then it updates the appropriate record in the Oracle CRM On Demand database and then queries the Oracle CRM On Demand database to get the record Id and updated timestamp.

              • If it does find an update for the modification number, then it returns an update conflict, a situation when two records, one in Microsoft Outlook and the other in Oracle CRM On Demand, have the same modification number, that is, they are changed in both places. This update conflict is not an error. After the user resolves the conflict by selecting the correct values or object instance, this object is synchronized. If the user does not resolve the issue, then synchronization continues, but the object involved in the conflict is not synchronized. In this situation, Oracle CRM On Demand Desktop makes the change in the Oracle CRM On Demand database during the update operation.

            • Microsoft Outlook delete. Delete the appropriate record in the Oracle CRM On Demand database.

          8. If a conflict occurs, then Oracle CRM On Demand Desktop does the following:

            1. Updates the synchronization issues and the Syncdump.xml log file that describes conflicts on the client.

            2. Prompts the user to choose which changes to keep in each of the following situations:

              • Update the record in Microsoft Outlook and on the Oracle CRM On Demand server.

              • Update the record in one data set and delete the record in the other data set.

          9. Repeat Step 4 for each additional Oracle CRM On Demand data object that requires synchronization.

            How Oracle CRM On Demand Desktop Manages Synchronization Duration

            Several factors determine the duration of a synchronization, such as the amount of data that is available to the user, network bandwidth, server performance, client performance, and so on. To shorten this duration, you or the user can do the following:

            The duration of an incremental synchronization session is typically shorter than for an initial synchronization because Oracle CRM On Demand Desktop downloads all objects during an initial synchronization. However, during an incremental synchronization, Oracle CRM On Demand Desktop downloads only those objects that are changed.

              Situations Where Oracle CRM On Demand Desktop Redownloads Oracle CRM On Demand Data

              Oracle CRM On Demand Desktop redownloads the Oracle CRM On Demand data in any of the following situations:

              • The customization package has changed.

              • The package update for the user involves a data schema change.

              • The user logs in as a different user.

              • There is a problem with the data structure. For example, assume the user deletes the Opportunities folder and then removes this deletion from the Deleted Items folder. If the user restarts Microsoft Outlook, then Oracle CRM On Demand Desktop does the following:

                • Informs the user that there is a problem with the data structure

                • Removes the data structure

                • Installs a new data structure

              If Oracle CRM On Demand Desktop must redownload the Oracle CRM On Demand data, then it does the following:

              1. Removes all Oracle CRM On Demand data, such as accounts, opportunities, shared contacts, and activities

              2. Removes all shared appointments and tasks that the user created for an Oracle CRM On Demand activity

              3. Removes the custom data structure that it previously sent to Microsoft Outlook data storage, for example, it removes all custom folders in the user mailbox.

              4. Downloads the new data.

              5. Starts a new, initial synchronization session to reenter the appropriate Oracle CRM On Demand data in the Microsoft Outlook data storage.

              What Happens If the Customization Package Has Changed?

              During synchronization, Oracle CRM On Demand Desktop determines if the customization package for the user who is currently logged in has changed in such a way that it must reinstall the data structure. The following changes in the data structure of the customization package can cause this situation:

              • An object is added to or deleted from the mapping scheme

              • A field is added to an existing object or an existing field is modified

              If the customization package has changed, then Oracle CRM On Demand Desktop displays a prompt that is similar to the following:

              A new customization package is available. Select Yes to download the new version. 
              During the download of the new version, recent unsynchronized changes will be 
              removed, and an initial sync will be performed.
              

              If, during synchronization, Oracle CRM On Demand Desktop determines that the customization package for the user who is currently logged in has changed in such a way that there is no change to the data structure, then Oracle CRM On Demand Desktop downloads and installs the new package and informs the user about this download. The synchronization continues. A modification to a security rule is an example of where the package has changed, but the data structure has not changed. In this situation, Oracle CRM On Demand Desktop does not start a new, initial synchronization.

                Situations Where Local Data Might Be Lost

                To prevent losing data due to a reinstallation of the data structure, Oracle CRM On Demand Desktop must use the current customization package to upload local data to the Oracle CRM On Demand server. The exception to this requirement occurs if the package is changed locally. In this situation, Oracle CRM On Demand Desktop cannot use the current, flawed package to synchronize data. Data for the user can be lost in the following situations:

                • If data exists that Oracle CRM On Demand Desktop cannot upload to the Oracle CRM On Demand server because the permissions for the user have changed.

                • If data exists for a user that is associated with synchronized items but is stored in fields that are not synchronized. Oracle CRM On Demand Desktop completely replaces the record in Microsoft Outlook with the record that it downloads from the Oracle CRM On Demand server. It erases any local data.

                  How Oracle CRM On Demand Desktop Prevents Data Loss If the User Deletes Customization Package Files

                  If Microsoft Outlook is open, then the user cannot delete any customization package files. For example, if the user attempts to use Windows Explorer to delete files from the following directory, then Windows Explorer does not allow the deletion:

                  C:\Documents and Settings\username\Application Data\Oracle\CRM OnDemand 
                  Desktop\Profile\data
                  

                  If Microsoft Outlook is not running, then the user can use Windows Explorer to delete customization package files. However, if the user subsequently starts Microsoft Outlook, then Oracle CRM On Demand Desktop restores the customization package files from local storage. This local storage is a PST folder or an Exchange mailbox.

                    How Oracle CRM On Demand Desktop Handles Data During a Connection Failure

                    An internet or network-connection failure that occurs during synchronization can interrupt the synchronization. An interruption does not cause data loss or corruption. Synchronization can proceed from the last step that Oracle CRM On Demand Desktop executed successfully before the interruption.

                      How Oracle CRM On Demand Desktop Handles Server Busy Responses

                      If the client starts a synchronization process (manually or scheduled) and the Oracle CRM On Demand server returns a busy response, then the client waits an amount of time (default of 10 minutes, that is configurable in the Windows registry) before it automatically attempts to synchronize data again. The client continues to attempt synchronization until it is successful, or it reaches the retry limit. The default is 144 retries, which you can configure in the Windows registry. In addition, consider the following:

                      • This attempt to resynchronize applies to incremental and initial synchronizations only.

                      • There is no automatic retry on a local synchronization because local synchronization occurs more often and is of shorter duration. Consequently, the chances of a busy server are reduced. Additionally, if the synchronization does not complete for a day, the next incremental synchronization captures all changes.

                      • Users can perform a manual local synchronization if the scheduled synchronization fails.

                        Depending on the number of users that attempt to synchronize at the same time, the synchronization might take some time to complete.

                      For more information on the Windows registry parameters that control the synchronization retry interval (SyncRetryInterval) and the synchronization retry maximum attempts (SyncRetryMaxAttempt), see Windows Registry Parameters That Affect Local Synchronization.

                      Related Topics

                      Overview of Oracle CRM On Demand Desktop Architectural Components

                      Customizing Synchronization

                        How Oracle CRM On Demand Desktop Synchronizes Data Depending on the Records Visibility

                        Records availability in Oracle CRM On Demand Desktop after synchronization depends on the Ownership mode in Oracle CRM On Demand, the data visibility mode in Oracle CRM On Demand Desktop, and whether the record has been created in Microsoft Outlook or Oracle CRM On Demand. For more information on each case of records availability, see the topics that discuss synchronization based on records visibility in Oracle CRM On Demand Online Help.

                        If the visibility of a record type is set to All records where I am owner or on the team for a record type, then the synchronization downloads all records of that type that are accessible to the user through ownership and team membership.

                        If the visibility of a record type is set to All records in a book, then the synchronization downloads all records of that type that are associated with the specified book. If subbooks are selected for the visibility book, then records that are visible through associations with subbooks are synchronized as well.

                          Factors That Determine What Data an Oracle CRM On Demand Desktop User Can Access

                          An Oracle CRM On Demand user can typically access only a subset of data that is available in the Oracle CRM On Demand database. This topic describes the factors that determine which data an Oracle CRM On Demand Desktop user can access. How you configure Oracle CRM On Demand Desktop determines many aspects of which data Oracle CRM On Demand Desktop synchronizes, for example:

                          You define this configuration before you release Oracle CRM On Demand Desktop to your users environment. In the CRM On Demand Desktop Assistant, the user can choose preset filters for a predefined filter and define personal filters. The master filters and server application metadata configuration always restrict access to some data, and the user filters apply a second layer of filtering.

                          Oracle CRM On Demand Desktop applies these filters during the initial synchronization and incremental synchronization. Filters are used to limit the server data that is synchronized to Microsoft Outlook. However, filters are applied to server data only, and all data that is created in Microsoft Outlook is synchronized with the server.

                          Users cannot modify certain filters, for example, master filters. The company administrator creates and implements certain filters, for example, a filter to prevent Oracle CRM On Demand Desktop synchronizing inactive contacts with Microsoft Outlook. Master filters can be applied to both parent and child objects.

                          Users can modify user synchronization filters. These filters are displayed in the Filter Records screen in the Control Panel. They can also configure prebuilt filters, also known as filter presets. Several filter presets can be configured in a customization package, each with its own set of criteria for different object types. The customization package contains a predefined, default filter preset. This filter is applied by default if the user does not make any modifications when running CRM On Demand Desktop Assistant. When the user selects and modifies any preset filter, the preset filter is saved and applied until the user selects another preset filter in the Presets list.

                          Oracle CRM On Demand Desktop permits data access through the Book visibility in addition to the user ownership and team membership modes. It is possible to synchronize records that are visible with the user-specified book. These visibility configurations must be set for each record type on the Records Set tab of the Synchronization Control Panel of Oracle CRM On Demand Desktop.

                          In addition, Manager visibility allows users to see their own data and data that is directly owned by their subordinates. See Oracle CRM On Demand Online Help for more information

                            Filters Reduce the Number of Oracle CRM On Demand Records That Are Available in Oracle CRM On Demand Desktop

                            The following figure illustrates how the number of Oracle CRM On Demand records that are available to the Oracle CRM On Demand Desktop Client reduces because these records encounter each set of filters.

                            How Filters Reduce the Number of Oracle CRM On Demand Records That Are Available in Oracle CRM On Demand Desktop

                            The following filters reduce the number of Oracle CRM On Demand records that are available in Oracle CRM On Demand Desktop:

                            1. Oracle CRM On Demand visibility filters. Visibility rules that are configured in the Oracle CRM On Demand repository and that the Oracle CRM On Demand server applies affects data access. Because Oracle CRM On Demand Desktop integrates with the Oracle CRM On Demand server through the Web service interface, security, search specifications, and other logic that is configured at the integration or business object layer limits the data that Oracle CRM On Demand Desktop synchronizes with the client.

                              The user interface configuration does not affect the results of queries or other operations that Oracle CRM On Demand Desktop performs.

                            2. Preset filters. Prebuilt filters are also known as filter presets. Several filter presets can be configured in a customization package, each with its own set of criteria for different object types. The customization package contains a predefined, default filter preset. This filter is applied by default if the user does not make any modifications when running CRM On Demand Desktop Assistant. When the user selects and modifies any preset filter, the preset filter is saved and applied until the user selects another preset filter in the Presets list.

                            3. Master filters. Master synchronization filters that are configured in the client application metadata determine which Oracle CRM On Demand data Oracle CRM On Demand Desktop synchronizes with the client. Although search specifications on the Oracle CRM On Demand server and security settings in the Oracle CRM On Demand repository establish the first level of filtering, a set of filters that reside on the client can also restrict data that Oracle CRM On Demand Desktop downloads to the client.

                            4. User synchronization filters. The user configures synchronization filters when the user runs CRM On Demand Desktop Assistant. These filters affect which objects Oracle CRM On Demand Desktop enables for synchronization. They are determined by preset filters the user chooses or by filters that the user defines in the Filter Records Tab of the Synchronization Control Panel. To determine which data to synchronize, Oracle CRM On Demand Desktop uses this information in addition to the application configuration.

                              Depending on the relationships in the data, Oracle CRM On Demand Desktop might synchronize an object that is disabled for synchronization through the Filter Records Tab. For example, if the opportunity object is enabled, but the account object is not enabled, then Oracle CRM On Demand Desktop still downloads any account data that the opportunity references. This download is required to make sure the data is complete. Also, Oracle CRM On Demand Desktop might still upload changes that the user makes in the client to the Oracle CRM On Demand server even if an object or synchronization filter is disabled. For example, if the user disables the account object and then creates an account in Microsoft Outlook, then Oracle CRM On Demand Desktop uploads the account to the Oracle CRM On Demand server.

                            Related Topics

                            Customizing How CRM On Demand Desktop Assistant Performs the Initial Synchronization

                            Controlling the Object Types That Oracle CRM On Demand Desktop Displays inthe Filter Records Tab

                            Controlling the Fields That Are Available in a Filter

                              Objects That Are Enabled for Synchronization

                              Depending on the configuration that Oracle CRM On Demand Desktop downloads for the user, a set of objects that are enabled for synchronization determine the data that Oracle CRM On Demand Desktop can synchronize. These objects are defined in the application metadata that you make available through the customization package that is available to the user. If an object is not defined in the application metadata, then Oracle CRM On Demand Desktop does not synchronize it. Application metadata also defines the field mappings that Oracle CRM On Demand Desktop uses in the synchronization. These mappings specify how Oracle CRM On Demand Desktop synchronizes objects in Microsoft Outlook and the Oracle CRM On Demand server. For more information, see Customizing How Oracle CRM On Demand Desktop Maps Fields.

                                How Differences in Data Between Microsoft Outlook and the Oracle CRM On Demand Server Affect Synchronization

                                For the initial synchronization, Oracle CRM On Demand Desktop downloads to Microsoft Outlook all data that resides on the Oracle CRM On Demand server that is available to the user. For an incremental synchronization, the changes that occur to data in Microsoft Outlook and on the Oracle CRM On Demand server play a large role in determining the data that Oracle CRM On Demand Desktop synchronizes. The following changes can occur:

                                • Data is created, updated, or deleted in Microsoft Outlook.

                                • Data is created, updated, or deleted on the Oracle CRM On Demand server.

                                In general, to determine which data is available, Oracle CRM On Demand Desktop does the following work during an incremental synchronization:

                                1. Uses the set of application configuration filters, user filters that are defined, and the record set configuration.

                                2. Identifies the differences between the data in Microsoft Outlook and the data on the Oracle CRM On Demand server. The difference is determined by a comparison of the change key values for all records that are available to the user in Microsoft Outlook and the server. The value for the record Id resides in the ROW_ID column of the data table. The value for the time resides in the DB_LAST_UPD column of the data table. Depending on the differences, Oracle CRM On Demand Desktop changes the values in a data set to make sure the data between Microsoft Outlook and the Oracle CRM On Demand server is synchronized, for example:

                                  • If Oracle CRM On Demand Desktop detects a new record on the Oracle CRM On Demand server during synchronization, then it creates a corresponding record in Microsoft Outlook.

                                  • If Oracle CRM On Demand Desktop detects a new record in Microsoft Outlook during synchronization, then it creates a corresponding record on the Oracle CRM On Demand server.

                                For more information, see How Oracle CRM On Demand Desktop Synchronizes Data During an Incremental Synchronization.

                                  How the Remove Local Records Synchronization Preference Affects Synchronization

                                  To enable the Remove Local Records feature, the user can make sure the Remove Local Records Not Matching Filtering Criteria check box contains a check mark. This check box is displayed on the Filter tab of the Synchronization Control Panel. This synchronization preference allows the user to remove data that does not match a synchronization filter. If the user changes synchronization filters when this preference is enabled, even if data is not removed from the Oracle CRM On Demand server, then during synchronization Oracle CRM On Demand Desktop removes Oracle CRM On Demand data from Microsoft Outlook that falls outside of the filters. If this preference is not enabled, and if the user changes a synchronization filter, then data that was synchronized as a result of using a previous filter remains in Microsoft Outlook.

                                    About Differences in Data Access Rules

                                    Differences in data access rules that occur from one synchronization to the next can occur for the following reasons:

                                    • The user downloaded a different customization package with a different configuration of synchronization objects, view modes, or master synchronization filters.

                                    • Oracle CRM On Demand configuration has changed, which can include Role Configuration changes or Access Profiles changes.

                                    • There can also be changes in record visibility through the owner or team or book association changes.

                                      Modifying Synchronization Frequency

                                      Application settings that are related to synchronization frequency determine how often and what kinds of data Oracle CRM On Demand Desktop considers for synchronization. The user can specify the frequency, or you can configure it:

                                      • To specify the interval that Oracle CRM On Demand Desktop uses to automatically start a synchronization, the user can use the Synchronization tab of the Options dialog box in Oracle CRM On Demand Desktop. The user can also manually start a synchronization to override this configuration. The user can double-click the Oracle CRM On Demand Desktop icon in the system tray or choose the Synchronize Now option from the options menu.

                                      • You can configure the metadata files in Oracle CRM On Demand Desktop to affect the frequency of the synchronization. This configuration determines how often Oracle CRM On Demand Desktop synchronizes each object. You can configure certain data that changes less often on the Oracle CRM On Demand server to synchronize less frequently. Example data includes List of Value and other reference data, such as users or positions. For more information, see XML Code to Customize Synchronization.

                                        How Oracle CRM On Demand Desktop Avoids Duplicate Data

                                        Oracle CRM On Demand Desktop includes metadata for the client and configuration in the Oracle CRM On Demand repository that prevents it from creating duplicate data. This configuration is in addition to the following items:

                                        • The standard user keys included in the Oracle CRM On Demand database.

                                        • The option to implement data deduplication that you can use to prevent duplicate data.

                                        To define the data structures that are available to synchronize with Microsoft Outlook, Oracle CRM On Demand Desktop uses Oracle CRM On Demand object metadata definition. The object metadata definition supports the definition of a user key, which is the first additional layer of duplicate prevention.

                                        Oracle CRM On Demand Desktop supports configuration of user keys in the metadata for the client. If Oracle CRM On Demand Desktop detects a Microsoft Outlook insert operation during synchronization, then it does the following work:

                                        • Queries the synchronization object in the Oracle CRM On Demand database with the user key to determine whether there are any existing records that match the record being inserted.

                                        • If Oracle CRM On Demand Desktop does not find a match, then it proceeds with the insert operation.

                                        • If Oracle CRM On Demand Desktop finds a match, then it raises a synchronization issue that prevents the insert operation.

                                          How Oracle CRM On Demand Desktop Handles a Conflict During Synchronization

                                          This topic describes how Oracle CRM On Demand Desktop handles conflicts and potential duplication of Oracle CRM On Demand data that might occur during synchronization. It includes the following information:

                                            How Oracle CRM On Demand Desktop Prevents Duplicate Records

                                            Deduplication is a feature that Oracle CRM On Demand Desktop uses to make sure that it synchronizes only a single instance of a record between Microsoft Outlook and the Oracle CRM On Demand server. Assume Oracle CRM On Demand Desktop downloads a contact to Microsoft Outlook, and then the user attempts to create another contact that contains the same name. In this situation, Oracle CRM On Demand Desktop informs the user that a contact with the same name already exists.

                                            Assume a contact that resides on the Oracle CRM On Demand server does not also exist in Microsoft Outlook due to synchronization filters, and the user creates a contact in Microsoft Outlook that contains the same name as the contact on the Oracle CRM On Demand server. In this situation, Oracle CRM On Demand Desktop does not detect a duplicate in Microsoft Outlook and the user saves a local copy of the contact. During the next synchronization, Oracle CRM On Demand Desktop does the following work:

                                            1. Detects the duplication error.

                                            2. If all contact fields in both data files are the same, then Oracle CRM On Demand Desktop resolves the duplicate without interaction with the user.

                                            3. If some of the fields are different, then Oracle CRM On Demand Desktop presents the duplicate records to the user, and then prompts the user to choose which values to keep.

                                            The connector_configuration.xml file includes the set of objects that are configured for synchronization and the definition of the natural keys that Oracle CRM On Demand Desktop uses for deduplication. For more information, see How the Origin of an Activity Affects Handling.

                                              How Oracle CRM On Demand Desktop Uses a Natural Key to Identify Duplicate Records

                                              This topic describes how Oracle CRM On Demand Desktop uses a natural key to identify duplicates.

                                              What Happens When Oracle CRM On Demand Desktop Inserts a Record from Microsoft Outlook to the Oracle CRM On Demand Server?

                                              If Oracle CRM On Demand Desktop detects a potential insert operation for a record from the data store in Microsoft Outlook to the Oracle CRM On Demand database on the Oracle CRM On Demand server, then it does the following work:

                                              1. Queries the Oracle CRM On Demand database, using natural keys in the query to identify any record in the Oracle CRM On Demand database that is a duplicate of the potential insert operation in Microsoft Outlook.

                                              2. If Oracle CRM On Demand Desktop finds a duplicate, then it treats the transaction as a duplicate conflict. It returns the record ID of the Oracle CRM On Demand record to Microsoft Outlook so that the association between the record in the Oracle CRM On Demand database and the record in Microsoft Outlook is defined for use in incremental synchronizations. To determine whether the record exists in the Oracle CRM On Demand database before it requests an insert, Oracle CRM On Demand Desktop performs this work from Microsoft Outlook as a query to the Oracle CRM On Demand server.

                                              What Happens When Oracle CRM On Demand Desktop Inserts a Record from the Oracle CRM On Demand Server to Microsoft Outlook

                                              If Oracle CRM On Demand Desktop detects a potential insert operation for a record from the Oracle CRM On Demand database to the data store in Microsoft Outlook, then Oracle CRM On Demand Desktop queries the data store in Microsoft Outlook. Oracle CRM On Demand Desktop uses natural keys in the query to identify any record in the data store that is a duplicate of the potential insert operation from the Oracle CRM On Demand database.

                                              If Oracle CRM On Demand Desktop finds a duplicate, then it treats the transaction as a duplicate conflict. For more information, see Step 2 in the topic How Oracle CRM On Demand Desktop Uses a Natural Key to Identify Duplicate Records.

                                                How Oracle CRM On Demand Desktop Handles a Synchronization Error

                                                If a top-level error occurs, then the synchronization engine stops any further processing and displays a message to the user that describes the error. Other errors might occur because of a lost connection to the server, or Oracle CRM On Demand Desktop might not be able to synchronize data due to a language or access problem. In these situations, the synchronization might be able to resume, instead of stopping. You must check the user’s connection, as well as the user's access and visibility settings. This check ensures that the user has the appropriate rights to perform all the operations required by the role. The engine also logs the message in a log file.

                                                Oracle CRM On Demand Desktop generates the following log files, which describe synchronization errors:

                                                • Generic Log. This log is enabled by default.

                                                • SOAP dump.

                                                • Sync dump.

                                                You can enable the SOAP dump and Sync dump log files from the Options dialog Advanced tab, by clicking Configure Logging and Reporting.

                                                The following table describes where the synchronization engine stores the error message log file.

                                                Table Location of the Error Message Log File

                                                Operating System Directory

                                                Windows 7

                                                C:\Users\user\AppData\Roaming\Oracle\CRM OnDemand 
                                                Desktop\Profile\Logs\GeneralLog
                                                

                                                The following types of errors can occur in this situation:

                                                • System error

                                                • Resource allocation error

                                                • General storage problem

                                                • Application state malfunction

                                                • Logic failure

                                                • Connection problem

                                                • Missing XML or JavaScript files in the customization package

                                                If an operation failure occurs in the synchronization engine, then Oracle CRM On Demand Desktop creates a synchronization issue and then attempts to perform this operation again during the next synchronization session. The following types of errors can occur in this situation:

                                                • Unexpected failure during an add, update, or delete operation.

                                                • If the data of an object changed since Oracle CRM On Demand Desktop queried the object during the current synchronization session, then Oracle CRM On Demand Desktop cannot perform the update and delete operations until the next synchronization cycle. In this situation, it creates an issue that it handles in the subsequent synchronization. This synchronization creates a collision because the object was changed since the last synchronization. A collision is a situation that occurs when the same record is modified on the Oracle CRM On Demand server and in Microsoft Outlook between synchronization sessions.

                                                  How Oracle CRM On Demand Desktop Handles a Synchronization Conflict

                                                  During synchronization, Oracle CRM On Demand Desktop checks for any synchronization conflicts. A conflict occurs when:

                                                  • An item has been changed in both Oracle CRM On Demand Desktop and Oracle CRM On Demand since the last synchronization session.

                                                  • An item has been deleted in Oracle CRM On Demand Desktop and changed in Oracle CRM On Demand. If a conflict has occurred when an item is deleted in one application and changed in the other, then Oracle CRM On Demand Desktop does not select individual fields during synchronization. Either all fields are restored, or the record is deleted.

                                                  When a conflict occurs, a message and a Collisions Detected icon are displayed above the Oracle CRM On Demand Desktop icon in your system tray. Oracle CRM On Demand Desktop prompts you to open the Control Panel to resolve any conflicts.

                                                    Resolving Synchronization Conflicts

                                                    The following procedure describes how to resolve synchronization conflicts in Oracle CRM On Demand Desktop.

                                                    To resolve a synchronization conflict

                                                    1. Right-click the Oracle CRM On Demand Desktop icon, located on your system tray, and click Show Control Panel on the shortcut menu.

                                                    2. Select the Resolve Conflicts screen from the control panel.

                                                      Resolve Conflicts is displayed in bold if there are duplicates found during synchronization. The number of duplicate conflicts is also displayed.

                                                      The screen displays a separate record for each conflict. Each conflicting item displays the following information when you click the record to expand it:

                                                      • Conflict Status Color Indicator. The conflict status color indicator is red if the conflict is unresolved and is grey if the conflict is resolved.

                                                      • Item Icon. The item name is displayed for an Opportunity, Contact, Account, Activity. It also displays the name of the person who has modified the item in Oracle CRM On Demand Desktop. For example, if the contact, Margaret Burdess, was modified by William Apple, then the record is called: Margaret Burdess by William Apple

                                                    3. Click any record to view the synchronization conflict details.

                                                      You can view only one record at a time.

                                                    4. Resolve the conflict by performing one of the following actions:

                                                      • Common resolution. Click either Oracle CRM On Demand Desktop Overwrites or Oracle CRM On Demand Overwrites. All records in the list will be resolved by overwriting the record from one application with the other. For example, if you click Oracle CRM On Demand overwrites, then the Oracle CRM On Demand Desktop record will overwrite the Oracle CRM On Demand record for all conflicts in the list.

                                                      • Record-level resolution. Select either the Oracle CRM On Demand Desktop Values or Oracle CRM On Demand Values option to overwrite all conflicting fields for the selected record with either Oracle CRM On Demand Desktop values or Oracle CRM On Demand values.

                                                      • Field-level resolution. Select the value next to the field in either the Oracle CRM On Demand Desktop or Oracle CRM On Demand column to overwrite the selected field by the value of the appropriate application. This operation merges the records from both applications.

                                                      Oracle CRM On Demand Desktop then displays the conflict resolution option you selected. The options are:

                                                      • The user has not yet resolved the conflict.

                                                      • The user has selected that the Oracle CRM On Demand Desktop values will overwrite the conflicting fields.

                                                      • The user has selected that the Oracle CRM On Demand values will overwrite the conflicting fields.

                                                      • The user has selected to merge Oracle CRM On Demand Desktop and Oracle CRM On Demand values to resolve the conflict.

                                                    5. After the conflict has been resolved, do one of the following:

                                                      • Click Apply.

                                                        This step saves the resolution options for the conflict but the record will not be updated in Oracle CRM On Demand until you synchronize.

                                                      • Click Reset.

                                                        This step restores the previously applied options to the values saved after the last time you clicked Apply.

                                                      • Click Synchronize.

                                                        This step updates the records in Oracle CRM On Demand. Clicking Apply marks the record as resolved in your Oracle CRM On Demand Desktop, but the record will not be updated in Oracle CRM On Demand until you synchronize.

                                                      • Postpone a Conflict Resolution.

                                                        This step postpones resolving a conflict.

                                                      • Click Close.

                                                        This step closes the Control Panel dialog box. This does not stop the synchronization of any other records.