{CRM 2016 TIPS} Step by Step Guide and Overview: OneDrive for Business with Dynamics CRM 2016

This is a series on CRM 2016 new features, tips and tricks from my end. Rather than starting from obvious changes, I am starting from the hidden gems of this release again.

So, First things first!

What is OneDrive for Business?

OneDrive for Business is a place where you can store, sync, and share your work files.

As part of Office 365 or SharePoint Server 2013, OneDrive for Business lets you update and share your files from anywhere and work on Office documents with others at the same time.

NOTE   OneDrive for Business is different from OneDrive, which is intended for personal storage separate from your workplace. 

OneDrive for Business is also different from your Office 365 team site, which is intended for storing team or project-related documents.

If you have a small business, it’s ideal to set up your file storage to use OneDrive for Business and Office 365 team sites together.

For more details check out here: https://support.office.com/en-us/article/What-is-OneDrive-for-Business-187f90af-056f-47c0-9656-cc0ddca7fdc2

For just having a trial for One drive for Business go here: https://onedrive.live.com/about/en-sg/business/


Add it to your existing Subscription (tenant and instance which has CRM installed).

If you are logged in and you hit a Start a free Trial, you will be able to see the following screen:


Choose yes, add it to my account. On the next screen:


Click Try now

This will give you a confirmation. Choose continue:


You have successfully setup One Drive for Business Trial.

Assign the One Drive for Business License to the user:


Hit Save.

Now to have it running with CRM:

Go to following to enable OneDrive for Business as follows.

  1. Click Settings > Document Management > Enable OneDrive for Business.


  1. Click Enable OneDrive for Business to enable it, and then choose OK.


Oops! You need Server based SharePoint Integration enabled.

No worries, enable it first!


Oops! Error again:


Go back to Office 365 screen and navigate to One Drive from the App Launcher:


Click Next on the One Drive screen:


Your one drive will now be setup!

Go back to your Enable link and it will work fine.

The kind of way to check it succeeded is you will have a settings area for it now(highlighted in yellow):


Navigate to any of the Records (Account here where I have document management enabled)

And going into Account A.Datum -> Documents

Click on +New as per below screen (I an doing a word file)


Choose One Drive for business as location and File name:


Hit Save, when you will do it first time you will see this:


At this moment you can change file location in one drive if you want.

IF not, hit continue like I did:


Isn’t that Cool, this file can be access from internet if shared from One drive!

On One Drive area in Office 365 I can see a new folder for CRM now which is only accessible by me:


Inside there is folder for Entity:


And then for record:



With a great feature comes a great responsibility, CRM security roles will not have control on this document if it is shared!

But this is great feature if your requirements are something like:

· Sharing content to external audience and also see it linked to your CRM records

· Some integration scenarios related to document updates

· Private documents link to your CRM records which you do not want others to access

· Digital content related systems

Hope it helps and Happy CRMing!


{Error Resolution} A Duplicate Column heading exists in Dynamics CRM

Issue in CRM 2015 Update 1 Online:

When clicking Get Data template or trying to get data from Export to excel using Static or dynamic worksheet, users are reporting the following error:


Resolution for Data template:

Use XRM Toolbox in case of Data template to find duplicate column names using Meta Data document generator and rename duplicate display names (which are on form). Data template file is generated using form fields.

Resolution for Export to excel using Static worksheet or Dynamic Worksheet:

Remove duplicate column names from the view you are using (Do not include (base) fields for Currency fields)

Hope it helps and Happy CRMing!

{Offering Review} Custom report development for Dynamics CRM by CRMIZERS

I often hear that sometimes customers need to have custom reports created for their CRM online version which are

more complex than native CRM reports which can be generated using Wizards.

CRM on premise supports SSRS based reports written in SQL whereas CRM online supports Fetchxml version,

which needs expertise to develop.

This post outlines an offering for custom development done by CRMIZERS:





Also, all the reports have been provided as samples in downloadable formats.

For further details on custom report development you can contact on sales@crmizers.com or check


Hope it helps and Happy CRMing!

{Office 365 Tip} Office 365 Geographical outage map

This quick tip comes with the help of an Office 365 expert from my company.

Mostly Microsoft Office 365 is very reliable with a commitment to server 99.9% uptime guarantee. Isn’t that great?

But for that .1 % time if there is some geographical outage or something, I was suggested for this quick link to check:


It gives you a map to see if there are any geographical issues on the Office 365 cloud:


Note: This is not a direct service from Microsoft, so I don’t want to suggest this is official link from Microsoft in any way.

Hope it helps!

{Useful Add-on} Maplytics for Dynamics CRM

Maplytics is a great add-on for Dynamics CRM integrating Bing maps with Dynamics CRM functionality.

It is developed by Inogic, whose CEO Roohi is a great CRM MVP over the years.

I am writing a quick review of this tool here. Overall, the tool is really great and serves as a useful means

to analyse CRM data over Bing maps.

Supported Versions: Versions: Dynamics CRM 2011, 2013 & 2015

Deployment Models: On-Premise, Online and Partner Hosted.


  • Plot any entity record on the map.
  • Proximity Search across entities simultaneously.
  • Ability to include nearby POI like restaurants, hotels, airports etc
  • Proximity Search Results saved as Advanced Find Views for future use.
  • Color coding of pushpins based on configurable categorizations.
  • Routing using multiple waypoints.
  • Opportunity and Sales Heat Maps to allow for sales analysis
  • Street View option is now available as Bird’s eye.
  • You can now include Maplytics component on Dashboard through configurable queries.
  • Ability to Print the Map and Driving directions
  • Seamlessly integrated within Dynamics CRM.


More information can be found on following link:


Hope it helps and Happy CRMing!

Useful resources for up to date news on Dynamics CRM from my end

I just wanted to highlight the fact that CRM is making changes at a very fast pace and there would be lot of useful information coming your way, just like it does to me.

So I had a query recently on what are the best ways you can keep up to date via my blog?

Not many people who follow my blog via email might have noticed that I have a twitter handle as well.


My twitter handle is @msdynamicsblog

This is surely the best way to get my instant tech tweets and retweets.


Then if you are not really into following any kind of instantaneous tweets you can always follow my blog via email.

What is the way of doing it?

On the right hand side of my blog there is a small area to follow my blog via email. Every time I post something new you will have an email.


There are some groups as well:


Then there is yet another way, you can go to the LinkedIn Group named Dynamics CRM 2013/2015/2016 Consultants here.

This is more focused on versions 2013 and up and there is loads of information to consume from here.

I myself administer this group for now but am looking to have more admins, so if you like a bit

of administration work let me know in comments.


Another effective way is to drop me an email if you need information on anything specific and think I can help. Here is my email: deepeshsomani@hotmail.com . Sometimes, might take few days but I do respond on it.


I also have a query/feedback form on Dynamics CRM blogs here

Hope it helps and Happy CRMing!

{ADVANCED CODE TIP}My take on the Key not found exception in Dynamics CRM Plugins

Many times we have been there that we get the exception from our plugins called “The Given key was not found”.

The problem with Dictionary collection is that it doesn’t give the key name when it is not found.

The reasoning which I read on different blog posts, forums and Microsoft is key, value pair can be any type.

So, key name is not given in the exception.


But I wanted to have the key name in the plugin log.

I spent many weeks with this exception in my CRM online project and trying to understand how this can be custom built.

So, I have implemented this change on the plugins:

     string[] Cols = { “name “,“accounttype “};

     Object outValue;

            var fieldsMisssing = string.Empty;

            //Do tracing for key not found exception

            foreach(string str in Cols)


                if(!entity.Attributes.TryGetValue(str, out outValue))


                    fieldsMisssing += str + “,”;




            fieldsMisssing = fieldsMisssing.TrimEnd(‘,’);


            if (fieldsMisssing != string.Empty)


                tracingService.Trace(“Following keys were not found: “ + fieldsMisssing);



The result is I have a log in my Plugin trace whenever there are missing keys (Under Settings-> Plug-in Trace logs):


Hope it helps and Happy CRMing!

{Advanced Code Tip}Creating Atomicity of a Transaction in Dynamics CRM 2015

Consider how many times you have been around in the scenario that you are doing some integration or

a batch job with Dynamics CRM and in the interim there is an exception, so you need to design rollback for your job/integrations.

With Dynamics CRM 2015, designs can be simplified way further. There was a new request type introduced with Dynamics CRM 2015: ExecuteTransactionRequest.

In the example below I have intentionally left an error and I am trying to either create a contact and account together or none.

Exception scenario:

using (var service = new OrganizationService(connection))


                ExecuteTransactionRequest request = new ExecuteTransactionRequest();

                Entity account = new Entity(“account”);

                account.Attributes[“name”] = “Transaction Test”;    

                Entity contact = new Entity(“contact”);

                contact.Attributes[“name”] = “Transaction Test Contact”;         

                CreateRequest create1 = new CreateRequest();

                create1.Target = account;

                CreateRequest create2 = new CreateRequest();

                create2.Target = contact;

                request.Requests = new OrganizationRequestCollection { create1, create2 };

                ExecuteTransactionResponse response =  (ExecuteTransactionResponse)service.Execute(request);




In this case, Even account was not created:


After Correction:

   using (var service = new OrganizationService(connection))


                ExecuteTransactionRequest request = new ExecuteTransactionRequest();

                Entity account = new Entity(“account”);

                account.Attributes[“name”] = “Transaction Test”;    

                Entity contact = new Entity(“contact”);

                contact.Attributes[“lastname”] = “Transaction Test Contact”;         

                CreateRequest create1 = new CreateRequest();

                create1.Target = account;

                CreateRequest create2 = new CreateRequest();

                create2.Target = contact;

                request.Requests = new OrganizationRequestCollection { create1, create2 };

                ExecuteTransactionResponse response =  (ExecuteTransactionResponse)service.Execute(request);


Created two of them together:



Hope it helps and Happy CRMing!