BCM 2010 introduced a new feature, Contact Synchronization. This feature allows a user to synchronize their Business Contact Manager Contacts to an Outlook Contacts Folder.   How does BCM know that an Outlook Contact was synced from BCM?  

When a Contact is Synced, BCM adds a prop to that message, BCMID.   This prop can be viewed in MFCMAPI by opening the Contacts Folder that is the target of the Synchronization

clip_image001

When the PROP is opened in MFCMAPI directly:

clip_image002

The most important portion for Synchronization is the GUID in the  <Value> section (after being saved to a file):

<property tag = "0x81D0001E" type = "PT_STRING8">

<NamedPropGUID>{00020329-0000-0000-C000-000000000046} = PS_PUBLIC_STRINGS</NamedPropGUID>

<NamedPropName>sz: "BCMID"</NamedPropName>

<Value><![CDATA[713e49b9-d301-44ec-a31a-a8480c04628b,fe9f0759-bf04-4d12-ab5f-dd5ef00c3713]]>

</Value>

<AltValue>cb: 73 lpb: 37313365343962392D643330312D343465632D613331612D6138343830633034363238622C66653966303735392D626630342D346431322D616235662D646435656630306333373133</AltValue>

</property>

The value portion of the Prop contains two values, separated by a comma:

713e49b9-d301-44ec-a31a-a8480c04628b,fe9f0759-bf04-4d12-ab5f-dd5ef00c3713

These GUIDs identify the Database and the User within the database. In this Example, the GUID before the Comma:

713e49b9-d301-44ec-a31a-a8480c04628b

Is the StoreUID of the BCM Database. This identifies the BCM Database. This value is stored in the ORGTABLE of the BCM database the Contact was synchronized from.  This value can be found by querying the Orgtable with the following command:

Select * from Orgtable
or select StoreUID from orgtable to return only the STOREUID Column

image

The GUID, after the comma
fe9f0759-bf04-4d12-ab5f-dd5ef00c3713

Identifies the actual user record in the Database. This value can be found in the ContactMainTable Database, but using the following Query

Select * from ContactMainTable

clip_image005

In order for synchronization to continue to work in both directions, both of the above values have to be present in the BCM Database.   If they are not, then the Business Contacts that reside in the Outlook Contacts Folder, maybe become orphaned
Note: .BCM files do not contain a STOREUID.  So if you import a .BCM file to an existing Database, it is not updated or changed

However, restoring a database DOES change the StoreUID – but the StoreUID is not retained – instead, a new one is generated.

Special thanks to Larry for sharing this content Smile 

Thanks & Regards

Rahul Thomas