Dynamics Monster Limited

By: Pedro | September 14, 2017

I'm the kind o person that really likes to do Migration and Integration tasks into and from CRM.

Last time this happened to me i forgot to mention in here, and probably most of you already know, if no, just spend few minutes reading this.

I was importing some data into CRM 2016, the same applies to CRM 2015 and only for creating the Account entity records (few data fields filled) it was giving an average of 1.5 sec for each one. That's really an issue when you need to import thousands or millions of records, if you migrate or integrate only few hundred, you wouldn't loose time trying to understand why.

However, i'm really stubborn, so i had to figure out why.

What would you do at first? First you would question yourself, do i have any PrePlugin...

By: Pedro | August 04, 2017

This is a nice to have to guide users in terms of filling information based on stages, for instance:

The information needed to a contact to be a prospect, probably we only need First Name, Last Name and mobile phone. On the other hand, to become an opportunity, we will need some more details.

In this situation i would use this kind of approach, Business Process, because it will be really easy to see by opening the record in which phase of the process the contact is only by looking to the process bar.

However, using this feature of CRM can be sometimes a little bit disappointing because customizing what the fields do (hiding based on rules, setting required based on others is not possible), i mean, configuring only with the CRM default functio...

By: Pedro | January 03, 2017

A user was trying to download a note attachment when the message "Invalid Action" just appeared in the browser.

The first thing i did was using my old friend Diag Tool where i saw the exception "The key specified to compute a hash value is expired, only active keys are valid.", i have found as well that in the Event Viewer.

Doing some research i saw that restarting the MS CRM Asynchronous Processing Service or running the executable from the Tools folder inside CRM folder Microsoft.Crm.Tools.WRPCKeyRenewal.exe /R, i could solve the problem.

I did that, i restarted the server and in the end, the same problem. What do you do in this situations, just google it a little bit more, so, after 5 minutes someone had the same issue, ...

By: Pedro | August 18, 2016

Upgrade from CRM 2015 to CRM 2016 On premise

Yesterday was one of those days that i really like to have, i know, sometimes can be really frustrating because of some problems you have to go trough when performing an upgrade.

I have performed many upgrades since CRM v1.2 and it is always a challenge, for more tests in other environments, when it is to Production, something new will happen, yesterday was not exception.

In a virtual machine just performed the Upgrade, it was really quick and no trouble.

As planned, after hours we just performed the Upgrade in Production with all the scenarios covered in our checklist, almost in the end of the Upgrade, it was on the same step for almost 1 hour (Enabling Read Committed Snapshot Isolation for organiza...

Category: CRM 2016 

Tags: Upgrade to CRM 2016 

By: Pedro | April 26, 2016

When another version of CRM gets out, we all have to learn from 0 few things, and regardless the experience we all have, nobody can deny that sometimes it is frustrating when we experience an error/exception for the first time and more time we spend understanding the "why?" without finding the solution more we feel worst.

What i have found on the very start of the painful task of changing the Javascript code to meet the Web API requirements was that the way i was doing few things related to fields and entities just changed, as an example, the lookup field i wrote on my previous post.

To help me on that tedious task of updating or creating records trough the Web API i found my new best friend regarding that matter, the oData Metadata...

By: Pedro | April 25, 2016

On the subject of CRM 2015 oData Vs CRM 2016 i will be posting the main differences that i have found when upgrading my client code to CRM 2016 Web API.

I could start with the methods (Create, Update, Retrieve,....), however, those things are easier to find in the SDK than this specific one.

Previously you could already use a method called Disassociate to set a lookup field to null, but that involves an additional call for each one of the fields to update. So, i can imagine that you would be doing something similar to:

var account = {};

account.primarycontactid = null;

XRM.Rest.Update(account, "accountSet", ...,...,...);

Don't mind with the (...) on the method call, in my case i have a generic class to expose the Odata Organization Func...

By: Pedro | April 25, 2016

This is my first post on the subject CRM 2015 oData Vs CRM 2016 Web API.

I will start with for me something that took me some time to understand and use properly when upgrading from CRM 2015 to CRM 2016 on the client side

With the Web API, now we have two different types of fields (properties), the primitive properties and the lookup properties (navigation properties).

Primitive types

OData supports a wide range of data types but Microsoft Dynamics CRM doesn’t use all of them. The following table describes how CRM Organization service types are mapped to OData primitive types.

Navigation properties

In OData, navigation properties allow you to access data related to the current entity. When you retrieve an entity you can choose to expand navigatio...

By: Pedro | March 14, 2016

Developer Extensions is a set of tools provided in the SDk that intendes to simplify and accelerate development. Usually to be used in Client apps, something like Portals.

 It provide the following capabilities:

Don't forget:

Developer Extensions for Microsoft Dynamics CRM supports d...

Category: CRM 2015 

Tags: Developer extensions 

By: Pedro | March 11, 2016

New messages available in CRM 2016 below:

Request class

Web API action


More information


CloneAsPatch Action

Creates a solution patch from a managed or unmanaged solution.

Create patches to simplify solution updates


CloneAsSolution Action

Creates a new copy of an unmanaged solution that contains the original solution plus all of its patches.

Create patches to simplify solution updates


CreateKnowledgeArticleTranslation Action

Creates a translation of a knowledge article record.

Create a knowledge article translation


CreateKnowledgeArticleVersion Action

Creates a major or minor version of a knowledge article record.

Create major and minor versions of a knowledge article


DeleteAndPromote Action

Replaces a managed solution plus all of its patches.

Create patches to simplify solution updates



Performs a full-text search on knowledge articles in CRM using the specified search text.

Search knowledge articles using full-text search



Increments the per day view count of a knowledge article record.

Increment knowledge article view count


SetProcess Action

Sets the process that associates with a given target entity.


UpdateSolutionComponent Action

Updates a component in an unmanaged solution.

Package and distribute extensions using solutions

Category: CRM 2016 

Tags: SDK 

By: Pedro | March 09, 2016

Not the best thing to do in terms of performance probably, but if you need to increase the max number of records per collection, i.e: Rest call to get records and render as a table in a custom page, by default it will bring 50, to increase run the next sql statement in the MSCRM_CONFIG database:

update ServerSettingsProperties
set IntColumn = 250 
where ServerSettingsProperties.ColumnName = 'MaxResultsPerCollection'