mandag den 27. juni 2011

How to import many-to-many relationships to CRM Online

I’ve had a challenge the other day.
I’ve got to import around 120 Marketing lists and 120000 contacts and accounts to CRM Online using the standard importing tool in CRM Online.
-          Import marketing lists: check
-          Import accounts and contacts related to each other: check
-          Add accounts and contacts to the imported marketing lists: ehh… shit!
You (still) can’t import relationships to CRM online using the standard import tool – only data, and 1-N relationships (or N-1 for that matter)
I found a way around this issue in the current situation where I only had a relatively limited amount of marketing lists:
I created a new entity called accountmarketinglists and related this entity tor account.
Then I created a new entity called contactmarketinglists and related this entity to contact.
Then I created two spreadsheets where accounts and marketing lists Ire referenced together (a crosstab spreadsheet) and one for contact in the same way.
Then I imported these two spreadsheets into the two new entities.
During the import of the two new spreadsheets I created a new Boolean field for each marketing list, indicating whether the corresponding account or contact should be a part of the marketing list or not.
After the import, I had all the information I needed to import accounts and contacts into the marketing lists, by using the advanced find tool in CRM Online.
When I searched for accounts by the related entity accountmarketinglists and by the Boolean field containing the same name as my marketing lists equals yes, I’ve got a long lists of accounts I’ve just added to the marketing list. This task was done 120 times (for each marketing list), and then I was finished!
It’s not a pretty solution, and it’s certainly not scalable either, but I’ve got the job done. I hope you can use this approach.

torsdag den 26. maj 2011

The good and the bad on xRM solutions on Dynamics CRM Online


One of the main reasons I love to work with the Dynamics CRM platform is the xRM capabilities. I created one of the first “real” xRM solutions based on Dynamics CRM 3.0. It was a waste management system for Copenhagen municipality.

Ever since that I have designed lots of xRM solutions for many kinds of businesses.

With the introduction of Dynamics CRM 2011 Online I often get the question: should I send my CRM system and my xRM applications into the cloud?

There is not a clear answer to this question, but I will here try to list some of my experiences.



Use the CRM Online option if:

-          You have to ramp up fast. It takes about 5 minutes to get going

-          You need easy access from the web

-          You need a compelling SLA agreement

-          You’ll have an easy and efficient login procedure by using Windows Live id

-          You only use 3rd party components that supports CRM Online

-          You’re sure that you can use the included data import tool. Actually it’s a quite good tool. If you have tried to use the previous versions of the import tool, you will be amazed with this one. But you still don’t have the advanced rule-based import options. Everything has to be prepared in file before the import can begin.

-          You can rely on limited reporting services options, using fetch-xml. Alternatively you can try the Scribe Online replication service to download a complete copy of your CRM Online data to a local SQL database.

-          You’re sure that you don’t need custom workflow steps



Use the CRM On-premise option if:

-          You want complete control over data and deployed versions of CRM

-          Users need access to more than one organization and you have additional xRM applications planned

-          You have to use 3rd party on-premise components

-          You’ll do heavy plugin coding

-          You have to do some backdoor coding or unsupported customizations that need access to the database or the actual aspx pages.

-          You want to do any database operations, optimizations or adjustments to improve your solution



Use the private cloud option if:

-          You need the best from the two worlds mentioned above

Application Lifecycle Management - can it be done? - for real?

One big challenge with the two latest versions of Dynamics CRM has been the ability to manage a highly configured CRM solution – or an xRM solution.

How would you handle the xRM application lifecycle in version 3.0 and 4.0?

How would you handle multiple contributors for your xRM solution on version 3.0 and 4.0?

How do you orchestrate standard components from 3rd party vendors along with your own integration development team, and scripting and designs from your business consultants?

Even the xRM guru – David Yack forgets to give an answer on these questions in his book on how to develop rapid applications on the CRM platform.

Now we have something in Dynamics CRM 2011 that is called solutions. Is that the answer to all our questions (read: prayers) ?


I will try to give the answer on this…

Scripting IntelliSense

When you do scripting in Visual Studio 2010. Do not forget to use the IntelliSense for Dynamics CRM 2011. It’s awesome, and helps you get started with the new api.

Forget the over-hyped CRM 2011 JavaScript Converter Tool. The IntelliSense-way  is much better and increases productivity!
Check out how to get started in the MicrosoftDynamics CRM 2011 Software Development Kit 5.0.3

CRM 2011 Code structure

Finally it is now possible to get a better structure for your code. And the best part is that it's actually REQUIRED that your code is structured in functions.

When it comes to Scripting i can recommend creating at least one file per entity. If you are even more structure-freak as I am, then go even further and create a working folder on your PC and sourcecode system per entity, and have one “main” file.

E.g. for an Account entity I have a folder called Accountcode. In this folder I have a main file called Accountfunctions.js which is my main function library that I call from the Account form. Just like a traditional interface description file (including some code - though - for convenience).



Oh yes. this is just yet another dynamics crm blog

Why another blog?
Over many years i have been taken the advantage the knowledge from many other bloggers. Now i want to share my knowledge too, and will try to focus on the latest release of Dynamics CRM and try to fill out the gap that i sometimes meet.
So in a way this is a kind of a tribute to all other bloggers on Dynamics CRM :-)