Administrative access mode

When you have edited your Sitemap so every subarea is with the Privilege read and then you want to have a user that is with administrative access mode, the user won’t be able to access the Dynamics CRM, even seeing the menu.

When the user browses CRM, the application will try to display the default user area.

If you remove the option: <Privilege Entity=”new_test” Privilege=”Read” /> the user with administrative access mode will be able to view the CRM.

The other option is to have the permission to Read-Write.

Hope this helps


Workflow Process Corruption

When you have a workflow that is calling in a step a Custom Workflow Activity and you putting a workflow in draft, the Condition Expressions show as “Invalid Condition expression”. When you try to re-activate the workflow it isn’t possible because of the conditions.

This issue might appear if you changed the internal name of the input/output parameter and published the plugin. It will make the condition invalid because, the parameter that was used in the create/update step that is inside the condition is invalid, it is not recognizing the parameter. You need to remove the step and add it again.

Doing the deletion of the step and was able to change the condition branch and redo the Invalid condition expressions and after that, it was able to publish the workflow. Then added the step again. That way it was using the correct output parameter schema name.

Hope this helps.

Setting “File size limit for attachments” stops solution import

There is a situation that some users might face when the option in the System Settings “Set file size limit” is changed, and they aren’t able to import a solution is receiving a message that “Webresource content size is too big”.

When you change this option, for example to 500, the files like webresources are influenced by this value so it wouldn’t create a webresource with a size higher than 500kb. It will also influence the import of a solution since the internal process will check the size of the web resource.

The maximum size of files that can be uploaded is determined by the Organization.MaxUploadFileSize property. This property is set in the E-mail tab of the System Settings in the application. This setting limits the size of files that can be attached to e-mail messages, notes, and and unfortunately web resources. The default setting is 5MB.

Hope this helps.


Import managed solution with BPF prefix new_

There are some issues when you upgrade the Dev environment and you have custom Business Process Flows (BPF) and when you export the solution with that BPF as manage and import in the Test/Prod environment but it is giving an error. This is because the prefix of the BPF is with “new_” instead of the prefix of the solution.

There is a known article that explains how to solve the issue:

Following the steps will help you to overcome this issue without having to open a support ticket or running scripts directly in the DB.

Have in mind that these steps are to be performed in the sandbox that there isn’t any problem deleting the BPF so the records related to that are all deleted.

Hope this helps.

Alternate Key (Keys) failed to reactivate

There have been some issues when you try to activate an Alternate key but it stays in the state of failed, this might be because the internal process has created the index for the key but it didn’t stay as active in the UI and in the table that saves that information.

If you are OnPrem, what you will need to do is to go to the table of that entity and then on the index folder delete the index that was created. Then you go to CRM and just need to re-activate the alternate key.

If you are Online you will need to submit a Service Request, saying that the Alternate Key isn’t being activated and you want that the support engineer have a look into it.

Hope this helps

CRM Audit info dissapeared

Some of the New Value data might disappear (have the broken icon instead of the value) when you import a solution that disables the Audit of the entity or if the Audit is already disabled and then you enable Audit.
It is a known issue and if you are working on online you will need to create a Service Request to the Support.
If you are OnPrem you will need to run the following SQL script to check and then clean the records:

Select * from AuditBase WHERE action = 104 OR action = 102
Action = 104 | Any Auditing Changes that are made at Organization level would get captured with code 104.

Action = 102 | Any Auditing Changes that are made at Entity level would get captured with code 102.

In order to retrieve the Audit value from the DB, we would need to run the following command:

DELETE from AuditBase WHERE action = 104 AND CreatedOn > ‘<date>’ || Action = 104 or 102, depending on the results we get the above SELECT query

After this, the values will show again.

Invalid User Authorization

When you get an error like this, when you try to open a Workflow that is in Draft mode, check first if you are using Custom Workflow Activities in that workflow and if the Custom Workflow is update with the most recent dll’s for the version of your Dynamics CRM instance.

I had a issue like that and updating the dll’s solved the problem.

My Recent Items

Sometimes in our daily work, we access some records many times a day, and jumping from one records to another, going always to the records list might not be very practical.

You can view your recent visited records going to the top menu and clicking in the Recently Viewed Items.


After that it will show you your Recent Views or Recent Records, making it easy to jump between records.



Hope this helps.

Microsoft Dynamics CRM 2015 On-Premise Installation

Installing Dynamics CRM sometimes can be a pain if you are installing it in a client that has many restrictions regarding the login users and access.
You may face some of this erros when doing and installation.

Commum errors:
– SQLSERVERAGENT service is not running (during installation) – The user that was running the installation didn’t had the correct permissions. Using a domain admin account worked.

– Setupmicrosoft.crm.setup.server.addaspnetserviceaccounttosqlaccessgroupaction failed. Access is denied – the user that was installing CRM had permission of FullControl on the Organization Unit (OU) that was created for this environment but it didn’t had the Delegate Permission. Set that to the user and then it worked fine.

– CRM 2015 Reporting Extension Setup Error – The SQL Server Reporting Services account is a local user and is not supported – This one I had to change the default Service Account (Report Service) and change to Network Service and apply, Closed Setup of the Reporting Extension and Run it again.

There are alot more other problems that might occur, these were the ones that I faced recently and at the end it was installed.

If you need any help, just send a message.

Hope this helps!

Infinite loop on Plugin – Dynamics CRM

Have you ever had a situation where you want to use a plugin when a state of a record changes, and the logic needed to implement at the end of the code is to set that record again in the same state?

For instance, if you have a plugin registered in the Quote entity, message SetState/SetStateDynamicEntity and when you activate the Quote, the plugin starts. Your logic in the plugin says that is going to search for some records that are Active, put them in Draft state, changing the necessary fields and Activate it again.

What do we get? The infinite loop….

There is always a problem to these types of plugin, but sometimes you need to do it and how can you get around this problem? We can add a bool field, hidden in the form, to validate this operation at the begining of the plugin and when we first run the plugin, we change that field so the next time it tries to run, it will exit the execution.
It is just one more field, that is hidden in the form and maybe it is easier to manage (you need to remember that if is when you Activate, then when you Revise you need to revert the field), but sometimes there are so many fields that maybe it is better not to implement like that (and not so elegant).

There is another way to do this. You can build a plugin that can be used in a workflow (a workflow plugin), you have the same plugin logic implemented like you have in a normal plugin, but just need to change some of the execution steps of the plugin and how it is registered. If you use the Developer Toolkit for Visual Studio you can do it easily.

1-Create a Workflow Plugin class

Create Workflow Plugin

2-Add Input Parameters if necessary

Input Parameters
Next part of the plugin

3-Deploy your workflow plugin (if you are using Developer ToolKit, otherwise you register via PluginRegistrationTool)

Deploy Workflow Plugin

4-Create your workflow – This workflow can run on a changing of a field, changing of status, etc. In our case we had a button that called this workflow to Activate the Quote and then run my workflow plugin

Create Workflow.

5-Add the step to run your plugin

Choose the plugin

6-Choose the input – After you have added the step you can insert the input to the plugin

Step added
Input from fields

After this, everytime you can this plugin, automatic or via javascript it will run the plugin too.

If you want to just prevent that the plugin goes in an infite loop, you can use Deep property to check if already run.

if (context.Depth > 1) { return; }

Hope this helps.