And even MORE Useful XrmToolbox plugins!
So, this is my third post on the topic and I guess it’s now officially a series.
In recent posts, Some Useful XrmToolbox Plugins and More Useful XrmToolbox Plugins, we discussed XrmToolbox plugins that help Dynamics 365 developers, administrators, and business analysts handle their daily workload. So here are a few more plugins to add to our list!
Ribbon Workbench by Scott Durow (Github and website)
This plugin has saved so much time over the years, it’s really hard to give Scott enough credit. The Ribbon Workbench plugin is an XrmToolbox version of the popular solution of the same name. This tool provides a visual editor for the Entity RibbonDiff Xml. With the plugin, you can override options on existing ribbon items or adding completely custom ribbon items of your own for the Entity Homepage, Subgrid, and Forms. This does not sound like a big deal, but the RibbonDiff Xml complexity and the sheer number of options makes manual edits almost impossible.
This visual interface can be a bit overwhelming at first, but this shows the RibbonDiff Xml complexity and how complicated it can be to edit. The product website, documentation, and support is really solid since this tool is widely used by the community. Check out Scott’s website for both documents and a very active knowledge base/forum. Once you have a handle on using this tool, I guarantee you will add it to your favorites.
Metadata Document Generator by MscrmTools (Github)
This plugin is included as part of the baseline XrmToolbox plugin set and is an excellent tool for generating documentation on your CRM solution. The Metadata Document Generator plugin allows you to select Entities and generate a Word or Excel document summary of the Entity and Attribute metadata. This plugin is especially helpful during development to provide quick overviews of the data model current state. During project closeout and hand off, documentation generated by the plugin can easily serve as artifacts due to the customer.
The plugin is relatively easy to use and offers several options outside just filtering the target Entities. In addition to the Entities selection, you can further filter by Publisher Prefix. Once you have your list of Entities, you can then customize the Attribute metadata output, such as including or excluding Audit information, Requirement level, or Advanced Find flags.
One really cool feature for your team are the options for attribute selection:
These options are particularly helpful when performing routine cleanup on your CRM instance. If you inherit a CRM instance, or you are on a CRM project that evolves over time, you might see some unused Entity Attributes hanging around. Using the Metadata Document Generator plugin Attribute Selection options to report on all Attributes on selected Entities that are not referenced by an Entity form. This is a very quick method for a first and broad sweep of your system and begin to clear up clutter. One relatively simple option that can save your team a lot of time!
Bulk Workflow Execution by Andy Popkin (Github)
The Bulk Workflow Execution plugin is popular for both developers and system administrators. Running workflows against several records can be fairly quick for a small number of records: pull up Advanced Find, select all, Run Workflow! Unfortunately, you are limited to running the workflow on 250 records at a time with Advanced Find. What if you need to run against 5000 records? This is the plugin for you.
The Bulk Workflow Execution plugin allows you to execute a workflow against a batch of records defined by a FetchXml query. You can start with an existing view or provide your own FetchXml query. Once you define your query, you can choose the batch size and execution delay for your run to avoid overwhelming both the client machine and your server instance.
During development, we often deploy iterative releases that can include significant data updates to your environments and workflows are a handy way of making those bulk updates. For example, you add a new field to an Entity that is updated using a new workflow but you need to back fill a few thousand existing records. The Bulk Workflow Execution plugin becomes the clear choice for this situation, especially if this process runs against multiple downstream environments. This saves time for developers and administrators by removing your manual steps and making the process repeatable, which in turn helps reduce the chance for error.
Plugin Trace Viewer by Jonas Rapp (Github and website)
And yet another plugin by Jonas Rapp! This tool is definitely geared towards developers and system administrators as it makes it easy to review CRM Plugin Trace logs which are often used in troubleshooting issues with both plugins and custom workflow activities.
The plugin trace logs are available via the CRM user interface in the Settings area, so why use this plugin? I use this plugin a lot because of the ease in which you can quickly narrow down your filters to messages of interest, browse through records, and view the data for each as you change selection. I can open up this plugin and find what I need in the trace logs much quicker than I can using the CRM user interface.
Another really cool feature is the quick summary of the current selection in the grid. Notice the summary below the grid: this summarizes records related to the currently selected Cell. Six records with Operation type Workflow Activity, total duration of 3.5s, across two plugins and two entities. In the grid you can see the matching cells highlighted in the column. That’s a really helpful feature when trying to nail down an issue quickly. This can also be a great tool for developers looking to optimize some performance across their plugins by analyzing their trace log entries.
What about the rest?
Now my THIRD post on useful XrmToolbox plugins and I am sure we still have more really cool plugins to discuss.
What are some of your favorites and why? Do you have some favorites because they are time savers? Do they offer functionality not provided in the platform? Or are they just a really cool bit of coding? Looking forward to comments, suggestions, and additions!