One of the most requested features of Model-Driven Apps ‘back in the day’ was to edit th [More]
A very common request I've had for the Ribbon WorkbenchSmart Button solution is to be able to config [More]
If you've used or read about the Unified Client, there are some notable omissions from the command b [More]
If you've used the new Version 9 Unified Interface so far then you'll know that there is no advanced [More]
I recently blogged about the introduction of the script dependancies dialog in Version 9 where you can define the scripts that are needed by another. Although it does not solve the asynchronous loading issue for forms, it makes it simpler to add scripts to form since the dependencies will automatically be added for us.
Up until now, there has been a common pattern when adding script to Ribbon Commands where the dependancies were added with a function of 'isNaN'. It didn't have to be isNaN, but that is the most popular 'no operation' function call.
With the introduction of the script dependencies, you only need to include the reference to ClientCommands.js and the ClientCommon.js will be loaded automatically for you first before the command is called.
Awesome – we no longer need the isNaN approach that always felt like a 'hack'.
Happy 2017! This new year promises to be really exciting in the world of Dynamics 365. The spring release is going to be a big one for developers and I'm really looking forwards to it.
In the meantime, I've released a new beta version of the Ribbon Workbench that includes the following features:
Copy and Paste of Commands, Buttons & Enable/Disable Rules
Free text JSON Clipboard – allowing you to see what is on the clipboard and potentially copy/paste between instances and even make text changes before pasting.
Full support for Smart Buttons
You can grab the latest beta of the Ribbon Workbench that support smart buttons from https://www.develop1.net/public/rwb/ribbonworkbench.aspx#DOWNLOAD
Before I go into more detail about the JSON Clipboard, I wanted to tell you about Smart Buttons because I'm really excited about the possibilities that they may bring.
So what are Smart Buttons?
A typical uses of Smart Buttons are:
Install a Smart Button solution in Development Org (e.g. the Develop1 Smart Button Solution described later)
Install Ribbon Workbench in Development Org
Add Smart Button to Development Org using Ribbon Workbench
Deploy Smart Button solution to Pre-Production/Production – The Ribbon Workbench would not need to be installed
Deploy solution from Development (containing smart button configuration)
Create a standard way of performing certain actions from Ribbon Buttons based on common library code they have created.
Create a smart button manifest webresource and include that in their solution as well.
Instruct Developers to use Smart buttons in the Ribbon Workbench rather than adding ribbon customisations manually.
Third Party ISV's
Create an ISV solution that allows functionality to be invoked in custom entities (I will be publishing a smart button manifest for my network view solution so you can add visualise buttons to any entity).
Rather than publishing instructions on how to add buttons manually, create a smart button manifest that is picked up by the Ribbon Workbench
When installed on the ISV customer's organisation, the Ribbon Workbench scans the organisation for any smart button manifest files and picks up the ISV's custom buttons that are available for use.
I have built a simple Smart Button solution as a preview of this feature that provides the following:
Run Report – Allows you to select a report and create a short cut on any record form.
Run Workflow – Allows you to select a workflow and create a short cut to run it on a record form or sub-grid. You can also specify a call-back function to call when it is completed so that you can refresh the form or perform some other action. This is one of the most requested items on the Ribbon Workbench's uservoice site.
Run Dialog – This is similar to the Run Workflow button but starts a Dialog instead. Useful for creating your own custom 'Close Opportunity' forms.
You can download this preview Smart Button solution and give it a try from github: https://github.com/scottdurow/RibbonWorkbench/releases
Creating your own Smart Buttons!
In the next post I will describe the copy and paste JSON clipboard and how to use this to create a smart button manifest for your own solutions.
Since the release of the Ribbon Workbench 2016 I am in the process of updating the documentation to reflect the new user interface.
This video series on mastering the Ribbon Workbench 2016 will take you through from installing to performing advanced customisations.
Part 1 - Downloading & Installing
Part 2 - User Interface Overview
Part 3 - Hide Actions
Part 4 - Moving Managed Buttons to a Flyout Menu
Part 5 - Hiding buttons conditional to the form context
More to follow!...
I'm pleased to announce that in addition to the managed solution that you can install inside Dynamics CRM, the Ribbon Workbench 2016 is also available in the XrmToolbox (if you hadn't already noticed!).
When you open the XrmToolbox you will see that there is the Ribbon Workbench available for download in the plugin store.
Keep checking out the store because tools are being added regularly by some great plugin authors.
Thank you to all those who are helping to beta-test, I have been really encouraged by your comments and suggestions. The re-write of the Ribbon Workbench (to remove its dependency on Silverlight) and the XrmToolbox version has been on my 'to-do' list for much longer than I would have liked and so I'm particularly pleased with this release.
The new Ribbon Workbench 2016 solution installs alongside the older version – so if you have an upgraded org you might get them all sitting there on your command bar.
I'm keeping there on one of my organisations for posterity but you can safely uninstall older versions without losing any of your customisations.
Here is a version compatibility matrix for users of the older versions:
Ribbon Workbench 2013
Ribbon Workbench 2016
CRM 2011(Inc. UR12+)
CRM 2013(Inc. SP1+)
CRM 2015(Inc. Update 1+)
CRM 2016(Inc. Update 1+)
Drag and Drop Flyout Editing
Drag and Drop Command Editing
Can you help with Beta Testing?
You can download the beta version by signing up to beta test today!
Please report issues and bugs via UserVoice! Thank you!
When publishing your Ribbon Workbench solution you may receive the following error:
"SecLib::RetrievePrivilegeForUser failed - no roles are assigned to user."
The first step in diagnosing these issues is to try and export the same solution using the CRM solutions area and then immediately re-import to see what error is shown. This is exactly what the Ribbon Workbench does behind the scenes.
When doing this you might see:
Upon Downloading the Log File you'll see that the error occurs on a 'Process' and the same error message is shown as reported by the Ribbon Workbench. The User ID is also given which can be used in a URL similar to the following to find the user record causing the issue.
You will most likely discover that this user has been disabled or has no roles assigned – this could be that they have left the company or changed job role. You will need to find any Workflows or Dialogs that are assigned to them and re-assign to yourself before you can import the solution.
In most cases, you should not include Dialogs or Workflows in the solution that is loaded by the Ribbon Workbench since this only slows the download/upload publish process down. There is one exception to this – and that is Business Rules. Business Rules are associated with their particular entity and cannot be excluded from the solution. Oddly like Workflows and Dialogs they also are owned by a user but it is not shown in the user interface – nor is there an option to re-assign. There is a handy option on a user record that allows you to 'Reassign Records'
You would think that this would reassign any Business Rules but unfortunately you'll get the following error:
"Published workflow definition must have non null activation id."
The only way to reassign these Business Rules is to perform an advanced find for Processes of Type 'Definition' and Category 'Business Rule'
The results can then be reassigned to yourself using the 'Assign' button on the results grid.