Search This Blog

Thursday, December 19, 2013

Happy birthday XrmToolBox!!

Today, we celebrate XrmToolBox first anniversary!  this seems like a good time to give some figures

  • XrmToolBox was born in December 19th of 2012
  • It has been downloaded more than 12.000 times
  • It has been reviewed 9 times
  • It has been rated 19 times with mainly 5 stars
  • It is made of 17 tools:
    • 15 from MscrmTools
    • 1 tool from DamSim
    • 1 tool from  ProCentrix
    • 1 tool from D La B
    • and perhaps others I do not know

Below is the result of the poll I started in a previous post.


As you can see, SiteMap Editor, View Layout Replicator and Web Resources Manager are the most used tools. But do not hesitate to try out the other tools : they could certainly help you.

What is coming next?

I have still some tools to develop and the toolbox will still be updated to be always better. You can help me by making a donation as this encourages me to continue improving the toolbox and provide new tools.

For those of you that donate something, I give you a specific file to put on your XrmToolBox folder. It will thank you for your support each time you launch the XrmToolBox and you won’t be asked anymore to support it. If you already donated on the past, just contact me to get your personal file.

You can also ask for specific tools, if you don’t have time or possibility to develop it.

Where to download it?

You don’t know yet? It’s on CodePlex of course

Wednesday, December 18, 2013

Introducing new tool: Sync Filter Manager

This tool was requested by my fellow MVP’s Scott Sewell and Joel Lindstrom from Customer Effective. All credit goes to them for the quality of this tool as they tested it, provided great feedback to have the best tool possible.

Having said that, what does the tool do?

It allows you to manage filters applied to synchronize contact and activity data with CRM for Outlook or Server sync (Outlook filters) or data synchronized offline by CRM for Outlook(offline filters).

Traditionally these filters are managed by users. This tool allows an administrator to globally manage user filters.

Here is what the tool looks like


With this tool, you can:

  • List and delete System Synchronization filter: These filters applies to all users and users can’t change them.
  • List, delete, define as default and apply Synchronization Filters Templates to users: These filters applies to users you choose and users can delete these filters if they want to. (Note: Although there can be multiple filters per entity listed in the Default Local Data Rules, CRM only allows one rule per entity to have the “Is Default” attribute set to “True” - Only Default Local Data Rules where the “Is Default” attribute is “True” will be copied to the selected user when a user is ‘created’ or ‘reset’)
  • List, enable, disable and delete Users synchronization filters: They are the filters currently in use for users.
  • List System views. You can also create a system rule or a rule template from a system view. It is also possible to update an existing system rule or rule template from a system view.
  • List users: This action will replace all synchronization rules for the selected user(s) with the organization’s default local data rules. Any user-created rules will be removed.

As you can see, you will be able to manage synchronization filters, which was not possible before without writing your own code.

Known restrictions:

  • To list user’s synchronization rules, your user must have prvAdminFilter privilege
  • Listing user’s synchronization rules can take a lot of time since a query must be executed for each user and each filter type (Outlook and Offline).


As usual, the toolbox is available on CodePlex


If the new tool helps you and you are happy with it, you can help me by making a donation (Go to sponsor page)

Monday, December 2, 2013

Poll : XrmToolBox usage

Hi everybody,

Could you answer this quick poll? I'm trying to understand what tools are most used in the XrmToolBox (even if I have a little idea).

Thank you!

What are the tools you use most? free polls 

Wednesday, November 6, 2013

An easy way to find the ID of a record : What is my id?


When I develop features for Microsoft Dynamics CRM, I often need to find the id of the record on which I am working.
Generally, I press the F11 key and I get the ID in the midst of all the other information contained in the URL.
Now, I use a solution that I created that displays on all forms a button to display the ID of the current record.

Here is an overview


It’s really a small solution which does almost nothing but it’s more than playing with F11 key.

Click here to download the managed solution

Friday, October 25, 2013

CrmTraceReader updated!

I just updated the Trace Reader to ease loading files and searching

You can now drag and drop file(s) directly on the reader (in fact, the drag and drop works only on the list of trace items but that is cool anyway Sourire)


You can also clear all filters to get back to all trace items and when you reload file(s), the filters are kept if relevant.

As usual –> CodePlex

Wednesday, October 23, 2013

New XrmToolBox plugin : Local to Global Option Set Converter!

This is not one of my own but here is a new plugin for the toolbox, it will allow you to convert a local Option Set to a global one while maintaining the value of the Option Set in database.

The plugin is available on CodePlex

Is the XrmToolBox compatible with Microsoft Dynamics CRM 2013?

As far as I can tell, yes it is!

I have tested the main features of each plugins I have developed and it seems that everything runs smoothly with Microsoft Dynamics CRM 2013!

So I have nothing more to say… Go download the XrmToolBox

Sunday, September 29, 2013

New tool : Trace Reader for Microsoft Dynamics CRM

Today, I’m releasing a new tool that will help you to read trace files generated by Microsoft Dynamics CRM application (versions 4.0, 2011 and 2013).

Features of the tool are:

  • Load one file or multiple files in a folder
  • Filter traces depending on multiple criteria
  • Format XML of Crm Sdk typed trace
  • Refresh trace files content




As usual, the tool is available on CodePlex. Do not hesitate to review it or ask for improvements.

Wednesday, August 28, 2013

Updated connection control library

For those of you that want to display their connection grouped by connection type, you can download latest version on CodePlex.


NB: If you are using the XrmToolBox and want to use this new version, download latest version of connection controls and paste the dll’s to the XrmToolBox folder.

New XrmToolBox plugin: Audit Center

Today, I’m releasing a new (and certainly the last, at least for Microsoft Dynamics CRM 2011) plugin for the XrmToolBox : Audit Center.

The name speaks for itself: This plugin will allow you to manage the entities and attributes that should be activated for the audit feature of Microsoft Dynamics CRM. As usual, it should avoid boring steps when you want to configure your CRM application.

Instead of opening each entity to activate or deactivate audit, then repeating for each attributes, you will be able to performs all these tasks in a single place.

Here is what it looks like:


The tool displays only entities and attributes that are valid for audit. You can then add/remove entites/attributes with the corresponding buttons. When change are detected, the button “Apply changes” is enabled. “Applying changes” does not activate or deactivate audit feature. It just update entities and attributes.

To activate/deactivate audit feature, use the button in the toolbar.

As usual, this plugin among all others is available on the XrmToolBox project page.

Wednesday, August 7, 2013

New XrmToolBox Plugin : Easy Translator

Hi all,

As I wrote few weeks ago, I was working on a translation tool. It is now finished and available as a XrmToolBox plugin.

The features are described in my previous post

Just few more info:

  • I tried to include ribbon items translation. Even if I was able to export ribbon labels, there is no way to update them directly using SDK (except exporting/importing solutions).
  • After having exported translations, please do not change anything on the Excel workbook structure, especially sheets name and colorized cells.
  • When using this tool, please backup your organization before importing translations. I made some test but can’t assure there is no risk even if I’m only using supported methods

Here's what the interface looks like


As usual, to download it, go to CodePlex

Monday, June 24, 2013

What to expect for my new tool to come

Last week, David J. was asking to the MVP list how to get more accurate data when comes the time to translate CRM customizations. His concern was to get contextual information about the terms to translate. I can only agree with him… When exporting translations, you just get an ID and the term to translate. You don’t know where it is used…

So my next tool will be a tool that exports data to translate, but with contextual information. The tool will of course be able to import these data back to the CRM application. Export and import will be managed in a supported way using web services only.

What will be included

  • Entity names and descriptions
  • Attribute name and description
  • Boolean, Picklist, State and Status OptionSet Attribute labels
  • View name and description
  • Form name and description
  • Form Tabs name
  • Form Section name
  • Form Field name

All these items have been tested successfully on UR12 organization. I still need to check if new forms are structured in the same way than classic forms. And I have to manage Global optionsets but I know it will be easy.

The export will produce an Excel workbook with multiples sheets


Each sheet will have its own columns (see Form tabs example below)


Release date?

I don’t have one yet. The export/import engine is almost finished but I need to develop the UI too. And I’m on holidays tomorrow for three weeks so I won’t touch a keyboard during this time (well, almost) so I assume the tool will be ready by the end of July.

Tuesday, June 18, 2013

XrmToolBox Update: A lot of new stuff!

Last week, I worked on more than just tools embeded in the XrmToolBox. I worked on the XrmToolBox itself. Here is a (quite) big list of improvment. So, it’s only a week since the last version but it worth it…

If you are too lazy to read the article and want to download the new version now, go on CodePlex.

Prerequisites check

There is so many people asking me why they got errors or why there is no tool listed when launching the XrmToolBlox that I decided to add some check features.

Now, if you don’t have Windows Identity Foundation 3.5 installed, you get the following message


More, if tools assemblies are blocked by Windows (it happens), this message is displayed



The toolbox now uses the Microsoft.Xrm.Client namespace to manage connection. The code is easier to read and maintain. The code is updated but the UI is too. Especially when you want to connect to an online organization, you don’t have to type the server name anymore. You just have to select the server name.


The counterpart of this changes is that encoded password seem corrupted, so you may have to update your connections on the XrmToolBox.

Tools display

No one ask for this… I asked it by myself… The point is : the tools list gets bigger and bigger and other developers can add their own tools. There is so much tools that you have to scroll down to find your favorite tool, if it is not displayed in the first places.

To resolve this problem, two solutions:

  • Display smaller information panels
  • Add a “Most Used Tools” feature

So, now, there is a settings button in the toolbar that allows you to decide if you want to display small or large icons.

Small icons


Large icons


There is also a “Most Used List” feature. The more you use a tool, the more it is placed first. You can also activate this option in the settings dialog


Tool display : custom style

When you develop your own tool, you can now specify a large icon, a small icon, a background color and two fonts for text color. See XrmToolBox development guide on CodePlex to understand how to customize your tool display.

Here is an example with a new tool discussed below.



Project Template

With the above changes, the project template that can be downloaded on CodePlex has been updated. The major change is about defining images and colors for the tool.

A new tool : Solution Transfer

This is not a tool of mine. Damien, one of my colleagues wrote it. It allows you to select a solution from a source organization and transfert it to a target organization with all the same options available when performing these tasks manually (export/import). It will be included in the XrmToolBox releases as Damien has no repository where to store his tool.


Tool Update : View Layout Replicator

Just a small update for this tool. You can now double click on a selected view in the source listview to display the layout XML of the view on a dialog form.


As you can see, there is a lot of new (good) stuff on the XrmToolBox! Do not hesitate to download the latest version on CodePlex.

Tuesday, June 11, 2013

Web Resource Manager : Identify and delete unused web resources

With the latest version of the XrmToolBox and the WebResourceManager plugin, there is now a new feature that displays a list of “unused” web resources. Well, it is in fact a list of web resource without any dependency. It does not mean that they are not used by other web resources, but it is a reduced list of web resources to analyze to check if they are still in used.


Then with the “Delete selected web resources” button, you can delete web resources you don’t need anymore.


Hope it will help you maintaining clean web resources list!

Metadata Document Generator is back!

Today, and after a long time since the XrmToolBox was released, the Metadata Document Generator tool is now available as a plugin for the toolbox.


It provides the same features than the previous stand alone version, with some extra:

  • You can add location of attributes in forms
  • You can select attributes NOT on forms

And still:

  • Excel or Word output (thanks to GemBox Software API)
  • Language selection (if multi language enable on organization)
  • Attributes selection:
    • all attributes
    • optionset and boolean attributes only
    • attributes used in forms
    • attributes not used in forms (new)
    • attributes selected manually
  • Attributes metadata selection
  • Save/load settings to avoid losing time replaying the same document generation

As usual the tool is available as part of the XrmToolBox application, on CodePlex

Tuesday, May 14, 2013

Should I shut down individual tools CodePlex projects?

Hi guys,

Today, I need your feedback. Since I provide the XrmToolBox that aggregates almost all my other tools, do you think I should delete individual tool projects on CodePlex (at least, those included in the toolbox) ?

In one hand, it will be easier for me to avoid answering question about tools no more updated. On the other hand, it may reduce the visibility of my tools…

So, what’s your thought about this?

Monday, March 25, 2013

XrmToolBox Update : v1.2013.3.22


The XrmToolBox application has been updated, here is the changelog:

XrmToolbox improvement

Use Internet Explorer proxy settings
Group all CodePlex links in a common menu


Tools improvement

Web Resources Manager (v1.2013.3.14)
Find/Replace feature for code (JavaScript, Css, Html, Xslt) web resources
Css highlighting
New shortcuts:
  • Ctrl+S : Save
  • Ctrl+R : Replace with new file content
  • Ctrl+U : Update and publish

Role Updater (v1.2013.3.20)
Fixed a major bug that didn't allow user to execute role updates


All tools list

Access Checker (v1.2013.2.5)
Attribute Bulk Updater (v1.2013.1.17)
FetchXml Tester (v1.2013.3.4)
Iconator (v1.2013.1.17)
Privileges Discovery (v1.2013.3.4)
Role Updater (v1.2013.1.10)
Script Finder (v1.2013.1.10)
SiteMap Editor (v1.2013.1.10)
Solution Import (v1.2013.3.4)
View Layout Replicator (v1.2013.1.30)
Web Resources Manager (v1.2013.3.4)

As usual, the tool is available on CodePlex

Monday, March 4, 2013

New tool! Privilege Discovery

I already blogged about that tool in the previous post so you can find all information about the tool here.

Just notice that Donna won the contest to find the name of this tool. Congrats, Donna!

The tool with the XrmToolBox can be found on CodePlex

Saturday, February 9, 2013

New XrmToolBox plugin: What’s its name, again?

As usual, when I develop a tool, it is in response to a need expressed by a customer or colleague. The need, this time, was to be able to identify which security roles allow users to perform a specific action. In more technical terms, how is it possible to retrieve security roles that implement a specific set of privileges.

Of, course, SQL queries can help. But when you are not a technical guy, you can’t use SQL. This is why I developed this new plugin, which is named… I don’t know! So, just read the following to see how this plugin works and help me to find its name before I release it publicly.

How it works

The plugin simply retrieves all available privileges and all security roles. The user can create a set of privileges with the privilege depth included (none, user, division, division and sub division and organization, or any depth). Then, he can display the list of security roles that match this privileges selection.



Help me

Please answer to this post and help me finding the right name for this tool! The winner wins a free license of… this free tool Sourire

New XrmToolBox plugin by Procentrix: XRM Prep

Today is a great day!

Of course, I really like my XrmToolBox application because it is a great way to ship multiple tools in one application.

But since two weeks, I am no more the only one to develop with the XrmToolBox! Nick from Procentrix has developed a plugin that will help you to initialize a new organization that is cleaned of standard configuration/records like reports, dashboard, roles. It also comes with a security role with the minimum set of privileges required to connect to the application.



You can review the release announcement on procentrix blog

Thursday, February 7, 2013

A simple way to access all available organizations on a CRM instance

During a project where we needed to access multiple organizations on a single CRM instance, I was asked to develop a small web page that will list all available organizations.

As it is really a small utility, and with the project leader agreement, you can now use it for your own purposes!

It displays the friendly name (clickable), the unique name and each web services (also clickable).

Here is what it looks like


You can download sources here

To install it:

  • Create a new site on IIS on the CRM server
  • Authentication mode should be Windows integrated with impersonation enabled
  • The appPool must be executed with Framework .Net 4.0
  • copy archive content to the root folder of the new web site
  • Convert the folder to an application in IIS

Wednesday, January 30, 2013

Some new contents for the XrmToolBox

I received some improvement requests from some users of my XrmToolBox and, as you know, it is so easy to develop tools for the XrmToolBox that I did what was asked, which is:

Converting the CRM 4.0 tool Access Checker for CRM 2011: So, this is a new tool. It allows you to check what access have a specific user for a specific record. You can define an entity, search for a specific record and a specific user and see what access rights are available.


Working with user views in View Layout Replicator: Yes, you can now propagate a user view layout to a system view and vice versa. Of course, you need read and write access to these user views since CRM security can’t be bypassed regarding userview. If the user view has not been shared with you with read and write access, the tool won’t work.


As usual, you can find everything on CodePlex

Tuesday, January 29, 2013

Stats time

Today, I receive a really generous donation from mister C. (he will recognized himself, thanks again) and I thought it was time to see some facts and numbers about my “work” for the CRM community.


As you might know, my contributions to the CRM community is mainly made of tools. So here is the download statistics from CodePlex (numbers since February 20th 2011, I don’t have statistics for my CRM 4.0 tools).

Tool Download count

SiteMap Editor


Ribbon Editor


CrmDiagTool 2011


View Layout Replicator


JavaScript WebResource Manager


Metadata Document Generator


Ribbon Browser


Attribute Bulk Updater


Role Updater


WebResource Manager


Connection Controls


Solution Import








Numbers of downloads will obviously decrease since I have one tool instead of many. But I’m not participating to a competition and the ToolBox is so much better than having multiple applications.


I also received awards for my “work” for the community:

  • Microsoft MVP since 3 years
  • Microsoft Community Contributor (MCC) since 3 months (I’m almost the only one to answer to questions on the French technet forum dedicated to Microsoft Dynamics CRM, that helps)

What I win?

Being an MVP does not give you money but many advantages:

  • MSDN/Technet subscription
  • Invitation to MVP Summit each year (sadly, I will miss this year summit)
  • Some software companies offer NFR (not for resale) licenses of their products: that is really cool
  • Participating on the great community (and family) of CRM MVP’s

Being a MCC just gives a virtual badge and recognition

The only “real” money I receive, for this community “work”,  is from donation made from this blog or my tools. In the last two years and half, I received 8 donations (I thank again people for their generosity), that didn't allow me yet to buy a Microsoft Surface so other peoples who are using my tools know have to do now Sourire

PS: I quoted the word “work” in this article but it is not really a work, I really enjoy to develop tools and  help people on Microsoft Dynamics CRM topics

Thursday, January 17, 2013

How to follow updates of XrmToolBox on CodePlex

Do you know this great feature of CodePlex? You can subscribe to project releases and each time a new version is available, you receive an email. As I won’t blog each time there is a new version, the best way to be notified of a new version is to follow the project and subscribe to notifications of the release page.

It is really simple, you just need a CodePlex account (which can be linked to your Microsoft account), go to the XrmToolBox downloads page, and click on the link “get email notifications”


Then, when a new release is available, you receive an email like the following for today’s update:


XrmToolBox updated : 1.2012.1.17

Hi guys, no, I won’t talk about my HTML/JS grid in this post even if you expect it ! Wait couple of days, I’m in the process of improving performance…

I just wanted to notice a new version of the XrmToolBox which has minor improvements, but has a new tool: the Fetch Xml tester. It was a personnal tool I was using when writing my fetchXml queries and as I needed it for my HTML/JS grid, I transformed it in a XrmToolBox plugin (see screenshot below).



To see others improvements or download the new version, go to the Download Page

Monday, January 14, 2013

Full featured CRM grid in HTML/JS

In last December, I was asked to write a web resource to display a grid with CRM records. I was quite frustrated because I didn’t succeed to manage some grid features easily like fixed header with horizontal scrolling among others. I delivered a fixed table which was not so bad but absolutely not something that look like the application grid views.

So I decided to work harder to find a way to do this CRM style grid view. After some works (almost two full days), I have succeeded to create a full featured CRM grid view by using only JavaScript.

Here is a screenshot:


And this is how I can create a grid view from only a div in a HTML page

title>Page de test</title>
script src="json2.js"></script>
script src="jquery.js"></script>
script src="XrmServiceToolKit.js"></script>
script src="sdk.metadata.js"></script>
script src="table.js"></script>
script src="scripts.js"></script>
script src="../../ClientGlobalContext.js.aspx"></script>
link href="style.css" type="text/css" rel="stylesheet"/>
body onload="LoadPage();">
input type="button" onclick="display();" value="Afficher"/>
div id="baseDiv">


And using this script

function LoadPage() {
MscrmTools.Table.Height = $(window.document).height() - 200;
MscrmTools.Table.Width = $(window.document).width() - 50;
MscrmTools.Table._minWidth = 500;
MscrmTools.Table._minHeight = 300;

MscrmTools.Table.CurrentEntity =
var layout = '<layoutxml>';
layout +=
'<grid name="resultset" object="1" jump="name" select="1" icon="1" preview="1">';
layout +=
'<row name="result" id="accountid">';
layout +=
'<cell name="name" width="300" />';
layout +=
'<cell name="accountnumber" width="100" />';
layout +=
'<cell name="primarycontactid" width="150" />';
layout +=
'<cell name="address1_city" width="100" />';
layout +=
'<cell name="telephone1" width="100" />';
layout +=
'<cell name="emailaddress1" width="200" />';
layout +=
layout +=
layout +=


window.document.body.onresize = MscrmTools.Table.Resize;

function display() {
var fetch = '<fetch mapping="logical">';
fetch +=
'<entity name="account">';
fetch +=
'<attribute name="name"/>';
fetch +=
'<attribute name="accountnumber"/>';
fetch +=
'<attribute name="primarycontactid"/>';
fetch +=
'<attribute name="address1_city"/>';
fetch +=
'<attribute name="telephone1"/>';
fetch +=
'<attribute name="emailaddress1"/>';
fetch +=
fetch +=


I won’t show the table.js as I’m still considering options to deliver this script to the community, but for information, it’s a 800 lines script of 38KB.

As I said before, it’s a full feature grid:

  • Define fetchXml and layoutXml
  • Fixed header with horizontal and vertical scrolling
  • Paging (the script allows to define Records per page)
  • Records selection count (with total items count)
  • Grid refresh
  • Column behavior:

    • order (by clicking on the column header)
    • resize (drag and drop column separator or double click on it)

  • row selection (single or multiple using Ctrl or Shift hotkeys, by row selection or checkbox ticking)
  • Lookup allows referenced record to be opened
  • Double click open selected row
  • Click and Double Click handler to allow developer to add its own behavior

And you? What do you think about this grid? How do you deal with this need to create CRM grid views?


With this post comments, I noticed that I wasn’t managing link entities attributes. It is done now! And also, I won’t manage column filtering, which seems a little bit too complicated for me.

Wednesday, January 9, 2013

XrmToolbox: Develop your own tools

If you visit the XrmToolbox CodePlex download page, you will notice two new files:

  • A Visual Studio 2012 project template to help you create your own tool
  • A development guide (based on the project template) that explains how to write it to be sure it fits correctly with the XrmToolbox.

If you develop your own tool and would like to share it with the community, I will be glad to make some noise about it on my blog or even on the XrmToolbox CodePlex page.

Happy coding!

Tuesday, January 8, 2013

SDK 5.0.13 : Yes! you can get only metadata you want!

Today, I want to share a really nice feature that was shipped with the latest version of the SDK: the possibility to query metadata (entity, attribute, relationships,…). Before this update, we have to get so many data just to have an entity object type code or icon url.

Now, you can query just what you want (filter) and select what data will be returned: so cool!

Here is a quick sample that returns only custom entities logical name and object type code

var filter = new MetadataFilterExpression(LogicalOperator.And);
new MetadataConditionExpression("IsCustomEntity", MetadataConditionOperator.Equals, true));

var properties = new MetadataPropertiesExpression();
"LogicalName", "ObjectTypeCode");

//An entity query expression to combine the filter expressions and property expressions for the query.
var entityQueryExpression = new EntityQueryExpression { Criteria = filter, Properties = properties };

//Retrieve the metadata for the query without a ClientVersionStamp
var retrieveMetadataChangesRequest = new RetrieveMetadataChangesRequest
Query = entityQueryExpression,
ClientVersionStamp =
DeletedMetadataFilters =

var response = (RetrieveMetadataChangesResponse) service.Execute(retrieveMetadataChangesRequest);