This article describes a new security feature now available in the Resco Mobile solution that allows certificates validation. This is an important consideration when you are dealing with mobile devices.
During the last months, we have been working with the Resco.net solution integrated with Dynamics 365 and it has been a great experience. It is definitely a very competitive alternative if you are considering a mobile solution for your business and CRM implementation.
This new Certificate Pinning validation feature has been introduced in the version 10.2.1.
Basically it allows the mobile client to confirm if the service that is connecting to (e.g. Dynamics 365) is the expected one.
Normally, once you configure the Resco App with the corresponding Dynamics 365 URL, you would expect that everything would be ok and the connection would be safe based on the TLS protocol:
However, in a hostile environment where the network may not be reliable, a malicious party could take advantage of it and intercept this connection, providing a fraudulent certificate:
To avoid this risk, Resco has implemented a certificate pinning validation based on their current solution:
Within Woodford, an administrator will now be able to configure the expected certificate(s) thumbprints:
The Certificate Thumbprint can be found easily using, for example, Internet Explorer:
In this example, the Mobile Resco App would have downloaded the corresponding Woodford Project with the Thumbprint “62 7C 0A 58 A2 64 76 77 1D 55 74 10 35 56 F8 79 54 33 F6 05”. When the app connects to the service, it compares that value with the one in the actual certificate. If they were the same, it would carry on; otherwise, the user would get the following error:
You can find more details about the Certificate Pinning technique in the Open Web Application Security Project (OWASP).
This article shows a scenario where the Dynamics 365 app button will be inactive, like grayed out, in the Outlook menu. This may be caused just because of the View Reading Pane configuration in your Outlook client.
However, you may still see the button active when you create a new email or an appointment:
In Outlook, your View Reading Pane must be Right or Bottom for the button being active:
Hope this helps.
This post is based on the following configuration:
- Dynamics 365 Online Version: 184.108.40.2061
- Outlook 2013
Please notice there may be other reasons why this button could be inactive, see the following forum discussion.
This article describes how to simulate a long operation in Dynamics 365 (CRM) using a simple custom plugin that introduces a delay using the Thread.Sleep function.
Background: recently we have been investigating an issue regarding some timeouts happening in a third party application which connects to our Dynamics 365 service. At the moment, it is difficult to tell if those timeouts are due to some slow connections to Dynamics or other reasons. In order to help us with this investigation, we are going to set the Timeout property of the OrganizationServiceProxy in the client application, which by default is 2 minutes.
Before applying this change, we also want to test it and simulate some long queries that would last longer than the client timeout limit set for the OrganizationServiceProxy. Here is where we have created this simple plugin “DelayOperation” that is going to introduce a delay for a certain number of seconds.
For testing purpose, I have prepared a simple test that creates a Task record. See below the corresponding code:
Then we have registered our “DelayOperation” plugin in the create message of the Task entity, see below this plugin registration step:
Notice we pass the number of milliseconds to be used by the Thread.Sleep function as an unsafe plugin parameter. In our example, the client would wait for 10 seconds and the plugin would delay the operation for 12 seconds, causing the client to timeout.
Finally, our “DelayOperation” plugin code is:
You can download all this code from the following Github project:
I hope you find it useful!
Some great news this week, the new Dynamics 365 (CRM) version 9.0 is already available for trial.
The build version I’ve got with my UK trial ([orgname].crm11.dynamics.com) is 220.127.116.11.03.
You can now enjoy some of the new features that I show below:
- New design:
- New Unified Interface Apps
- Flow Integration
- Multi Select Option Set attribute
- New Solutions Components, including Virtual Entities:
You can find more information about the new features in these Microsoft articles:
Changes for developers:
Enjoy your trial!
Time flies and suddenly 2018 will be there, when the next Summit EMEA will take place in Dublin from 24th to the 26th of April.
During the Summit EMEA, multiple users groups will participate in the conference and offer several events including presentations, essential peer-to-peer knowledge exchanges, product insight forums, and networking opportunities.
My main focus will be on the D365UG|CRMUG user group . This week we have had our first committee meeting to discuss the agenda structure and how the sessions are going to be organised, very exciting… 🙂
If you would like to be a speaker, watch this space because there will be a call for papers very soon.
I’ll keep on posting any news.
During the last few months I have been doing some work around Dynamics 365 (CRM) and dotmailer. This article focuses on the integration between both platforms and how the new Organization Insights has proven to be very useful to understand the behavior of the Dynamics API and how it is consumed by other applications.
Looking at the Organization Insights dashboard, we noticed there was a big number of API calls happening every day between 08:00 and 09:00 in the morning.
Looking at the Most Used API chart, the “Crm Field” entity was the most utilised. This entity is part of the dotmailer solution. Basically it allows you to define what Dynamics 365 (CRM) attributes could be used by a dotmailer communication for a particular Email Account.
After several conversations with the dotmailer and Microsoft engineers, we were able to confirm those API calls were coming from this particular integration. The figures should respond to this formula:
Total number of API calls from DotMailer to Dynamics 365 to synchronise CrmMetadata = [Number of Email Accounts] * [Number of CRM Fields per Email Account] * 6
The number 6 is the number of calls per Crm Field and Email Account:
- 2 API calls are made to connect to Dynamics
- 2 API calls are made to retrieve time stamps of when the data was last sync’d
- 1 API call to get all the CRMMetadata
- 1 API call to save changes to Dynamics
Looking at the dotmailer synchronisation settings, you can specify when this process starts and how frequently runs for a particular Email Account:
The CrmMetadata type is the one defining the synchronisation related to the Crm Field entity. Based on our current configuration, the process would run “Once a day” with “No Restriction (24 hours…)”.
Our first approach was to change this setting to a less busy time, when the application was rarely used by the business users or other integrations (e.g. 02:00 am). Unfortunately, there is a bug in the dotmailer integration which reverts the setting to 08:00 am after it runs the first time.
I have raised this bug with the dotmailer team in the following post:
I would appreciate if you vote it up 😉
Few years ago, I started a project in Codeplex called “Dynamics CRM Custom Emails“, which allows you to send emails from a Microsoft Dynamics 365 / CRM process (e.g. workflow, action) based on an Email Template. Additionally, these emails can contain dynamic values for any entity (out-of-the-box or custom) and any type of attribute (e.g. lookup, option set, currency, etc).
Apart from just migrating the project from one place to the other, I have also updated it to the latest Dynamics 365 version.
There are some open issues in Codeplex that I would like to review, so I will try to do it before Codeplex closes and reflect them in the new Github project. I would like to thank you those guys who have collaborated and provide their feedback.
For those who has never seen this project, I would like to show you a quick example with some screenshots.
Let’s say we had the following Email Template:
We could then produce an email like this:
These would be done by a Dynamics workflow like this one:
This workflow will use the custom workflow activity provided by this solution. You can then specify the corresponding context parameters:
You will find more documentation in the Github project site:
This week we were trying to install Visual Studio 2017 (15.3.2) but we were getting the following error:
Package ‘Microsoft.VisualStudio.Debugger.JustInTime,version=15.0.26621.2’ failed to install
Other Visual Studio components depend on this package:
- .NET desktop development
- .NET desktop development tools
- Windows Workflow Foundation
Since the Windows Workflow Foundation module couldn’t be installed, I couldn’t open workflow libraries to develop Custom Workflow Activities for Dynamics 365.
The solution was as simple as updating the System Variable __PSLockDownPolicy value to 1:
This is related to the PowerShell Constrained Language Mode, see the following article for more details:
Basically the Visual Studio installer was trying to run a command that was not allowed based on the PowerShell Constrained Language policy.
***Thanks to my colleague Emir for his help 😉
Looking at forums, there were other suggestions like stopping the anti-virus or run the following command:
Unblock-File -path “C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.VisualStudio.Debugger.JustInTime,version=15.0.26621.2\RegisterJustInTimeDebugger.ps1”
The following discussions were talking about the same: