.Net 4.5 not supported in CRM 2013 Custom Workflow Activities

With the latest SDK Update (6.0.4) Microsoft quietly removed support for .Net 4.5 in Custom Workflow Activities.

This is a rather unexpected move as it is still supported for CRM 2011 CWA’s.
And here is where the problems start: If you have .Net 4.5 Custom Workflow Activities deployed in a CRM 2011 environment – which is supported – and then run an upgrade to CRM 2013, suddenly they are unsupported.
As we do currently not have more information on the specific issues regarding .Net 4.5, we cannot say what that means in detail and where the problems are.

So to be fully supported (whatever that means) we have to redeploy these Custom Workflow Activities using .Net 4.

Source: http://msdn.microsoft.com/en-us/library/dn481567(v=crm.6).aspx

Posted in Dynamics CRM Tagged with: , , ,

Outlook Client: Data Usage and WCF-Compression

About 10 months ago I had a customer who was, by that time, going productive with CRM 2011 with about 1000 users – all of them using only the Outlook client.

They had most of their IT outsourced to a third-party provider. Because of that, they had a limited data plan for all of their servers hosted by this provider for all the data going in- or outside the datacenter.

Then, about two days after turning the switch to “On”, the customer called us, stating that CRM is going to eat up their entire data plan. Data Measurements of their provider have shown that the data usage of CRM is so heavy, that CRM alone would need over 80% of their data plan.

So, after a little research, I’ve found this great blog post from the Dynamics CRM in the Field (you should team: http://blogs.msdn.com/b/crminthefield/archive/2011/12/29/enable-wcf-compression-to-improve-crm-2011-network-performance.aspx

So, in short: There is a neat little setting in the applicationHost-Config of the IIS which solves all of you data plan problems regarding the WCF-Service (which the Outlook-Client uses a lot).

1. Open C:\Windows\System32\Inetsrv\Config\applicationHost.config

2. Search for the section <dynamicTypes>

3. Below the line <add mimeType=”application/x-javascript” enabled=”true” /> add the following <add mimeType=”application/soap+xml; charset=utf-8″ enabled=”true” />

4. Save the file and do an iisreset

As the CRM in the field team states on their blog – and I can confirm that they do not promise too much – this will decrease Data Usage of the WCF-Service by at least 30-40% or, if you have enabled https, by 80-90%.
After we enabled this setting on the server, we never heard again any complaints about data usage from the customer and their provider.

Since then, I’ve never gone productive with a customer without this setting in place. Specifically the savings with SSL set up is a reason which I can use all the time to convince the IT of new customers to use https and not to stay on http.

Posted in Dynamics CRM Tagged with: , , , , , ,

CRM 2013 Auto-Save cannot completely be deactivated

One great new feature of Microsoft Dynamics CRM is the capability to Auto-Save the data entered on a form.

Once activated (it is by default) the forms will automatically be saved every 30 seconds if at least one field is dirty.

However, this feature does have one downside: Most of the customers are not ready for this kind of innovation, yet.

So, mostly, we have to deactivate this feature for our customer. This can be done in the System Settings area (Settings -> Administration -> System Settings) by setting “Enable auto save on all forms” to “No”.

Sounds great, yeah? Yes it does, but that does not deactivate Auto-Save entirely.
In fact, the periodic Auto-Save does not occur anymore and the Save-Button in the command bar is now visible. But if you change data on the form and then navigating away from it (for example by using the “Recently Viewed” menu and clicking there on a record) the data will be saved without informing the user.
Personally, I’ve expected to get a message that there is unsaved data on the form as Auto-Save is deactivated.

So, the question is: Can we deactivate Auto-Save completely?
The answer is: Yes, we can. By using a simple little Javascript.

The script below below blocks all Auto-Save Events. That includes the periodic saves (SaveMode = 70) and the ones which occur if the users tries to navigate away from the form (SaveMode = 2).
If you are working with Microsoft CRM from the CRM 4 and CRM 2011 releases you know that the Save Mode 2 means the “Save and Close”-Event. As CRM 2013 is not working with Popups anymore the “Save and Close”-Button is gone, too, and “Save and Close” is now represented by navigating away from the form.

function preventAutoSave(econtext) {
    var eventArgs = econtext.getEventArgs();

    if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) {
        eventArgs.preventDefault();
    }
}

Just attach this script to the OnSave-Event of the form and let the magic happen 🙂

Posted in Dynamics CRM Tagged with: , ,