USD – Interactive Service Hub (Entity Navigation)

A few days ago I wrote a post about displaying the Interactive Service Hub dashboards in Unified Service Desk (USD) for Microsoft Dynamics CRM 2016, in this post I will expand on that logic to look at how you can create sessions and open tabs using the Interactive Service Hub forms.

If you haven’t yet displayed your tier 1, 2 or custom dashboard in USD please refer to my earlier post here.

If you are familiar with hosted controls and navigation rules for standard CRM forms you will find that, not unsurprisingly, the approach required for Interactive Service Hub entities is pretty similar. With a few minor differences that I will explain along that way.

Having displayed the dashboard opening cases or other entities will all operate from the one tab, as that is the default behaviour with the Interactive Service Hub. But what if you want to open a session when an entity is selected from the Interactive Service Hub? Below I give an example on how to achieve this;

  1. Create a hosted control.
  2. Create a window navigation rule to start a session.

Note:
This example is designed to work with Unified Service Desk 2.1 (or later) and CRM 2016 Update 1 or later. If you are working with earlier versions they will need to be upgraded before this approach will work.

Step One – Create a hosted control.

In this example I will show how to open a casesession when an account is selected from interactive service hub dashboard. First of all, you will need a hosted control.

Field Name
Name ISH Case
Display Name Case([[ISH Case.title]])
USD Component Type Interactive Service Hub Page
Application is Global Not selected
Display Group MainPanel
Application is Dynamic Yes
User Can Close Not selected

As I to close the case I would rather the user close the session. So I didn’t want an “x” on my cased tab.

Step Two – Create a window navigation rule to start a session.

Now you have a hosted control to hold the case entity you will need a window navigation rule to create a session.

The most important difference here is the route type! With “normal” CRM forms we always open sessions from popup routes. But if you think about how the interactive service hub behaves, outside of USD, you may appreciate that this won’t work. As all of the pages in the Interactive Service Hub open in the current window no popups are used, meaning all pages use the “in place” route.

Field Name
Name Case from ISH Dashboard

As mentioned I had opened the dashboard in a hosted control, the approach to doing this was described in an earlier post

Order 1

Tip: 1 worked fine for me! You might need a different order to fit in with your existing rules.

From ISH Dashboard
Entity Incident
Route Type In Place

Note: You will find all route types for ISH will be in place!

Destination Tab
Action Create Session
Target Tab ISH Case
Show Tab ISH Case
Hide Navigation Bar Yes

Opening tabs in the session

Now you have a session opened you will wish to open other entities in tabs for that session. For each entity you wish to open in a tab you will need to follow the steps below;

  1. Create a hosted control.
  2. Create a window navigation rule to open a tab.

Tip: Here I am giving an explanation of how to open an account from a session. You would need to add addition controls / navigation rules for all the entities you’d like to work with. As the number of entities used in the Interactive Service Hub is limited that shouldn’t be that hard!

Step One – Create a hosted control.

Before you can show any entity in a tab you will need a hosted control to contain it. In this example I will show how to open a contact in a tab. For this my hosted control looked like this;

Field Name
Name ISH Contact
Display Name Contact([[ISH Contact.lastname]])

“Interestingly” [[ISH Conact.fullname]] didn’t’ work for me here as that wasn’t’ available in my data parameters!

USD Component Type Interactive Service Hub Page
Application is global Not selected
Display Group MainPanel
Application is Dynamic Yes
User Can Close Selected

Selected as I wanted to allow users to close this tab.

Step Two – Create a window navigation rule to open a tab.

As you might expect you will next need a window navigation rule to show the contact in a tab. Mine looked like this;

Field Name
Name ISH Contact from ISH Case
Order 1
From ISH Case

Depending on your application you may be able to leave the from field blank! I didn’t as I needed to avoid clashing with multiple other navigation rules I already had.

NOTE: I had a rule to open a contact entity in a CRM Page hosted control already. Without this “from” setting that rule would have been triggered and I would have loaded an Interactive Service Hub Page in a CRM Page hosted control. Which can give some unpredictable results!

Entity contact
Route Type In Place

Note: You will find all route types for the interactive service hub will be in place!

Destination Tab
Action Route Window
Target Tab ISH Contact
Show Tab ISH Contact
Hide Navigation Bar Yes

Below you can see how my screen looked. Notice I have three tabs and one session. You can see the tab my interactive dashboard was loaded in, my case tab and then the contact tab which has been opened from the case.

Tip: Once you have your customizations working this far you will wish to add additional entities as required. You may also wish to create some navigation toolbars. With traditional tabs I have often created a toolbar with browser style back and forward buttons. No forward capability exists on Interactive Service Hub pages! And the Go back action has been tailored to mirror the back arrow on an interactive service hub page. (Which is slightly different to pressing the back button in the browser.) But as that arrow is always on the page you may not need a back button in a toolbar anyway!

Hopefully this post, combined with my earlier post in the interactive service hub dashboards will have given you enough information to attempt building your own USD interface making use of the Interactive Service Hub. J

7 thoughts on “USD – Interactive Service Hub (Entity Navigation)

  1. Pingback: USD – Interactive Service Hub Page, NOT! | Microsoft Dynamics CRM and Unified Service Desk

  2. Pingback: USD – The Book | Microsoft Dynamics CRM and Unified Service Desk

  3. Pingback: USD – The Book - Microsoft Dynamics CRM Community

  4. Hi Neil,

    First off, loving your blog – it has saved me many times and seems to be the best USD development resource out there! So thanks.

    I have completed the steps above (and triple checked) and the behavior I am seeing is: the case is simply displaying in the same tab as the dashboard.

    Not sure if this helps. when I click on a case from the ISH dashboard, there is one action call
    Event(CRM Global Manager) | CRMPageLoaded ||||frame=””, url=about:blank” | Success.

    I have tried your tutorial in two separate environments (one was a New USD Env, and the other the ISH package) and experience the same behavior in both,
    Any ideas?
    Thanks,
    Lucas

    Like

    • Hi Lucas

      Thanks for the message and reading my blog.

      If the case is loading in the same page as the dashboard then I would check two things.

      Firstly double check that the component type on the hosted control for case is set to “Interactive Service Hub Page”.

      But the most likely reason will be that your window navigation rule isn’t being triggered. I assume you aren’t seeing the navigation rule in the debugger actions? Try (as a test) removing the from part of the navigation rule.

      The event you have shown for CRMPageLoaded, this looks a little strange. It might be a red herring! If that was related to your case loading the event would come from the hosted control you’ve used for your dashboard. Not Global Manager.

      Something to check first is that ISH is loading correctly in IE outside of USD. I have seen problems when the load of ISH hub hangs.

      If you have loaded the ISH package, doesn’t that already include a dashboard and the ability to open case sessions. Is that working?

      Fingers crossed these pointers help, it is a little difficult for me to diagnose like this!

      Neil.

      Like

      • Thanks Neil. Have gone through your tips
        – Host Control for Case is an ISH type = check

        – Removing the ‘from’ in the navigation rule had no impact. Likely that it is not being triggered as you mention.

        – Re CRMPageLoaded ; when I load other pages that work ok (e.g. my search Cases CRMPage) the CRMPageLoaded is also sourced from CRM Global Manager, only the PageLoadComplete is sourced from the Hosted Control for the page.

        – The ISH Dashboard loads ok within IE.

        – I tried loading the ISH package on one of our other CRM (dev) instances and the same behaviour is observed (doesn’t create sessions for a case, just loads the case page inside of the same tab as the dash)

        I see the following message in the debug output “24:45.13 Microsoft.Crm.UnifiedServiceDesk.Dynamics Error: 2 : 24:45.13 FromApp=Dashboard Error:-ISHNavigationHandlerNotAttached”

        Looks like it further solidifies your idea that the navigation rule is not being triggered. Understand that this is difficult to diagnose in these circumstances – have appreciated your tips, have learnt a lot more along the way. I was planning on using a combo of the ISH dash with CRMPages (e.g. as shown in your other blog), but I will likely just create a crmPage Dashboard, as the issue seems to be specific to the ISH hosted type.

        Thanks =)
        Lucas

        Like

      • Hi Lucas

        Sorry you are still getting problems. I retested using ISH within my USD environment this morning. For me it all worked and I didn’t see the error you are getting.

        One thing to try might be to look into the sample package for interactive service hub that comes with USD. Looking at how it hosted controls, actions and navigation rules are defined might help your understanding further.

        I re-read my blog post to also check that I hadn’t missed anything. The only thing I saw was I don’t mention the hosting type on the hosted controls. This must be IE Process. Do not use WPF Internal.

        When I first used ISH I saw event popups that cased me some issues. The post below from Microsoft’s blog explains how to fix that issue.
        https://blogs.msdn.microsoft.com/usd/2016/01/26/ie-process-mode-gives-httpevent-popup/

        What are the versions of your USD solutions? Under solutions in CRM what are the versions for “DynamicsUnifiedServiceDesk” and “UiiForMicrosoftDynamicsCRM2011”. Just a guess, if I’m not seeing an error and you are, it is worth checking we are on the same versions.

        Thanks

        Neil.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s