Bing Maps

I was recently asked a question about how to show Bing Maps in Unified Service Desk(USD) for Microsoft Dynamics CRM. As always, I love answering questions! (Sorry this answer took a little while to create, I’ve been very busy lately.)

I have previously shown how to create a toolbar button to display Google maps. Should any crazy person feel the need to use any mapping tool other than Microsoft Bing! That might be worth looking at.

https://neilparkhurst.com/2015/11/27/usd-google-maps-using-context/

What is different about using Bing Maps is that they are already integrated with CRM. This does give them an immediate advantage over other mapping options! Once you have obtained a developer key and entered that in system settings your Bing Maps already show (out of the box) directly on CRM forms. Great. But when you click on a map in USD to load it full screen, depending on your window navigation rules it will either fail to load or will load in the current tab. Below you can see that my Bing Maps were loading but replaced the contact I had displayed. (With my navigation bar applicable to contacts still displayed.)

So not ideal, so what if you’d rather they loaded in a separate tab. Or maybe even a floating panel on a separate screen!

First of all, you’ll need a hosted control to load Bing Maps into, mine looked like the example below.USD component type is standard web application and then opted for MainPanel for my display group.

Tip:
If you’d like the maps to show on a separate screen try experimenting with the display group set to “FloatingPanel”.

Also notice that I set the display name of the hosted control to “Bing Maps([[$Context.adddress1_postalcode]+])”. This gave my tab a name that included the post code of the account or contact being viewed.

Next I needed a windows navigation rule, this will tell USD when / how to load my map into the hosted control we just created.

Things to notice include;

  • From. I left this blank as this rule applies to any entity that displays a Bing Map. Basically this means this same rule works for accounts and contacts.
  • url. www.bing.com/maps, this url is loaded when you click on any Bing Map.
  • Route Type, Popup
  • Action, Route Window
  • Destination, tab
  • Target Tab and Show Tab, both set to the hosted control we just created. “Bing Maps”

Now everything is in place you can see that my Bing Maps are loading in a separate tab. Much better!

 

Hopefully you will have found this post useful and will be adding a Bing Maps tab to your USD interface soon. J

4 thoughts on “Bing Maps

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

  2. Hi Sir,

    I have a few questions for you (Hope you take a pain to read this):

    Part : 1

    1.) Are replacement parameters also execute correctly in USD Window navigation rule as it does in case of USD Action call ?

    2.) http://10.216.9.165:8090/systemcommon/jsp/IVRLogin.jsp?userId=Tecturamscrm@ext.religare.in
    I created a Action Call with UII Action as Pop up & i put the above URL in data field.

    3.) Then I created a window navigation rule (Show Outside) as I wish to open the above URL in IE Browser (as above URL’s Webpage not fit in the USD Framework). I put the above URL in URL field in window navigation rule.

    When I click on the USD button to which I relate, above created action call, it opens the same URL in the IE Browser as required.

    ————————————————————————————————————————————
    Part : 2

    Now to make the above URL Dynamic, I use the replacement parameter : 10.216.9.165:8090/systemcommon/jsp/IVRLogin.jsp?userId=[[$User.internalemailaddress]+]

    When i check the same in Debugger then it shows me that my Action call is replacing the above parameters correctly but this time my window navigation rule is not getting trigger. (i.e. its not even seen in the list of events trigger in My USD Debugger)

    In the Window navigation rule “URL” field, I put the same URL i.e. 10.216.9.165:8090/systemcommon/jsp/IVRLogin.jsp?userId=[[$User.internalemailaddress]+] as i did in action call.
    —————————————————————————————————————————————Here is my Window navigation rule :
    ————————————————————————————————————————————–

    From : Name of my Standard Web Application Type of Hosted control
    order:4
    Route Type: Pop Up
    URL=10.216.9.165:8090/systemcommon/jsp/IVRLogin.jsp?userId=[[$User.internalemailaddress]+]
    Action: Show Oustide
    Target Tab: Same as above
    Show Tab: Same as above

    What I conclude from this experiment that Window navigation rule don’t execute replacement parameters vis a vis USD Action calls. Isn’t it ?

    Any solution of my problem ? Looking for your expertise.

    Thanks 🙂

    Like

    • 1.) Are replacement parameters also execute correctly in USD Window navigation rule as it does in case of USD Action call ?

      I do believe replacement parameters work with navigation rules and you can use them in conditions. BUT …. I have observed something which you need to consider.

      Say the navigation rule is loading a case. When the navigation rule fires you won’t yet have the replacement parameters for the case being loaded. I think this is a timing issue which makes sense if you think about it. The navigation rules fires first, as it decides what action is to be done. Only after that action has run do the parameters become available.

      This does mean you need to very carefully consider the timing of events when trying to use replacement parameters with navigation rules.

      Like

    • From : Name of my Standard Web Application Type of Hosted control
      order:4
      Route Type: Pop Up
      URL=10.216.9.165:8090/systemcommon/jsp/IVRLogin.jsp?userId=[[$User.internalemailaddress]+]
      Action: Show Oustide
      Target Tab: Same as above
      Show Tab: Same as above

      What I conclude from this experiment that Window navigation rule don’t execute replacement parameters vis a vis USD Action calls. Isn’t it ?

      I haven’t tried using replacement parameters in the url on a navigation rule. So I can’t comment on that. However I think a better approach will be to enter a relative url. You don’t need to enter the entire url in the url field in the navigation rule.

      Try just something like “jsp/IVRLogin.jsp” …. you might find that works perfectly.

      I have often used this approach to control how a particular web resource is loaded. Regardless of what parameters are being included in the url.

      I hope this helps.

      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