Change your Address Book Provider Settings
One feature of CRM is that you can pull address information from CRM into your Address Book within Outlook. Jason Dibble wrote a great article discussing the feature in a Q&A format last November that I recommend you review: http://blogs.msdn.com/crm/archive/2006/11/13/crm-address-book-provide-faqs.aspx.
This feature can have an impact on Outlook’s performance when CRM is loaded if you have many records in the entities that are brought into the Address Book in CRM – Accounts, Contacts, Leads, Queues, Users, and Facilities/ Equipment. By default, all account, contact, lead, queue, users and equipment records are synchronized to the Address Book within Outlook. In the original release of CRM 3.0, this setting cannot be changed. With Update Rollup 2 installed (and if you haven’t installed Update Rollup 2 yet, stop what you’re doing and throw it on a test server and start testing it), you can add registry entries which will allow you to control the Address Book synchronization so you can limit synchronization to no records, only records owned by the user, only records owner by the business unit in which the user exists or all records (the default).
To check the amount of data that is being synched to each client machine, you can look at the file sizes on a client machine under the following directories (default location):
- Windows XP - c:\Documents and Settings\[username]\Application Data\Microsoft\MSCRM\ABP\Online
- Windows Vista - c:\Users\[username]\AppData\Roaming\Microsoft\MSCRM\ABP\Online
I would recommend that new implementations or any implementation that is having some Outlook performance issues review the options for Address Book settings and choose the best option. In most cases, I believe this will be to set your system to synch either 1) records owned by the user or 2) records owned by the business unit.
The following table lists each registry entry and the value that you can set.
|Registry entry name||Value of "0"||Value of "1"||Value of "2"||Value of "3"|
|ABPAccount||Turned off||User level||Business unit level||All records|
|ABPContact||Turned off||User level||Business unit level||All records|
|ABPLead||Turned off||User level||Business unit level||All records|
|ABPEquipment||Turned off||Not applicable||Business unit level||All records|
|ABPQueue||Turned off||Not applicable||Business unit level||All records|
|ABPSystemUser||Turned off||Not applicable||Not applicable||All records|
Let’s say you decide the best option is to have the users synchronize the records owned by the business unit in which the user resides. To implement the change, you need to make the following changes:
- Install Update Rollup 2 on the server
- Add the following DWORD registry entries* to the MSCRM hive under HKEY_LOCAL_MACHINE\Software\Microsoft
3. Set the value to 2 (if you want business unit level access) for all but the ABPSystemUser key. Set the ABPSystemUser key value to 3.
* Note – please heed the warning that modifying the registry should be done at your own risk
Please take a moment to review the Knowledge Base article which discusses the hotfix and registry settings in depth as you are reviewing the best course of action: http://support.microsoft.com/kb/925780/.
For an example, the customer I just visited did not know this feature existed, but since many users had access to all the contacts in the system, they were copying down 47MB of Address Book data every 15 minutes as part of the synchronization. The customer made the decision to turn off the Address Book synching for all but the SystemUser values and it provided a significant performance boost to their Outlook clients.
There are two registry entries that can be made to the client to limit the synchronization times between the Outlook client and the Address Book Provider. These values can be added to the MSCRMClient registry hive under HKEY_CURRENT_USER\Software\Microsoft:
1. ABPAccessCheckDelay – this controls the time (in minutes) between Outlook startup and the first attempt to synchronize the Address Book.
a. Default value = 0
b. Recommended value = 30
2. ABPDataRefreshTime – this controls the time (in minutes) between synchronizations
a. Default value = 15
b. Recommended value = 60
By adjusting these settings, the Address Book will synchronize 30 minutes after you launch Outlook and every 60 minutes thereafter.
If your number of accounts or contacts is greater than 10,000, I recommend you take the time to choose the appropriate setting for your environment and implement the changes to keep Outlook running as fast as possible.