About the series
This series will introduce you to two major areas related to Outlook Synchronization in Microsoft Dynamics CRM for Outlook:
Concepts & Rules
Dynamics CRM Outlook client: Scenarios and Synchronization Rules
Dynamics CRM Outlook client: Organization DB table structures - Server side
Dynamics CRM Outlook client: Organization DB table structures - Client side
Dynamics CRM Outlook client: User defined fields
Dynamics CRM Outlook client: Settings that affect Synchronization & Tracking
Dynamics CRM Outlook client: Highlights and Simple Methodology for troubleshooting
Dynamics CRM Outlook client: Simple list of Troubleshooting Tools
Dynamics CRM Outlook client: Synchronization Scenarios - Changes to items in Outlook (ACT)
Dynamics CRM Outlook client: Synchronization Scenarios - Changes to items in Dynamics CRM (ACT)
Dynamics CRM Outlook client: Synchronization Scenarios - Track an item in Outlook (ACT)
Dynamics CRM Outlook client: Synchronization Scenarios - Merging overlapping changes
In order to further understand the Outlook Synchronization, let’s look at some synchronization scenarios of the Outlook Synchronization.
In this article, we will review the synchronization flow when an item (ACT – Appointment, Contact, Task) is changed in Outlook and how the changes are processed by the Outlook client and Dynamics CRM.
Changes to items in Outlook (ACT)
(1) The user modifies a tracked contact record in Outlook.
(2) The Outlook synchronization process detects changes by monitoring MAPI change notifications, which are generates whenever an item is changed.
(3) When a MAPI notification is detected for an item that is marked for synchronization, entries are added to the OutlookSyncTable and the IDMappingTable.
(4) Synchronization process takes all items in the table for processing.
(5) Synchronization process updates the changed fields in Dynamics CRM.
(6) The contact record is updated.
Follow below some concepts and important notes about MAPI:
MAPI is a Messaging API that was developed for building solutions on Microsoft Outlook.
CRM for Outlook uses MAPI for displaying CRM data in the Outlook add-in using navigation folders, and items in the grid.
CRM for Outlook also uses MAPI notifications for synchronization.
To prevent missed MAPI change notifications, each notification is written to a MAPI Contents Table (in Outlook’s native cache or store).
The CRM Add-in periodically scans the MAPI Contents Table for any new items that have occurred since the last synchronization date/time.
Examples when CRM for Outlook misses MAPI notifications:
The add-in was disabled during the change
If a change were to occur before the Outlook add-in had been fully loaded
Let’s show a sample of how to use the troubleshooting tools (article Dynamics CRM Outlook client: Simple list of Troubleshooting Tools) considering this synchronization scenario: changes to items in Outlook (ACT).
(1) Navigate to client machine, open the client side tools and clean up old traces:
CRM client traces
(2) Open the SQL CE Toolbox tool > OutlookSyncCache.sdf database file and prepare the queries (attachment):
SELECT * FROM [IdMappingTable];
SELECT * FROM [OutlookSyncTable];
(3) Start the collections (client-side)
CRM client traces (%localappdata%\Microsoft\MSCRM\Traces)
(4) Select a tracked contact record and change it by Explorer View (i.e. Job Title)
(5) Stop all collections
(6) Review the CRM client traces, focusing on the crmaddin-#date#.log file
(a) Search for MapiEvents
(b) Noticed about MAPI Change Notification
(7) Go to SQL CE Toolbox and run the queries, reviewing the outcomes
Outlook Synchronization in Microsoft Dynamics CRM
Outlook 2013 MAPI Reference
How to enable tracing for the Microsoft Dynamics CRM for Outlook client
SQL Server Compact & SQLite Toolbox