USD – Window Navigation Rule to Prevent Navigation

This is a quick post about Unified Service Desk but hopefully it contains a tip which is quite useful ……

Within my user interface I have gone to great lengths to define window navigation rules for all of the various actions I require. I personally like to restrict the user navigation as much as possible to give a clean and simple interface so what-if the user clicks on a link to something I haven’t considered? Or worse still what if someone adds something new to the account form breaking my carefully thought out navigation?

For example: From account I might handle loading cases, opportunities (etc) but what-if the user clicks on currency or sales territory. Fields I’m not interested in!

Well out of the box, clicking currency (for example), USD would do this ….

I end up with the currency details being shown in place of my account. I would much prefer nothing happen rather than “incorrectly” loading details about the currency.

Below I have shown a list of the navigation rules I have defined for account. You can see I am allowing the users to open appointments, contacts, emails and even FieldOne work orders. Then I have created two navigation rules to cover anything else which I haven’t considered (or don’t want to consider). One rule stops any “in place” loading of entities and the other stops any “popup”.

Here you can see what the ANYTHING ELSE (Popup) rule looked like. FYI: The in place rule is essentially the same it just has a route type of “in place”.

  • The order is significant, I set this to be a high number so that all of my other “valid” window navigation rules are considered first.
  • Also, notice that I haven’t defined an entity but instead entered an “*” in the url field.
  • And finally my action is “none” as I want nothing to happen if this popup rule is triggered.

16 thoughts on “USD – Window Navigation Rule to Prevent Navigation

  1. Great post. I’ve used this before to do exactly that. To locking down the user from being able to navigate away from the form.

    One of the odd things I noticed was that USD doesn’t always respect the (*). I’ve had to clear the URL field in the Window Navigation Rules to enforce an all-encompassing ANYTHING ELSE rule.

    Liked by 1 person

  2. Great post, i was hoping this would work with dashboards but unfortunately nothing happens when i click the various links within it. I reckon there is something special about dashboards.

    Liked by 1 person

    • Thanks, interesting comment on dashboards. I will test this as soon as I can. I have seen tabs / sessions open from a dashboard view. But not actually coded myself so will try as soon as o get to a computer.


    • Hi Lucas

      Now I have access to a computer I have tested loading links from a dashboard and it worked for me.

      The way I did this was to navigate to a dashboard in an existing tab. (In which I knew the window navigation rules already worked.) When I load linked in the dashboard my rules worked fine.

      To navigate to the dashboard I had an action call that used the “Navigate” action, then my url looked like this …


      FYI : 6E00802F-8C73-DF11-986C-00155D2E3002 is the GUID of the dashboard I wanted to work with.


  3. Hello Neil,

    Thank you for your reply but I access my dashboard from the ‘main toolbar’. The dashboard button has an action called ‘Open Dashboard’. The action ‘hosted control’ points to ‘Dashboard’, and URL is similar to yours. When i click it it opens a new tab. At least i assume it behaves correctly.

    Similar to your post where it opens up in a weird way. It’s the various hyperlinks in the dashboard that do not correctly open. For example i have a customer service dashboard that displays various links from various entities, like incident, and my activity feed. How would USD know which hosted control to load it in?

    Please don’t tell me i’d have to manually create the window navigation rules.


  4. I have certain hyperlinks on case form out of which I want to open contact(Which is a hyperlink on case form) into a new tab, hence i want to restrict to overwrite the case form when any contact is open.

    Window navigation rules:

    From: case session
    entity: incident
    Routetype: inplace
    Target tab: contact session
    Showtab: contact session

    I am not able to open a contact into new tab from case session.

    Please try to help


    • Couple of things to try ….

      Your entity needs to reflect what is being loaded so that should be contact.

      You haven’t shown your action but that will need to be route window with a destination of tab.

      I think your route type of in place is correct but if the rule still doesn’t work try making it popup.


  5. Pingback: USD – Window Navigation Rules Theory | Microsoft Dynamics CRM and Unified Service Desk

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

  7. Hi Sir, we are facing two critical issues in our USD project:

    We have a CRM email activity form in the USD , on which there is a grid to add attachment (Which can PDF, word Doc & etc.), so the moment I click on the grid to add attachment, it overwrite my email activity form with the browse attachment window.

    If you go to vanilla CRM & click on grid to add attachment to email, it pop up a small attachment browse window for you, but this is happening in USD. I wish it could be.

    But still we at least require to open the email attachment window into the new tab, for which I am also facing issue to configure correct window nav. rule

    My Window nav. Config :

    From – email
    entity: activitymimeattachment
    route type : pop up, action : Route window
    Target tab: Attachment hosted control (CRM page hosted control)
    showtab: same as above

    Can u please try this at your USD instance to help……you are the only savior.


    • Hi

      Firstly, sorry for recent slow responses.

      I have been on holiday for a couple of weeks. Also my right hand has been crushed and I have badly broken it! Typing is a slow and painful business at the moment.😦

      I do get exactly the same issue as you.

      BUT I have an answer. I will document a solution and publish on my blog very soon. Please watch this space!!

      Solution will be to have a window navigation rule with from set to “Email”. Entity will be blank. Then set url to “/activities/attachment/edit.aspx”.

      Your idea of using route window will work. But in my solution I used “Show Outside”. Which was simpler and seems to work. (But has implications.)

      I will document (slowly) very soon.🙂


  8. Hi Sir,

    Firstly its sad to hear that your right hand has been crushed & broken, Hopefully it will get well soon. Thanks for sharing valuable inputs, as I mentioned in my comment that “you are the only savior”. You proved it to be true as the solution provided here is working perfectly as expected.

    You live up to every learner expectation on this blog.


    Liked by 1 person

  9. Hey ! Neil, I have a question for you. I read your posts on window navigation rules but couldn’t find a post on “how to use show outside to open a “url” on internet explorer browser. we can use Pop Up as UII action in Action call & then relate it with window navigation rule (show outside). Grateful to you, if you put efforts to blog on this as well.


    • Hi

      Thanks for reading my blog and for making this suggestion. I was going to point you in the direction of an existing post but realised you are right and I haven’t got one that specifically covers the example you have requested.

      I am actually on holiday this week but will look to create a post on this as soon as I can.

      Thanks for the suggestion.



Leave a Reply

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

You are commenting using your 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