This article describes a tool that is available for Microsoft Dynamics CRM 4.0. This tool is used to extract the tracking token from the e-mail subject and to update the tracking token column of the e-mail table for customers who have disabled Smart Matching. If you chose not to use the tracking token in conjunction with Smart Matching, the tool is ineffective. If the email subjects do not have a tracking token to begin with, then there is no way the tracking token column will be populated and the tool should not be used. After you disable Smart Matching, subsequent emails will not be mapped to existing emails in the system if the tracking token was formerly disabled. Only new or future emails will map based on the tracking token. If the tracking token is removed or altered in the email subject line, the link will be broken. Note
You must run this tool before you install the hotfix that Microsoft Knowledge Base article 958084 describes. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
A hotfix to disable the Smart Matching feature in Microsoft Dynamics CRM 4.0 is available
Hotfix information for Microsoft Dynamics CRM 4.0
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix. Note
If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note
The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone
tab in the Date and Time
item in Control Panel.
|File Name||File Version||File Size||Date||Time||Platform|
- In Microsoft SQL Server, back up your OrgName_MSCRM database.
Note The OrgName placeholder represents the actual name of your organization.
- To determine how many records will be updated, run the following query in Microsoft SQL Server Management Studio:
select count (*) from email where trackingtoken is NULL
- Extract the tool to a directory on the Microsoft Dynamics CRM server. For example, extract the tool to the C:\KB969946 directory.
Note The tool needs the EmailTrackingTokenExtractor.dll file to run successfully. Make sure that this file remains in the same directory as the EmailTrackingTokenExtractorTool.exe file.
- If Microsoft Dynamics CRM 4.0 is installed on a server separate from the Microsoft SQL Server, extract the tool to a directory on the Microsoft SQL Server server with the same name as the directory you used in step 3. For example, extract the tool to the C:\KB969946 directory on the Microsoft SQL Server server.
- On the Microsoft Dynamics CRM 4.0 server, open a command prompt, and then change directories to the folder where you put the tool in step 3. For example, type cd C:\KB969946.
- Type Microsoft.Crm.Se.EmailTrackingTokenExtractorTool.exe OrgName to run the tool.
- Run the following query again to verify that the tool was successful:
select count (*) from email where trackingtoken is NULL
We recommend that you run this tool after normal business hours if you have a large EmailBase table to reduce contention and database deadlocks.
You must have the Microsoft Dynamics CRM 4.0 installed to apply this hotfix.
If you are prompted, restart the computer after you install the hotfix.
To remove this hotfix from a computer that is running Windows Server 2003, Windows XP, or Microsoft Windows 2000, use Add or Remove Programs
in Control Panel.
You may receive the following error message when you run this tool:
"Execution of user code in the .NET Framework is disabled. Enable \"clr enabled\" configuration option."
For more information, visit one of the following Web sites, depending on the version of Microsoft SQL Server that you are using:
Microsoft SQL Server 2008:
Microsoft SQL Server 2005:
We recommend that you disable this functionality after the tool completes successfully.
The following error will occur if you use the 32-bit version of the tool on the 64-bit version of Microsoft SQL Server or the 64-bit version of the tool on the 32-bit version of Microsoft SQL Server:
An error occurred in the Microsoft .NET Framework while trying to load assembly id 65549. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE. Run the query again, or check documentation to see how to solve the assembly trust issues. For more information about this error: System.IO.FileLoadException: Could not load file or assembly 'microsoft.crm.se.emailtrackingtokenextractor, Version=126.96.36.199, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)System.IO.FileLoadException: at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) at System.Reflection.Assembly.Load(String assemblyString)