We noticed incoming emails stopped getting in and we saw a 401 Authentication Error in the CRM Email Router server logs. Nothing has changed in the system account used for this Forwarded Mailbox and the password is still valid.
Deployment: CRM Online + CRM Email Router + Exchange Online
CRM Email Router Configuration: Forward mailbox is used for incoming emails.
After a few tests using the next utilities (very useful!):
We noticed that system account cannot access its own mailbox. Very weird, like if you don’t have access to your own home suddenly.
Finally, we just had to force an update on this system account to make it work again using the next PowerShell command:
set-msoluser -blockcredential $true -userprincipalname [userAccountName]
set-msoluser -blockcredential $false -userprincipalname [userAccountName]
It looks like the system account was desynchronised between our internal AD and Microsoft Online AD, causing this issue.
The xRMVirtual session on Tuesday September 1 had to be cancelled last minute because of technical and audio difficulties and we couldn’t share our experience on previous events such as Convergence, CRMUG and eXtreme CRM.
However, you can still find some of the tricks I was about to share in the next link How to get the most out of Convergence in Barcelona and you can find the deck here:
If you need to give the ability for a Dynamics CRM user to Import Data, you can just create a security role with access to the next entities:
- Data Import
- Data Map
- Import Source File
Note: I have notice you will need, at least, Delete right – user level on the Data Import entity (it doesn’t make sense if you just want to allow the import, but this is what I found; it could be a bug). Otherwise the IMPORT DATA button won’t appear. See the same in the next screenshot:
See below an screenshot with the configuration described above.
Have you seen the latest CRM Developer Center? It is a great place for developers getting started with Dynamics CRM. The search has been customised and improved to find content only related to CRM, see below an example.
Also there are many resources for those interested on Mobile development, have a look at Mobile SDK.
Notice how “entity” brings results only relevant about Dynamics CRM (e.g. rather than Entity Framework)
My Edge favourite feature so far is “Make a Web Note“. It allows you to write notes on the current page you are browsing, highlight things and add typed notes to describe steps.
I find this browser utility very useful for Dynamics CRM users who needs to share tricks or help other colleagues. See below an example.
A colleague doesn’t know how to find Leads, so we are going to get him an screenshot highlighting where to go within Dynamics CRM:
On the right top corner, select “Make a Web Note” icon:
A new noting bar will open with the utilities at the left corner. See how the Lead tile has been highlighted:
Then you can Share the same using different options, either taking an screenshot or sending it to other apps, like OneNote:
The new CRM SDK 2015 doesn’t give support yet for our known CRM Developer Toolkit, which has been part of the CRM SDK until CRM 2013. Basically, the CRM SDK 2015 assemblies have been compiled with .NET Framework 4.5.2, but CRM Developer Toolkit was compiled using NET Framework 4.5. See the next Microsoft article for more details.
For instance, let’s check the new assembly Microsoft.xrm.sdk.dll part of the CRM SDK 2015:
The good news are… we still can make compatible the Developer Toolkit with the latest CRM SDK 2015 editing the .NET Framework in the corresponding projects of our Visual Studio solution. Let’s say we have the next CRM solution:
For plugins and workflows, we should update the references to the new assemblies and also the .NET Framework in the project properties:
After updating those references, we could still find the following error:
“The type or namespace name ‘Xrm’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)”
This error is indicating you haven’t got installed the expected .NET Framework 4.5.2. Do right click on the same project and select Properties to check the version actually used:
If you are only getting old versions of the Target Framework, select “Install other frameworks…” that will take you to the next site:
There you must download .NET Framework 4.5.2 Developer Pack.
After it has been installed, you get a new option in that previous list:
Finally, we need to do something similar with the CRM Package Project. But in this case, we will have to edit the project file and update the entry “TargetFrameworkVersion” to “4.5.2”. Start unloading the project:
Update the mentioned entry “TargetFrameworkVersion“:
Finally, reload the project again and everything should work now!
About this last part, I would like to say thanks to my CRM MVP colleague Scott Durow (@), who helped me to find that entry.
If you don’t update the package project, it may still compiled, but the actual deployment will fail and you should see the next warning in the Visual Studio output:
warning MSB3274: The primary reference “[Your Assembly Name].dll” could not be resolved because it was built against the “.NETFramework,Version=v4.5.2” framework. This is a higher version than the currently targeted framework “.NETFramework,Version=v4.5”
warning MSB3275: The primary reference “[Your Assembly Name].dll” could not be resolved because it has an indirect dependency on the assembly “Microsoft.Xrm.Sdk, Version=22.214.171.124, Culture=neutral, PublicKeyToken=31bf3856ad364e35” which was built against the “.NETFramework,Version=v4.5.2” framework. This is a higher version than the currently targeted framework “.NETFramework,Version=v4.5”
Using any version of Dynamics CRM, have you ever tried to find all processes that contain
- A certain Step in some Business Process Flow
- A Custom Workflow Activity that you have developed and you try to reuse in several Workflows
- A Dialog that contains some particular question
- An Action with an specific parameter
If so, probably you noticed that Advanced Find (an out-of-the-box CRM tool to create custom queries) is not enough.
Let’s just understand the anatomy of the processes. CRM uses internally Windows Workflow Foundation as its workflow engine, so that CRM processes are defined using XAML. So, when you create a process using the CRM UI designer, the platform translates it to XAML.
So, then, we are looking for those processes which XAML contains some text. Looking at the metadata of the Process entity, we can see there is an attribute called XAML:
Now the question: how do we interrogate this XAML attribute? Solution: CRM OData query
CRM exposes an OData service which can be easily consumed by external applications or even using the browser. See more information in CRM SDK. Because this service allows to access more attributes than the Advanced Find tool, we can use the next query to find the processes whose XAML contains a certain string:
https://[OrganisationName].crm[x].dynamics.com/xrmservices/2011/OrganizationData.svc/WorkflowSet?$filter=substringof(‘[String]‘,Xaml) and Type/Value eq 1
The parts marked with brackets should be replaced with your corresponding context. The last condition is just filtering the Type of process, returning only those which are the actual Definition (Value: 1).
You can also build easily this query using the tool OData Query Designer in CodePlex, see http://dynamicsxrmtools.codeplex.com/.
Let’s try it now! Out of the box there is a Business Process Flow called “Lead to Opportunity Sales Process”, which contain an step with name “Existing Contact?”:
Let’s say we want to find any process that contains that step “Existing Contact”, so we will use the next query:
https://%5BOrganisationName%5D.crm%5Bx%5D.dynamics.com/xrmservices/2011/OrganizationData.svc/WorkflowSet?$filter=substringof(‘Existing Contact‘,Xaml) and Type/Value eq 1
Just putting that query in IE, we will see the next results:
Another example. Let’s say you are using N52 Formula Manager and you want to find all processes that are using a particular Formula Genie. In our example, this formula is going to generate a Hashcode for a given contact based on its fullname. This hashcode can be used for de-duplication:
Now, I want to find all the processes that are using this formula at least in one of their steps. So I will use the next OData query:
Where “uzX” is the formula short code.
Putting that query on IE, I will get the next results:
“New Customer” is a custom process that I created to use that formula and generate a hashcode every time a new contact is created or its full name gets updated:
See below a contact sample with a hashcode (below full name attribute), which has been generated by the above process:
During 2014 I have enjoyed helping the Spanish-speaking users group Comunidad CRM. It is a great community focused on Microsoft Dynamics CRM. They organise technical webcasts, training, forums, blogs and other activities like Twitter (@ComunidadCRM).
These guys are always active and keen to help you with any CRM question you may have. It doesn’t matter if you are a dummy or you are an expert, you can always contribute, help and learn from it. If you are interested in Dynamics CRM and you speak Spanish (or you want to learn it 🙂 ), join @ComunidadCRM!
Just in December, I received a warming and rewarding email for my contribution and help to this community. This year 2015 I will definitely carry on helping them and sharing the new exciting changes coming with the latest version CRM 2015. Hope to see you around 😉
CRM SDK is now also available from the Visual Studio extension NuGet. This extension is a provider of third party packages where anyone can participate and publish their own ones. This makes very easy to add third party assembly references.
- Install NuGet in Visual Studio from “Tools => Extensions and Updates”
- Once NuGet is installed, create a Visual Studio Project (a library for example) and make right click on the Visual Studio project where the CRM SDK assemblies will be used. Select “Manage NuGet Packages…”
- Choose the Online option on the left menu and search for “crmsdk“. A list with all the CRM SDK assemblies published by Microsoft will be presented. Choose the corresponding assembly based on its version.
In this case, I have installed the CRM 2013 assemblies:
Notice the new package and reference configuration linked to the project:
- “packages.config” file in the project where the NuGet packages have been installed
- New folder with the assemblies in the root solution folder. You can find the assembly file within the package folder. In this case, the new CRM 2013 SDK package contains two assemblies, see below:
- New library reference have been added automatically to the chosen project:
Last week I noticed many of the icons in the buttons of our Online Team Foundation Service have been disappeared. This issue only happens with IE 10. I have tried the compatibility mode but no difference.
- It works fine with Chrome (28.0.1500.95).
- Turn on Internet Options -> Advanced tab -> Use Software Rendering in IE
See more information about this bug here: