Check out the latest features available in Dynamics 365 for Customer Engagement, including LinkedIn Connect, Voice of the Customer and Universal Resource Scheduling.
Dynamics 365 2019 release wave 2 plan Discover the latest updates to Dynamics 365.Release Plan | Weekly Deployment Notes
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants.Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements.
ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance and Operations TechTalks | Customer Engagement TechTalks | Talent TechTalks
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 the organization database table structures of the Outlook Synchronization.
Microsoft Dynamics CRM for Microsoft Outlook stores and relies on tables structures from:
Server-side: there are a couples of tables into the ordinary SQL Server organization database.
Client-side: the add-in also writes information to the client-side database files.
For this article, let’s review the main tables for the client-side perspective.
Files and location
The client side database structure is stored a SQL CE database (SDF files) and the location of these files are:
This file contains non-metadata platform caches.
This file contains MAPI store internal storage. Address Book data.
Each organization can have two caches, one for online and one for offline
This file contains Metadata cache that minimizes the amount of traffic that will be send once you publish your customization.
This file contains mappings between CRM and MAPI items.
This file contains internal state for sync.
Focusing on OutlookSyncCache.sdf, we have four tables:
Contains change information for emails, which are only promoted from Outlook to CRM.
The EmailTrackingTokenTable stores a cache of TrackingTokenId for the specific user.
The last two tables will be described in details in next topics.
It holds the change requests between synchronization cycles.
The OutlookSyncTable can be thought of as a queue that holds the change requests between synchronization cycles for any changes made on the client to synchronized records. Then, when the sync process occurs, this table is updated to contain the record data for changes.
unique identifier and Primary Key for each row in the table
foreign key identifier to the idMappingTable
this time/date value reflects when the item was last changed in Outlook
this integer value reflects the type of change action that occurred in Outlook:
1 – Create
2 – Delete
3 – Update
this time/date value reflects when the item was last changed in CRM
this integer value reflects the type of change action that occurred in CRM:
1 – Create/Update
2 – Delete
this integer column determines if the synchronization of the object should occur immediately or during the next manual or automatic sync
(*) - These columns are only populated during the synchronization process.
(**) - Doing a manual track, a row is first inserted into the OutlookSyncTable with a Priority of 1, which is processed immediately.
Acts as a pointer table for the OutlookSyncTable.
The idMappingTable acts as a pointer table for the OutlookSyncTable to correlate the unique Outlook entry ID to the unique CRM ID during the synchronization process.
In other words, this table can be thought of as an index.
this is the primary key for each row in the table. This key is related back as the foreign key (MapId) in the OutlookSyncTable
this relates to the GUID of the record in CRM
this is the Outlook Entry ID
this defines the entity type code for the tracked object
this bit column helps the client and server keep track of which tracked items the user has deleted locally to prevent them from resynchronizing to the client
this bit column determines whether the item is still linked to a CRM record: True/False
this bit column shows whether the user has visited the item in Outlook
this column indicates the last time the Outlook client verified the existence of the record
(*) - This field also plays a role in the SubscriptionManuallyTrackedObject table on the server.
(**) - The add-in runs a periodic job to determine if any tracked objects in Outlook have been deleted. If the add-in detects that an object is now missing in Outlook, a delete insert is created in the OutlookSyncTable, which is carried out in the next synchronization.
Business Applications communities