Experiences on CRM, .Net and DHTML


  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

Desired Skill Set for Microsoft Dynamics CRM Technical Resources – Part II


In this second article of the series Desired Skill Set for Microsoft Dynamics CRM Technical Resources, I will describe what is expected of a Sr. Microsoft Dynamics CRM Developer.

Ideal total years of experience – 3 to 6 years

Desired technical skills

  1. HTML (Level 300) – At this level it is expected that developer is able to decide how to resolve a particular problem by applying various HTML techniques and has a general idea of UI Frameworks. Good understanding of CSS is also required so that basic styling of the UI can be done.


  2. JavaScript (Level 300) – At this stage, the developer must have decent command over JavaScript. From understanding various nuances of this powerful and omni-present scripting language, the developer at this level must be able to write and understand JavaScript code that deal with UI, Web Services (SOAP and REST) Integration. Moderate knowledge of various JavaScript frameworks (JQuery, JQuery UI, ReactJS, AngularJS, KnockoutJS to name a few) is expected at this level.


  3. ASP.Net (Level 300) – Excellent command over ASP.Net and surround technologies (MVC, WebAPI, SignalR, etc.). At this level it is expected that you will create / support integration with other ASP.Net based web applications. Additionally, high level understanding of other web technologies can help at this stage.


  4. C# (Level 300) – This is a must have for *any* level of CRM Developer and is essential in extending Dynamics CRM via Plug-ins, Custom Workflow Assemblies, Actions and various integration scenarios. At this stage, developer should have a decent understanding of Windows based application as well. Hands on knowledge of Windows Forms, WPF, Windows Services and other aspects of Windows programming can help go miles at this stage.


  5. Reporting and Business Intelligence (Level 300) – This is not a must have but it can definitely help you if you are considering career in Dynamics CRM. In addition to good reports development skills, at this stage it is expected that developer is aware of various business intelligence solutions for example Microsoft Power BI.


  6. Microsoft Azure (Level 200) – Strong understanding of Microsoft Azure and its various integrations with Dynamics CRM are must have at this level. For example, Customer Insights, Data Export Service, Data Loader Service, etc.


  7. Microsoft PowerApps and Flow (Level 200) – This is an optional area which Dynamics CRM technical resources should explore if they intend to integrate Dynamics CRM with many other web service providers.


You can find the previous article of this series at: http://crmxpress.net/blog/post/2017/03/08/Desired-Skill-Set-for-Microsoft-Dynamics-CRM-Technical-Resources-Part-I.

Desired Skill Set for Microsoft Dynamics CRM Technical Resources – Part I


This is going to be a multipart series in which I will cover the following levels of Microsoft Dynamics CRM

  1. Microsoft Dynamics CRM Developer
  2. Sr. Microsoft Dynamics CRM Developer
  3. Microsoft Dynamics CRM Tech Lead
  4. Microsoft Dynamics CRM Architect

Please note that this is a guidance, not a rule book. There are exceptions everywhere and rules/guidelines do not matter to them.

With that said, let's begin with the first role: Microsoft Dynamics CRM Developer.

Ideal total years of experience – 1 to 3 years

Desired technical skills

  1. HTML (Level 200) – This is a basic building block of any web technology you will work with. Microsoft Dynamics CRM, at its heart is a complex Web application only and many of complex customization scenarios can only be handled by extensive usage of HTML.


  2. JavaScript (Level 200) – Again a basic building block and a *MUST* have today – does not really matter if you are targeting Dynamics CRM as a career path. JavaScript is omnipresent and there are arguments in favor and against it but as a Dynamics CRM Developer, you must have more than basic understanding of JavaScript. Additionally, if you are comfortable with popular JavaScript frameworks like JQuery, JQueryUI, AngularJS, KnockoutJS, ReactJS then it can help you develop amazing WebResources at a half(or even less in some cases) the effort.


  3. ASP.Net (Level 200) – This is a must have for *any* level of CRM Developer and while it is not directly related to Dynamics CRM development but it is a must have as many Dynamics CRM implementation require some sort of custom portal implementation or custom web development.


  4. C# (Level 200) – This is a must have for *any* level of CRM Developer and is essential in extending Dynamics CRM via Plug-ins, Custom Workflow Assemblies, Actions and various integration scenarios.


  5. Reporting (Level 100) – This is not a must have but it can definitely help you if you are considering career in Dynamics CRM. Dynamics CRM has ad-hoc reporting capabilities which are helpful to build simple reports. If you need to develop complex reports, SQL Server Reporting Services Report Builder tool is what you will need.


  6. Microsoft Azure (Level 100) – This is an optional area but having somewhat understanding of Microsoft Azure and its integration areas with Dynamics CRM can help you stand out in the crowd.

Your comments/inputs are welcome. Please wait and watch this place for the next parts of this series.

A Step by Step Guide to Avail Trial of Dynamics 365 for Project Service Automation and Field Service

This is my first post on Microsoft Dynamics 365 and I am hoping it will help at least a few to get started on this awesome (Sounds Clichéd? But I think it is the only appropriate adjective I can think of) business solution/platform.

I did hear that some people are facing a challenge with setting up Dynamics 365 PSA and Field Service Trial so here it is a… step by step guide to configure PSA and Field Service.

  1. Click on Solutions, and select Sales. You will see the screen as shown below. Click on Try It.

  2. You will be presented with a simple form. Fill up the details as you see fit. Regardless of your Geo-location and language preferences, I suggest you choose United States and English here. (You can thank me later for that tip). Click on Just One More Step.

  3. Another simple to fill form will pop up. Once you have filled in the details. Click on Create my account.

  4. You will have to now authenticate with a Phone number. It works for any listed country so does not matter where you are. Just select appropriate country code and enter cell number that you can access. Please do note that it sometimes does not work with certain cellular providers (Pre-paid/IP). Try with a different number if that is the case.

  5. You will be asked to login now. Provide the credentials you created in Step 4.
  6. You will see a Please Wait… screen with your own Org URL and once it is ready a link to begin the Setup will appear. I ran into an error at this point. If you run in an error you can log on to https://portal.office.com and click on Dynamics 365 to reach to the next step of this process.


  7. Once you click on Set up. You will see the screen as shown below.

  8. Select All of These and click on Complete Setup.
  9. Now you will be redirected to the following screen.

  10. Now click on Dynamics 365 on top left and a navigation bar will popup. Click on Get More Apps at bottom left.

  11. Dynamics 365 AppSource will be shown. In the Search field, type Field or Project, based on your requirements. Click on Try on appropriate App.

  12. Provide Confirmation as requested. Agree to the terms and conditions and click on Continue.

  13. You will be taken to Dynamics 365 Administration Center. From here you can install multiple solutions (Portals, Insights, Gamification) etc. as per your requirements.

  14. In future if you need to access the Dynamics 365 Administration Center, you can always do it by navigating to https://portal.office.com and then click on the Office menu in top right corner and expand Admin Centers and then click on Dynamics 365.

  15. Click on Solutions to manage the Solutions for a given Org.

I hope this guide will help you to get started with Dynamics 365. If you have any questions/comments please do reach out to me via comments.

Dynamics CRM 2016 Online – Cannot insert duplicate key error (Possible causes and solution)

Very recently I was helping a business acquaintance of mine with their existing CRM Online implementation and I ran into a rather peculiar problem. I will describe the scenario first, then the error we faced and finally possible solution/workaround.

If your case does not fall in the scenario described here, there can be n number of reasons you are getting this error and you should start digging deep in traces logs or engage your CRM Administrator and/or Microsoft Support.


The client had multiple environments (Dev, Testing, Staging and Prod) which were cloned from 1 root environment and over the period of time they went out of sync (It is quite common to be these environments out of sync in terms of data as well as customization)
– however it was not tracked when they went out of sync. Now comes the strange part. There were certain records which needed to be migrated between two environments. I suggested we use standard import/export feature of Dynamics CRM. It should have worked but it did not.
We tried a lot but the files never went through and it never showed us any error. We gave up and as there were just 70 odd records, I whipped up a small utility that will take these records from source and push them to target. All set right? Well… NO.

Error and Troubleshooting:

I started getting error: Cannot insert duplicate key. I was surprised as the possible duplicate records were indeed not present in other environment. Dedupe rules were all disabled. Alternate keys were not defined. I disabled Activity Feed rules as well. Still no results.
As a last resort, I removed all the unnecessary attributes (which included some relationships) and taadaa… it all went in… except 1 record. After careful evaluation of both the environments I found that another record with the same GUID was already present (As I cloned records from other environment GUIDs were same).


So there were multiple reasons I was getting these errors in this scenario

  1. I had relationship attributes cloned, which retained GUIDs
  2. 1 record already had a duplicate record in the target environment. – As the environments were cloned their GUID seeds were same in each organization.


A possible solution here is to remove relationship data while you are cloning records and re-establish them after the records are created and also do a cleanup of record ID so you don't run in to the second case.