It has been a while since my last blog post so the yearly eXtremeCRM EMEA week is always a good timing to publish some new content

So for all the people who attended the session I hosted on Tuesday 19/4/2016 in Warsaw Poland, you’ll find the sample solution with source code below as a download. For the slidedeck, you’ll have to reach out onto the eXtremeCRM portal (or drop me an email with your question(s)).

So as a recap a short overview of the integration flow, the Azure building blocks we’ve used and a small word on the Visual Studio projects.

Azure Webjob that reads the messages from the queues and creates a recod in Azure SQL table

Another Azure Webjob (with a delay build in) that reads the Azure SQL table, updates the record accorindgly and finally updates the CRM case and sends a message to all the websockets clients on the same case

eXtremeCRM 2015 in Madrid was the place to be in April 2015 if you had something to do with Microsoft Dynamics CRM or related. The anniversary edition brought us a lot of “Microsoft-presenter hosted” sessions, in a nutshell: always nice to get the information first hand from people who are part of or closely related to the Dynamics CRM product group.

Anyway, just after the convention I could attended a USD (Unified Service Desk) training hosted by a Microsoft trainer where we got some hands-on insights and experience on the USD product. By the way, USD evolved out of CCF and CCA. If you want to catch up on the version history of CCF and CCA, please have look at this blog article of Simon Hutson.

Besides that, Matt Barbour (http://blogs.msdn.com/b/mbarbour/) was nearby for some Q&A which gave us eager USD enthusiastics some clearer view on the what, how en when questions around USD.

But what’s new or different? You could say USD is the next iteration of this tooling breed and it pushes more and more into configuration and bit less into development, not to forget that the GUI has been aligned with the CRM 2013 styling.

Configuration, why?

Configuration is (sometimes) easier and can encapsulate programming, eg. power-user (or empower the user, where did we here that recently (Build2015, Ignite,…)?

Configuration can be easily personalized or targeted.

Configuration is stored in the CRM database via additional CRM entity data, this makes deploying and moving around a lot easier.

“Creating or developing agent applications by configuring the Unified Service Desk entities in CRM doesn’t require you to write code, which reduces the lead time to develop a highly customized agent application per your organization
requirements. This is the preferred way if you have to primarily deal with customer data available in CRM.”

And Development out of the picture, not really? Still there when you needed it, for example CTI integration, also quoted from the USD Developer Overview: “…the computer telephony integration (CTI) framework of UII enables organizations to build adapters to connect Unified Service Desk with their existing CTI infrastructure to support customer communication in agent desktops over various channels such as chat, email, or telephone…”

The last decade we’ve seen a large push in the software space from build towards buy, so you would suppose there are some of the shelf possibilities surrounding CTI integration? Yes there are some, but it’s limited. Another question surrounding this topic was already exposed and answered in the Dynamics Community, conclusion: there are some of the shelf possibilities but fairly unknown by the masses or scattered over the globe.

So, to round up, USD at this point in time remains a client application which retrieves its configuration from the USD enabled CRM organization and configuration is key. What’s missing? Well remember Satya Nadella’s press briefing from March 27 2014? USD isn’t what you would say to be completely mobile (or cross platform), but the configuration part of it is, so maybe in USD’s future we see some kind of shift towards a more mobile or let’s say web based version. I must agree there are some constraints and there are also some alternative scenarios which would not imply the use of USD as a client application or web version, but as the Dynamics brand grows and new applications arise, the simple UI integrations need to come out of the box or as an alternative the USD can be leveraged by contact center related customers to provide them the UI integrations and session management they need. I’m happy to say that with the latest release of USD version 1.2, one of the recent Dynamics acquisitions got its rightful place in USD as a hosted control, Parature Knowledge management.

Due to the fact we’ve encountered some page load issues with plain vanilla contact forms, I was woundering how to visualize the newly introduced Performance Markers from the Perfomance Center (aka Performance Analyzer by some) in Chrome.

Why’s that?

CTRL-SHIFT-Q or CTRL-SHFT-Q closes Chrome and there’s no direct way to change or alter this behavour (as far as my knowledge reaches today).

Well, after some debugging I found out that the backdoor combination ALT-SHIFT-Q works on both browsers!

Chrome version: 37.0.2062.124 m

IE version: 10.0.9200.17028 update 10.0.18

Room for improvement? The visualized load is spanned over the width of your browser screen, so screen based comparision is not really usable but you can copy the counters into Excel for example.

Hi,
one of my colleagues was developing new custom workflow activities. After updating the assembly, the new activity didn’t show up in the Workflow designer. I found similar blog posts handling the same issue:

Hi everyone,
ever had the question to change the default picture of an entity in CRM 2013, eg. Account?

We have some different options as we think about it, supported as unsupported, let’s have a closer look:Supported ways?
1) Plug-in
2) Batch jobUnsupported?
3) jQuery call in OnLoad
4) On-Premise only: altering the picture on disk would invoke a change for all entities

So knowing our options, let’s focus on a supported way like the plug-in. First attempt would be on altering the entityimage_url in the post-retrieve of account.
A colleague of mine did some attempts and got a first result in using an additional Update of the account record, so this works.

But hey, disk space is sometimes limited so are there any alternatives?
Yes, after debugging a bit the Retrieve message and the account JavaScript I came to the following conclusions:

1) Update the attribute entityimage_url works in post retrieve for a fraction of a second on the form
2) What happened? Seems there’s some built-in mechanism in the CRM proprietary JavaScript which overwrites the inserted URL:
if(!IsNull($v_0))if(!this.$42_1($v_0))$v_0.src=Mscrm.CrmUri.create(“/_imgs/ContactPhoto.png”).toString();else $v_0.src=Mscrm.CrmUri.create($v_0.src).toString();
3) So what if we create a dummy account, upload an image and retrieve the entityimage_url attribute value?
Well I found this value:/Image/download.aspx?Entity=account&Attribute=entityimage&Id=d4128a86-e0bb-e311-93fe-00155d017d04&Timestamp=635322045569777819
4) When we update the entityimage_url of the BusinessEntity in the Outputparameters of the plug-in, it seems to work!
Important is to add the Timestamp parameter, without it your inserted image gets overwritten again by the default CRM contact photo. Don’t ask me why

The content of the Timestamp parameter doesn’t seem to have direct influence:/Image/download.aspx?Entity=account&Attribute=entityimage&Id=d4128a86-e0bb-e311-93fe-00155d017d04&Timestamp=1
also works…