I recently had a requirement in Unified Service Desk (USD) for Microsoft Dynamics CRM 2016 to implement advanced find capabilities into my interface.
Advanced find is a useful tool but in terms of USD it presented me a problem! My USD interface was pre-configured to open sessions for common entities like contact, account and lead. If the user selected any of these from the advanced find results I would want a session to open and my agent scripts (etc) to kick in as normal. BUT, with advanced find I can’t control what entities the user may view. It may even be that someone adds a custom entity that I am completely unaware of. So how could I cope with this diversity in USD?
In this post I will explain how I achieved this ….
- Create a hosted control to hold the advanced find.
- Create an action
- Create a toolbar button
- Create some window navigation rules
Step One – Create a hosted control
I wanted a separate window to pop-up for my advanced find. So I created the hosted control shown below.
Field | Details |
Name and display name | I called my hosted control “Advanced Find” |
USD component type | CRM Page |
Allow Multiple Pages | No |
Hosting type | IE Process (Always use IE process!) |
Application is Global | Selected as the tab is global |
Display Group | I opted for FloatingPanel, you could also try MainPanel or RightPanel. |
Step Two – Create an Action
I would need an action to load the advanced find dialog in my hosted control.
Field | Details |
Name | I called my action “Advanced Find – Find” |
Hosted Control | “Advanced Find”, the one we created in step one. |
Action | Find |
Data | “advfind”, this will load my advanced find dialog |
Step Three – Create a toolbar button
I already had a main toolbar that contained options to search by account, lead etc. So I added a toolbar button to that. My button looked like this;
Below you can see what my button looked like. Notice that the show tab has been set to “Advanced Find” and that I have added the action created in step two.
I uploaded a search icon as a web resource and used that in my toolbar. This is optional, you could just leave the image line blank.
Step Four – Window Navigation rules.
This bit confused some people! You may need to tweak these rules to fit into your existing navigation rule structure.
The behaviour I decided I wanted was that is a user selected an account, contact or lead I would open a session as normal. But if they selected anything else from the advanced find tab the entity would load outside of USD. Allowing them to select anything but also meaning I kept control of my key entities.
The sequence was important. I need to check for the three entities I was interested in first. Then and only then fire a default rule that would load anything else in a tab outside of USD.
My rules are shown below;
My account, contact and lead rules all followed the same structure.
Field | Details |
Name | “Contact”, “Account” or “Lead” from Advanced Find |
Order | 1, this is important! I needed these rules to be evaluated first. So they all had the order of 1. |
From | Advanced Find, as this is the logic I want to trigger from the advanced find dialog in my advanced find hosted control. |
Entity | “Contact”, “Account” or “Lead” |
Route Type | Popup |
Destination | Tab |
Action | Create Session |
Target Tab / Show Tab | Both set to hosted control for either Account, Contact or Lead. |
Hide Navigation Bar | Yes |
Next I needed a rule to open anything else outside of USD.
Field | Details |
Name | ANYTHING ELSE from Advanced Find |
Order | 2, this is important! I needed this rule to be evaluated AFTER the first rule. |
From | Advanced Find, as this is the logic I want to trigger from the advanced find dialog in my advanced find hosted control. |
Entity | Blank! |
url | *, this means any entity / link. |
Route Type | Popup |
Destination | Tab |
Action | Show Outside |
Target Tab / Show Tab | Both need to be blank |
Hide Navigation Bar | No |
Now when I select Advanced Find I get a pop-up containing the advanced find dialog. This works as it would normally in CRM. But when I select the results tab, if I open an account, contact or lead they open in USD. But if I select anything else a browser loads outside of USD containing my results.
This turned out to be a quick and useful addition to my USD interface.
J
Hi,
In my project, we have a CTI Call and I have to display screen with multiple contacts matching with the phone number that is passed from CTI. I was successful in displaying a contact using window navigation rule single match, but unable with multiple match. In case of multiple match I wanted to show a CRM page with list of matched contacts, for this what kind of Hosted Control and Action should I use.. Please help me..
LikeLike
I must admit I haven’t found a solution to this that I am 100% happy with! I have seen people develop custom hosted controls to handle the multiple search results. This will work as you can trigger them from the navigation rule you describe. But so far I haven’t found a totally elegant approach using only configuration. But I promise I will blog about it as soon as I find a good approach.
LikeLike
Pingback: USD – The Book | Microsoft Dynamics CRM and Unified Service Desk
Hi Neil,
First of all, let me say how much I appreciate your website. I am very new to configuring the USD and your website is an absolute life saver!
Second, I do have a question: is it possible to configure the USD in a way so that when the user opens Advanced Find in the USD, cases is the default entity?
I hope I make sense.
Thanks in advance!
LikeLiked by 1 person
Thanks and great question.
In my example I use a find action to load advanced find. Please this with a navigate action.
Then in the data field enter ….
url=/main.aspx?extraqs=%3fDataProvider%3dMicrosoft.Crm.Application.Platform.Grid.GridDataProviderQueryBuilder%26EntityCode%3d112%26QueryId%3d%257b00000000-0000-0000-00AA-000010001032%257d%26UIProvider%3dMicrosoft.Crm.Application.Controls.GridUIProvider%26ViewType%3d1039&pagetype=advancedfind#600581137
This will give you the active cases view in advanced find!
Hope this helps.
Neil
LikeLike