Some Useful XrmToolbox Plugins
A Powerful Tool
Over the last few weeks, I’ve come across some great discussions about the XrmToolbox and the variety of available plugins. I attended the DC CRMUG meeting recently and Thomas Daly of Procentrix provided a toolbox overview and helpful plugins for both developers and administrators. I am pretty familiar with the XrmToolbox having built the Document Template Manager and Typescript Helper Class Utility plugins, but I definitely learned a few things from Thomas and the other attendees. I also dialed in to a presentation by Jonas Rapp of Innofactor AB on various developer tools, including the XrmToolbox and some specific plugins. If you are familiar with the XrmToolbox, you likely know Jonas as he has developed some extremely powerful plugins himself.
These meetings made me realize how much time I save by using the XrmToolbox. So I decided to share some plugins I find helpful during day to day development work. I am going to assume some familiarity with the XrmToolbox for this post. If you have not used the tool, check out the link above. I think it will be well worth your time!
Fetch Xml Builder by Jonas Rapp (Github)
This has been an incredible time saver over the last few years during plugin and custom workflow activity development. This plugin provides a graphical interface for building and executing FetchXml against your CRM instance. In older versions of CRM, Stunnware provided a similar plugin for their suite of tools but that was deprecated as of CRM 2011.
Using the FetchXml builder, you can build complex FetchXml queries which typically cannot be built via Advanced find. Once you develop your query, you execute and view results in various formats such as XML, JSON, or an Entity Collection. The tree view editor is very useful for building out the FetchXml but you can also edit the FetchXml directly in a handy color coded editor.
One extremely helpful feature is the conversion of the FetchXml into other formats, such as a Query Expression.
If you are like me and struggle to remember the Query Builder syntax, this is a huge time saver. This overview only scratches the surface of the plugin capabilities, so I suggest installing the plugin and check out the extended feature set.
Portal Code Editor by MscrmTools (Github)
The Portal Code Editor plugin is only useful for those developers or administrators extending Dynamics Portals using JavaScript and CSS. I only recently started using this plugin and I wish I had discovered it sooner. It’s saved me a significant amount of time over a very short period. This plugin allows you to navigate Portal records that include either JavaScript, CSS, or both and provides a simple color coded text editor for making edits. For example, a Web Page allows you to extend capabilities using both JavaScript and CSS, while Web Form Steps can be extended using JavaScript. From this plugin, you can edit, save, and update your Portal scripts and CSS without navigating through the Portal records in CRM.
This has been helpful because I find the Portals record structure somewhat hard to navigate while Portal CRM entity forms are slow to load and use tons of browser memory which cause frequent restarts. When needing to make a simple script update, that can be frustrating. This is a plugin whose benefits shine with regular use.
Attribute Editor by Bram Colpaert (Github)
The Attribute Editor plugin provides the ability to bulk edit entity attributes through the import of an Excel spreadsheet. And the XrmToolbox includes several similar utilities for bulk edit, update, or import of attributes, but I’ve found this one to be very easy to use and it provided exactly the functionality I required.
To get started, the tool provides a template spreadsheet for a selected entity. Once downloaded, you can add, edit or delete attributes in Excel and then upload the spreadsheet for re-import. The actions taken on the spreadsheet will translate as actions to be taken on your entity attribute list.
This plugin could be a huge help during initial solution build out, such as migrating a legacy application to the Dynamics 365 platform: define your custom entities in CRM, export a template for your team to update, then import for your initial attribute creation. The Attribute Editor saved me a significant amount of time just recently where I had to move customizations from a Dynamics 365 v9 Online instance to a Dynamics 365 v8.2 On Premise instance. I was able to export the attribute template from the source v9 instance and pull them into my v8.2 instance as Create actions.
Plugin Auto Deployer by Innofactor (Github)
This plugin was introduced by Thomas at the CRMUG, developed by Alexey Shytikov as part of a suite of tools for Innofactor AB. This one is super simple: the plugin will watch an assembly file, and when recompiled, the plugin will redeploy the assembly to your current connected CRM instance.
This does not sound like much of a plugin since all you need to do in the Plugin Registration tool is select the Assembly and choose Update. But you have an additional click or two and you have updated the assembly. But when you are in the middle of building new or debugging existing plugins, the time saved by this one adds up quick: build and by the time you’ve switched back to CRM to test your changes, the assembly has been updated. I’ve been using it for a week or so and it’s definitely saved me some time, especially when I have just a line or two of code changes. I like this plugin as example of something really simple that makes a significant impact.
What about the rest?
The XrmToolbox now boasts over 100 plugins, so I am definitely planning on some follow up posts with additional useful plugins. In the meantime, please share any that you have found to be helpful as either a CRM administrator or a Dynamics Developer. And as always, comments, questions, and corrections are welcome!
Hello from Sweden!
Great article 🙂
One correction: the Plugin Auto Deployer is released as part of a package from Innofactor, but this one is created by my colleague Alexey Shytikov.
Hey Jonas
Thanks for the correction, I will update the post!
Jim