Archive for the ‘MS CRM 4.0’ Category

IE 8 and CRM: popups being blocked

January 24, 2012 Leave a comment

Possible steps to Fix Pop-up issue .

  • adding the site to the popup blocker exception list
  • disabling the popup blocker altogether
  • adding the site to the trusted zone
  • enabling/disabling protected mode
  • disabling all IE plugins
  • resetting security zone settings
  • enable protected mode for all zones
  • resetting all IE 8 parameters
  • disabling UAC
  • uninstalling Norton
  • setting tabprocgrowth to 0 in the registry
  • checked if IE 8 is the default browser
  • cleared IE cache

If any of the above steps does not fix problem try applying script that exists in the below URL to fix it..


Categories: MS CRM 4.0

Some of the cool Tools for CRM 2011

September 20, 2011 Leave a comment






CRM Look and Feel Page Development :

Ribbon Editor  :

JavaScript Web resource Manager :

View layout Replicator :

unique auto number solution :

Related records tree :

CRM Customization Editor 2011 :


Export/Import User views 2011 :

CrmRestKit :

Currency Updater 2011 :

SOAP Request Formatter 2011 :

Trace Tool 2011 :



























Categories: MS CRM 4.0

Duplicate Detection in Outlook

September 19, 2011 Leave a comment

Did you ever think about how to maintain high quality data in Microsoft Dynamics CRM when using the Microsoft Outlook client, especially when you are working offline and syncing your data when going online or tracking some outlook data? If yes this post is worth reading.

One of the several data entry points in Microsoft Dynamics CRM 4.0 is found in the CRM Outlook client. To maintain high quality data in the CRM system and prevent duplicates, duplicate detection and resolution is supported during Outlook online synchronization and during tracking in CRM.

Duplicate detection during online synchronization:

To enable duplicate detection during online synchronization you’ll have to enable following duplicate detection settings in CRM server and client:

1. Server Setting: Navigate to Settings->Data Management->Duplicate Detection Settings. You’ll see a dialog to modify the settings. Here select the check box “When Microsoft Dynamics CRM for outlook goes from offline to online” option as shown in following figure.


Figure 1: Duplicate detection settings in Microsoft Dynamics CRM 4.0

2. Client Setting: Navigate to CRM->Options->Synchronization tab in laptop client. Duplicate detection section is available only if server setting is enabled.


Figure2: Duplicate detection settings in laptop client for online synchronization

As shown figure 2 following options are available:

a. Do not create the duplicates: Select this option when you do not want to create duplicates when going online and take resolution for every duplicate reported.

b. Create the duplicates: Select this option to create duplicate records in Microsoft Dynamics CRM even if duplicate detection in option “When Microsoft Dynamics CRM for outlook goes from offline to online” option is enabled in the server.

In addition to above settings you’ll also have to create and publish duplicate detection rules in the CRM server. To know more about how to do this read Managing rules, settings (including cross-entity concept).

Once you have enabled the setting for detecting duplicates you need to know how duplicates are reported. Let’s take an example:

Suppose there is a Duplicate rule which says that Lead record is a duplicate of Account record if Account’s Main Phone is same as Lead’s Mobile Phone and duplicate detection is enabled for online synchronization on the server and client.

Now a sales person who is using laptop client goes offline to attend an event where he meets some prospects for which he created some leads and one of them is already available in the system as an account. So when he comes back from event and tries to go online duplicates are reported to him in the “Data synchronization error dialog” as shown in following figure.


Figure 3: Data synchronization Error dialog (Shown when going online)

As you can see in the figure above “Resolve Duplicates” button is available in this dialog. This button is enabled if the selected error is duplicates error. To see the details of the duplicates either double click the error row or select it and click “Resolve Duplicates” button. Following dialog will appear where the duplicates of the record in the server will be shown the user.


Figure 4: Resolve duplicate dialog (For resolving duplicates shown in figure 3)

In the figure the first grid (offline record) shows the records which is duplicate (one created in offline) and the second grid (duplicated record grid) shows the potential duplicates found based on the duplicate rules in the server.

As shown in figure following options are available for resolving duplicates:

1. Create duplicate record: You can choose this option to create a duplicate record in the server.

2. Ignore offline record: or ignore the offline record. The duplicate record will not be created in the server.

On clicking “Resolve” button duplicates are resolved as per selection and on clicking cancel no action is taken for the selected error.

Duplicate detection during Track in CRM:

When you are tracking some Outlook contacts Microsoft Dynamics CRM duplicates are reported when “When record is created or updated” option figure 1 is enabled in CRM server and there are some published rules for the tracked record type. If a duplicate of tracked record exists in CRM following Duplicates detected dialog is shown.


Figure 5: Duplicates detected dialog (shown when duplicates are found while tracking an Outlook item)

As shown in figure you can choose to create a duplicate record. On clicking the ‘Cancel’ button the record is not tracked in CRM.

Categories: MS CRM 4.0

Activity ‘SetStateStep1_policy’ validation failed: Property “RuleSetReference” has an invalid value. Rule set is invalid. Rule “main” validation failed. Type System.Globalization.CultureInfo is not marked as authorized in the application configuration file

August 1, 2011 Leave a comment

This morning when i tried to publish the workflow in our CRM sytem  , i was keep on getting following error

“Activity ‘SetStateStep1_policy’ validation failed: Property “RuleSetReference” has an invalid value. Rule set is invalid. Rule “main” validation failed. Type System.Globalization.CultureInfo is not marked as authorized in the application configuration file” …

I tried to create simple workflow even that was showing same error when i tried to publish it.. I got some suspicious about roll up that i applied last night.. After googling it seems the issue is because roll up and it looks we have to update web config manually to fix this..

Adding following entry in the web config fixed the issue…

<authorizedType Assembly=”mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089″ Namespace=”System.Globalization” TypeName=”CultureInfo” Authorized=”True”/>



Categories: MS CRM 4.0

Adding the queue name to a saved advanced find for cases

Unfortunately, CRM 4.0 does not currently support adding the queue to a case advanced find. However, that doesn’t mean it can’t be done.

Please note, that this is not a supported modification or change.

Follow the steps below to modify your fetchXML and your layoutXML to have the queue name show up in the advanced find. You can even update the name in the UserQueryBase to rename your advanced find to something better.

  1. Create your advanced find, setup your filters etc.
  2. Save your advanced find (name it something unique)
  3. Get the guid of your advanced find (using open pop-ups in a new tab or using a select statement to look it up in the db.
    1. SELECT UserQueryID FROM UserQueryBase WHERE Name=’Cases (w/Queue Name) – IT Example’  
    SELECT UserQueryID FROM UserQueryBase WHERE Name='Cases (w/Queue Name) - IT Example'
  4. Then using the id, execute the following code to add the queue name:
    1. UPDATE UserQueryBase SET  
    2. FetchXml = REPLACE(FetchXml,'</entity>’,   
    3. ‘<link-entity name=”queueitem” from=”objectid” to=”incidentid” visible=”false” link-type=”outer” alias=”qi”>  
    4. <link-entity name=”queue” from=”queueid” to=”queueid” visible=”false” link-type=”outer” alias=”Q”>  
    5. <attribute name=”name”/></link-entity></link-entity></entity>’)   
    6. ,LayoutXML = REPLACE(LayoutXml,'</row>’,   
    7. ‘<cell name=”” width=”200″ disableSorting=”0″/></row>’)   
    8. — Make sure to change the UserQueryID   
    9. WHERE UserQueryID=’71F94C46-F217-DF11-A241-0050569B4FF3′  
    UPDATE UserQueryBase SET
    FetchXml = REPLACE(FetchXml,'</entity>',
    '<link-entity name="queueitem" from="objectid" to="incidentid" visible="false" link-type="outer" alias="qi">
    <link-entity name="queue" from="queueid" to="queueid" visible="false" link-type="outer" alias="Q">
    <attribute name="name"/></link-entity></link-entity></entity>')
    ,LayoutXML = REPLACE(LayoutXml,'</row>',
    '<cell name="" width="200" disableSorting="0"/></row>')
    -- Make sure to change the UserQueryID
    WHERE UserQueryID='71F94C46-F217-DF11-A241-0050569B4FF3'
  5. If you have your advanced find window open, close and reopen it before trying to run it and see the “” column.

If you have any problems or questions, let me know. Again this is setup to work on advanced find for cases, I’m sure it could be modified for other queue-able entities.

With CRM 2011, you can include fields from related entities, so you don’t have to use this method, you can just add the column through the user-interface.

Categories: MS CRM 4.0

Show both active and inactive records in the lookup view

Let’s start from an example: you have a custom entity call: MyEntity, you have setup a N:1 relationship between MyEntity and Opportunity, so the user can see an opportunity lookup field on the MyEntity form. Now you want to show users both active and inactive opportunities from that lookup field, all you need to do is put the below code into MyEntity.OnLoad() event:

1.crmForm.all.new_opportunityid.lookupclass = "alllookups";

The lookup class are controlled via xml files in %ProgramFiles%\Microsoft CRM\Server\ApplicationFiles\
If you take a look at the file: opportunity.xml, you may find a condition like: <condition attribute=”statecode” operator=”eq” value=”0″/>

you can remove the condition, and then use this class, e.g:crmForm.all.new_opportunityid.lookupclass=”opportunity”; However it’s very much unsupported way(by changing files)! But if you open the file: alllookups.xml, you may find that the opportunity(object type=”3″) entity doesn’t have such condition, so we can use this class to get all opportunities.

Categories: MS CRM 4.0


I was wondering for some time to identify the cause for the error “INVALID_WRPC_TOKEN ” as it fills all the event viewer log file.This issue appears to be introduced after CRM ROllup 7 as MS added some security changes.

Just found this, which fixed a colleague’s issue with CRM Rollup 7. The main point in the article is that the donwload.aspx page doesn’t work in Rollup 7 and you get the trace error:
Message: INVALID_WRPC_TOKEN: Validate WRPC Token:WRPCTokenState=Invalid, TOKEN_EXPIRY=4320, IGNORE_TOKEN=False, TOKEN_KEY=blah blah, ErrorCode: -2140991221″

The fix is to turn off token checks by creating a registry key, with the value 1:
HKLM\SOFTWARE\Microsoft\MSCRM\IgnoreTokenCheck (DWORD)

Categories: MS CRM 4.0