Microsoft made an odd design choice in CRM 2013 with their new sub-grid design. By default, when you add a new 1:M sub-grid to a form to display a custom entity you will get the following user experience…
The user clicks the + icon to add a new child record via the sub-grid:
CRM reveals a lookup control to allow the user to browse for an existing record:
Eek! Why did you do that CRM? I want to add a new record, why didn’t you pop the create form?
What’s happening here is CRM is taking us down the “Add Existing Record” path rather than down the “Add New Record” path. Think back to CRM 2011 and those 2 buttons you get when you give a sub-grid focus. Clicking the Add Existing Record used to provide this type of user experience:
Now, I was never a fan of the “Add Existing” button in CRM 2011, it was never that useful. So why Microsoft chose that behavior as the default for custom sub-grids in CRM 2013 is a mystery to me.
Let’s get back to CRM 2013 and carry on with the default user experience. So the user clicks the + button and the lookup appears. They don’t want to search for a record but the only thing they can do to move forward is click on the magnifying glass, this executes a search and reveals the lookup control’s search results:
Here we can pick a record from the search results or click “Look Up More Records” to pop the traditional CRM lookup window to broaden our search. I‘m still just trying to add a new child record so these options aren’t of interest. There is however a new + New button for me, so I’m going to press that. That gets me to where I want to be, popping the create form so I can create my new child record:
Saving that new record automatically closes the form and refreshes the parent form revealing my new child record in the sub-grid:
So, we do get there. But the user experience is not ideal. Fortunately, there is a fix to this. CRM chose to push us down the “Add Existing Record” path because this child entity has an “Add Existing Record” button defined in its ribbon XML. You can see this if you call up the associated view:
If we edit the ribbon XML and remove that button CRM will change its behavior and pop the create form as soon as the user clicks the + in the sub-grid. This is the behavior you will witness in most of the out-of-the-box sub-grids. See, here’s an Opportunity sub-grid on the Contact form:
Clicking the + button pops the Opportunity create form (in this case it is the Quick Create form):
If you look at the Opportunity Associated View you will note there is no “Add Existing Record” button:
Back to our custom sub-grid, I want to change the default behavior there. I launch Ribbon Workbench and call up the Ribbon definition for my Truck entity. I right-click on the “Add Existing” and select Hide Button:
Ribbon Workbench is showing me 2 buttons, I’m not sure why, I’m going to hide both. Then I Publish the change:
And that’s it, an easy fix.
Here’s the user experience now…
The user clicks the + button:
And up pops up the create form:
So, an unfortunate design choice from Microsoft but at least there’s a simple no-code fix.
Hope this helps someone.