Managing Language Translations for multiple Organizations

I was implementing CRM for a manufacturing company which had their operations in multiple geographies and wanted the CRM solution to be available in different languages. We do have ability to enable languages and get the translations done.

Everything is fine if we have only one environment to work with; which is never the case. We always have Dev, QA, UAT and Production environments at a bare minimum. The limitation with exporting language translations is that we can only import the translations to the Organization from which we have exported it.

What this essentially means is that if we export the translation from Dev then we can only import them back to Dev, then the question arises How do we move these translated text from Dev to Production?. There is a very simple solution to it.
Continue reading

Complex Calculations in Business Rules Dynamics CRM

Business Rules have been one of the greatest additions in Dynamics CRM, I just personally love them. Lately, there was a lot of feedback as to complex calculations were not possible using them.
I had a simple requirement where we just needed to do a very simple Percentage Calculation I.e. ProbableValue = (Est. Revenue * Probability) / 100. Previously this was being done in the JavaScript.

The idea to do this calculation in Business Rule is to divide the equation into multiple parts with each part containing only single operation, my case looks like below

**Probable Value = Est. Revenue * Probability**
**Probable Value = Probable Value / 100**

Hope you get the idea. This is how you should break your calculations and have only one operation per statement. It will also enable you to do any complex calculations as well. Possibilities are endless 🙂

See my Business Rule below

Export Translations

Dynamics CRM 2013 Step by Step Part 2: Setting up Active Directory

Previously in the series we had seen how to make a Windows Server 2012 system up and running, if not take a look here Step by Step Windows Server 2012 Installation. Moving on, I would assume you have read the previous article and followed along.

The next step in order to install Dynamics CRM 2013 is create Server Roles. The One that we are actually interested in is “Active Directory Domain Services”. Follow the steps and configure the role.
Continue reading

“An unexpected error occurred” while opening an Entity View in Dynamics CRM 2011

We had updated to Update Rollup 14 on one of our client organization earlier today and while regression testing came across a weird issue while opening up an Entity View in Dynamics CRM 2011.

An Unexpected Error occurred

I tried looking up in traces and run SQL profiler to try and grab the error but to no avail. Ultimately it turned out that the view had a few columns coming in from antoher entity.

Here is what I did to fix the view

  • Removed all the columns from the View except any one which is from the base entity.
  • Published customizations
  • Added all the columns again to the View
  • Published again

Viola, this just fixed the annoying pop-up that was coming up. Hope this will help a lot of troubleshooting time for many.

System.InvalidOperationException on Dynamics CRM 2011 Plugin & Workflow

Today, I was facing a strange error on one of the custom workflow activity. The workflow when run in production environment was going into waiting state whenever there was two or more simultaneous execution.

Looking at the Systemjobs, it showed the following error

System.InvalidOperationException: Microsoft Dynamics CRM has experienced an error.
Exception: You cannot create a SqlExecutionContext from another SqlExecutionContext on which OnBeginRequest has not been called

Continue reading

Debug Plugin in Dynamics CRM 2011

In earlier versions of CRM, in order to debug any Plug-in or Custom workflow activity it was mandatory to copy the DLL and PDB files to “%Microsoft Dynamics CRM%\server\bin\assembly” directory and then attach the source code to server’s worker process i.e. w3wp.exe

Dynamics CRM 2011 provides a better mechanism by which developers can achieve the above with just few clicks and without accessing the CRM server.

Here’s how
Continue reading