A few days ago, I was part of the key note at the Microsoft Partner Day in Sweden. Together with Malin Dandenell at Learning Point, my colleague Rickard Norström and Atefeh Sebdani at Microsoft we demoed a realistic business scenario with all the new great technology (and some more common). The scenario was that I was a salesperson and got the oppotunity to get a business if I managed to get the proposal to the customer within 5 hours. The only problem was that I was out of office my self, only with a tablet, the tech-presale (Rickard) was at the Gran Canaria, without his computer on a vacation and my boss (Malin) was home taking care of sick children.
We showed that this was totally doable with the use of modern tablets that are more than just large Angry-Birds-play-machines, but actually very slim and fully fletched windows computers than with the use of a blue-tooth keyboad and mouse are turned into a normal computer. I used a Samsung Windows 8 Pro and the only thing holding me back is that I really would want a Surface Pro but the release plan for that in Sweden has not been set yet (it can be ordered from France or the UK though).
Rickard used a Win2Go and and old Vista computer to quickl get his Windows 8 machine with built in Direct Access and all the modern applicatons he needed to quickly get up and running to be able to help me with the quote. The amazing thing was that the Win2Go actually booted quicker than Vista was to shut down.
We also used Lync for Video conferencing, word co-authoring and the Lync feature of letting someone control a program in your computer. Finally I presented the quote to the customer using Word Present Online.
We actually did use CRM aswell :), I started off with doing the meeting in tablet mode using the great Resco Mobile CRM client. I got a lot of great feedback from that, seems that many people don't know about it. I had originally planned to use Dynamics CRM a bit more than that but the demo was really tight at <20 big="big" darlings="darlings" favor="favor" for="for" have="have" in="in" kill="kill" minutes="minutes" nbsp="nbsp" p="p" picture.="picture." so="so" the="the" to="to" you="you" your="your">
My overall impression is that the new stack of products from Microsoft are not only cool but can give you a real edge on the competition by shortingen the OODA-loop. So try not to be left behind!
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se20>
"Always start with where the error is, then what the error is" I am MVP, founder and CTO at CRM-Konsulterna AB a company specializing in only Microsoft Dynamics CRM.
Monday, November 12, 2012
Sunday, November 11, 2012
SharePoint as document management storage for Dynamics CRM
First of all, to make it work properly, you are recommended to install a special addon to SharePoint called the CRM List Webpart. This makes the document lists in SharePoint get a more CRM-y look. I found a very good blog with detailed instructions on how to install it which, at least for me, worked perfectly; http://mossdevsharepoint.blogspot.se/2011/07/integrating-crm-2011-with-sharepoint.html
When this is done, you simply go into Settings-Document Management and click on the "Settings for Document Management"-button. This will start a wizard that will let you configure the integration.
It will default which entities are to be used for the integration and you are also asked for the base site URL. This site will contain all CRM documents unless you do some manual configuring (as described below) so I generally recommend that you create an empty site. It will also create one document library per entity that you have selected in this site.
The result will look something like the following:
![]() |
Document libraries created in SharePoint (left) will match the entities selected in the document management settings in CRM (right) |
If further entities requrie document management, these can be added later by re-running the wizard.
After you have selected which entities you would like to use document management for, the wizad will show you the following query:
![]() |
Folder Structure selection |
If you choose the structure based on account, a folder structure will be created in the SharePoint Document Library as follows:
![]() |
Folder structure if based on account for an account with sub-opportunities and quotes |
If, instead the structure is selected that is not based on an entity, a flatter structure will be created.
![]() |
Folder structure created if not based on an entity |
To be total just, no object specific document folders are actually created in this step. This is something that is done the first time you open the documents tab for the object (ex. the account "A Store").
So to give a quick review, the following can be concluded:
- Hierarchical structure is to be selected if documents are to be navigated to with SharePoint as the flat structure makes it very hard to understand which folder belongs to which place.
- When you reparent something in CRM, for instance if the opportunity was created towards the wrong company in a corporate hierachy and you reparent the opportunity. This will not trigger any changes in SharePoint which is ok if the flat structure is used but not so good if the hierarchical structure is used as the opportunity documents will be stored under the wrong account.
- The flat structure gives a clearer division of document types. For instance all Quote documents will be stored in a separate document library and all documents related directly to accounts in another.
- With the hierarchical structure, most documents will be stored in the account document library which for larger installations would incurr large amounts of documents. This will make it more diffucult to use.
You can also connect your CRM objects manually to a specific folder/document library, this enables you to create a more logical structure in SharePoin, like one site per customer, and then manually connect each of these site's document libraries to the corresponding account in CRM. The problem with this is that you have to follow the following steps to do it (example for a customer setup)
- Create the account in CRM
- Create the customer site in SharePoint
- Copy the right part of the URL from the document library in SharePoint.
- Add a new document connecion in CRM and past the document library from (3) into the field.
Another perspective that is important to remember that the security (privilages) for the document libraries are not replicated from CRM to SharePoint. SharePoint has a more traditional top-to-bottom security architecture and the security architecture of CRM is a lot more complicated and it is very complicated to try to replicate the privilages for a specific object in CRM to the corresponding folder in SharePoint. This is due to the fact that the CRM security architeture is dependent on both owner (user or team) and sharing that have been made. For instance adding or removing a person from a team would requrie you to check all ownerships and sharings for that team in order to mimic the security settings. The recommended way of handling this is to allow all people in a group to have access to all documents in SharePoint and then remove access (inheritance) for the folders that require special permissions. It requires special handling and would be very cumbersome for large organizations.
My final conclusions are hence that the use of SharePoint as a document storage tool for CRM greatly enhances the document management funtionality of Dynamics CRM but it has not been designed to enable logical use of the documents from a SharePoint perspective. The security aspect is also somethnig that will reduce the way it can be used. I would also recommend that the documents are to be accessed mainly from CRM and only in very special cases from SharePoint.
I am not aware of any third party addon that increases this functionality, if you do, please leave a comment!
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Thursday, November 01, 2012
CRM Gamified
Getting users, especially salespeople, to really use the CRM system is one of the most important parts of implementing a CRM system for an organization. There are numerous examples of CRM systems with lots of great features that just have not been used by sales people which causes the data in the CRM system to be incomplete and hence not very usable.
I am a big fan of computer games, currently Battlefield 3, and one thing many computer games excel in are that they are really good at user adoption, it is really the basis of it all. Without it, they just wouldn't sell. There are ongoing trends in the business to "gameify" business applications to make them more fun to use and hence makes user adoption a lot better since you are makeing users really want to use the CRM-system.
One of my fellow MVP:s, Pablo Peralta, has been part of bringing forth a great new product, called CRM Gamified which brings some of the principles used in computer gaming to Microsoft Dynamics CRM. Let your sales people compete in getting point for different task in the CRM system and have dashboards showing the leaderboard. So, do have a long a deep look at this addon. It could litteraly change the way you do CRM.
http://crmgamified.com/
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
I am a big fan of computer games, currently Battlefield 3, and one thing many computer games excel in are that they are really good at user adoption, it is really the basis of it all. Without it, they just wouldn't sell. There are ongoing trends in the business to "gameify" business applications to make them more fun to use and hence makes user adoption a lot better since you are makeing users really want to use the CRM-system.
One of my fellow MVP:s, Pablo Peralta, has been part of bringing forth a great new product, called CRM Gamified which brings some of the principles used in computer gaming to Microsoft Dynamics CRM. Let your sales people compete in getting point for different task in the CRM system and have dashboards showing the leaderboard. So, do have a long a deep look at this addon. It could litteraly change the way you do CRM.
http://crmgamified.com/
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Wednesday, October 24, 2012
Techie AW #2 in Stockholm
As I mentioned earlier, we had a CRM Techie AW at an hotel in Stockholm. It is now time again, so if you are a programmer, application consultant, architect or in some other manner work with Dynamics CRM from a technical perspective, do attend.
Last time we had some very interesting discussions regarding managed and unmanaged solutions. This time we are going to discuss supported and unsupported customizations and solutions. Which is a subject that I feel is very interersting and that there are many aspects of it that can be discussed. I previously this year wrote a posting on the subject, which you can find here: http://gustafwesterlund.blogspot.se/2012/06/unsupported-customizations.html
It will be located at the same hotel as last time, in other words Hotel Anglais next to Stureplan in Central Stockholm.
Further reading (in Swedish) and attendance submission can be found here: http://bit.ly/TechieAfterWork
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Last time we had some very interesting discussions regarding managed and unmanaged solutions. This time we are going to discuss supported and unsupported customizations and solutions. Which is a subject that I feel is very interersting and that there are many aspects of it that can be discussed. I previously this year wrote a posting on the subject, which you can find here: http://gustafwesterlund.blogspot.se/2012/06/unsupported-customizations.html
It will be located at the same hotel as last time, in other words Hotel Anglais next to Stureplan in Central Stockholm.
Further reading (in Swedish) and attendance submission can be found here: http://bit.ly/TechieAfterWork
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Monday, October 22, 2012
Creating quotes in word
I really love CRM but as with all things you love, there are also areas where there are areas of improvement. One of these areas concerning Dynamics CRM is the functionality to create quotes by sending CRM data to a word document by using the mail merge functionality of word. Until Microsoft have fixed this, there are a few good options.
The basic functionality really consists of two parts. The first part is being able to create a document without being a programmer. The built in functionality of Dynamics CRM requires you to open the document press Alt-F9 to see the "backend" of the document and then be really savvy with Word template programming to make it work for you. The basic problem with it is handling subtables, like quote rows in a quote. As the data being sent from CRM to word is a large table with one row for each of the detail rows. The problems with this are:
- You cannot have two sub-tables
- As the word for-each functionality works in such a way that it loops through all the rows and when the cursor points to the row after the last, it will leave the for-each-loop. The header data is copies as fields to all rows. This means that you cannot, using the normal logic of a template, have a template that first shows all quote rows and then the total after the table, as the latter comes from the quote header. Microsoft have solved this by some rather intricate programming of the template that makes it almost unmodifiable for normal user and programmers not used to advanced word template programming.
I have tried one product and know of another that I have not had the chance to try yet, that try to rectify this.
The first one is DocuementCorePack from MSCRM-Addons in Austria. It has a very CRM-like addon to Word where you easily can insert the fields you like from the entities and related entities. It also has special logic for handling sub-tables and to save the document back to CRM or SharePoint. The installation program is also exemplary! It is very easy to install. They also have some additional tools that jack into to this program like the AutoMerge. The company behind it is a very stable company that has been making addons to Dynamics CRM since version 1 and they have even helped me make special adaptations to the program when I have had customers requesting this.
The second one is QuickBix Document Suite from the Swedish company QuickBix. I havn't had the chance to try it yet but they have shown it to me and it has some very good features. They also have some impressive customer references. I have tried once to install it which I was sad to say was unsuccessful. This might however have been fixed or I might just have been unlucky. The people behind the company are very friendly and are always eager to help.
The prices vary for these products and I suggest going to their web sites or send them an email to find out the details.
In conclusion I never demo the built in functionality for generating quotes to word in CRM and I really hope Microsoft will fix this as it is rather fundamental to sales force automation (SFA). Until that time, and maybe also after, there are some very good alternatives at reasonable prices so do check them out!
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
The basic functionality really consists of two parts. The first part is being able to create a document without being a programmer. The built in functionality of Dynamics CRM requires you to open the document press Alt-F9 to see the "backend" of the document and then be really savvy with Word template programming to make it work for you. The basic problem with it is handling subtables, like quote rows in a quote. As the data being sent from CRM to word is a large table with one row for each of the detail rows. The problems with this are:
- You cannot have two sub-tables
- As the word for-each functionality works in such a way that it loops through all the rows and when the cursor points to the row after the last, it will leave the for-each-loop. The header data is copies as fields to all rows. This means that you cannot, using the normal logic of a template, have a template that first shows all quote rows and then the total after the table, as the latter comes from the quote header. Microsoft have solved this by some rather intricate programming of the template that makes it almost unmodifiable for normal user and programmers not used to advanced word template programming.

The first one is DocuementCorePack from MSCRM-Addons in Austria. It has a very CRM-like addon to Word where you easily can insert the fields you like from the entities and related entities. It also has special logic for handling sub-tables and to save the document back to CRM or SharePoint. The installation program is also exemplary! It is very easy to install. They also have some additional tools that jack into to this program like the AutoMerge. The company behind it is a very stable company that has been making addons to Dynamics CRM since version 1 and they have even helped me make special adaptations to the program when I have had customers requesting this.
The second one is QuickBix Document Suite from the Swedish company QuickBix. I havn't had the chance to try it yet but they have shown it to me and it has some very good features. They also have some impressive customer references. I have tried once to install it which I was sad to say was unsuccessful. This might however have been fixed or I might just have been unlucky. The people behind the company are very friendly and are always eager to help.
The prices vary for these products and I suggest going to their web sites or send them an email to find out the details.
In conclusion I never demo the built in functionality for generating quotes to word in CRM and I really hope Microsoft will fix this as it is rather fundamental to sales force automation (SFA). Until that time, and maybe also after, there are some very good alternatives at reasonable prices so do check them out!
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Wednesday, October 17, 2012
MVP Book here + syndication of blog
Today I received my two copies of the CRM Field Guide! A real monster book written by no less than 19 of my fellow CRM MVP:s. It is truly a great book with indepth chapters regarding many of the areas you touch when working as a consultant with Dynamics CRM. It is also very personal with lot of tips and tricks by some people who really know what they are talking about. If you havn't already gotten a copy, hardcopy or e-book, head over to their site and buy one right now. http://crmfieldguide.com/. The e-book is a real help in the field, when the brick-sized hardcopy might be a bit cumbersome, but nothing meets the feel of a real book. (yes, I was once a publishing editor and have a real fetish for real books :)
Today this blog was also officially syndicated by Microsoft Dynamics Community blogs, as you can see here: https://community.dynamics.com/product/crm/crmtechnical/b/gustafscrmblog/default.aspx or you might actually be reading it at this new location.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Today this blog was also officially syndicated by Microsoft Dynamics Community blogs, as you can see here: https://community.dynamics.com/product/crm/crmtechnical/b/gustafscrmblog/default.aspx or you might actually be reading it at this new location.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Friday, September 28, 2012
CRM Techie AW
Creating a CRM community in Sweden has long been a goal of mine why I am very happy to report that we the first community meeting finally has taken place. In hotel Anglais next to Stureplan in Stockholm, we had a CRM Techie After Work.
I was, together with Peter Björkmarker and Allan Varcoe responsible for the content of this first meeting. Peter and Allan took opposing sides in the use of managed solutions in customer projects (not ISV-solutions) and after the inital walkthrough there was a general discussion on the subject which I had the privilage of moderating. Microsoft backed up the event by the presence of Fredrik Wolbe.
I found the discussions very interesting and most of all liked the open attitude of sharing the experience and knowledge that we all have.
We also had some discussions on what to discuss next time we meet, and Fredrik Wolbe mentioned that he might get some product specialists to show us the new HTML5 GUI that most of us have only seen in screen shots. This was liked by most so Fredrik promised to try to make it happen.
The event was attended by about 20 people from different companies. Let's hope there is even more people attending next time! I will be sure to post some info as soon as it has been decided.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Tip! There are rumours out of an extraordinary book coming out very soon! Keep you eyes and ears open!
I was, together with Peter Björkmarker and Allan Varcoe responsible for the content of this first meeting. Peter and Allan took opposing sides in the use of managed solutions in customer projects (not ISV-solutions) and after the inital walkthrough there was a general discussion on the subject which I had the privilage of moderating. Microsoft backed up the event by the presence of Fredrik Wolbe.
I found the discussions very interesting and most of all liked the open attitude of sharing the experience and knowledge that we all have.
We also had some discussions on what to discuss next time we meet, and Fredrik Wolbe mentioned that he might get some product specialists to show us the new HTML5 GUI that most of us have only seen in screen shots. This was liked by most so Fredrik promised to try to make it happen.
The event was attended by about 20 people from different companies. Let's hope there is even more people attending next time! I will be sure to post some info as soon as it has been decided.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Tip! There are rumours out of an extraordinary book coming out very soon! Keep you eyes and ears open!
Tuesday, September 25, 2012
Content thieves
There are many bloggers in the CRM community and in just the latest few months, several new CRM blogs have been started here in Sweden. I think this is great as experience sharing will make us all wealthier in knowledge and increase our edge on the competition from other inferior CRM-systems (none mentioned, especially not SF).
However, there are also several shady companies around that instead of creating their own content, blatently steal content from others. Probably because they do not have the competence themselves to write anything original. I think this is sad and it makes me angry as many of the bloggers around share their knowledge in their free time without any profit interest. This kind of behavior does risk some of these people to stop sharing which would be bad for us all, but great for the competition.
Some of these content theives, are not only lazy, they are also rather dim why a fellow blogger Jukka Niiranen, who was victim of one of these leeches, decided to play them a little prank. Do read about it and laugh!
http://niiranen.eu/crm/2012/09/getting-back-at-blog-content-thieves/
By the way, I write all my content my self, and if I am copy-pasting anything I always try to be very strict with the original source. If you have any comments on this, or feel that I have not given you enough credit for your work, please contact me.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
However, there are also several shady companies around that instead of creating their own content, blatently steal content from others. Probably because they do not have the competence themselves to write anything original. I think this is sad and it makes me angry as many of the bloggers around share their knowledge in their free time without any profit interest. This kind of behavior does risk some of these people to stop sharing which would be bad for us all, but great for the competition.
Some of these content theives, are not only lazy, they are also rather dim why a fellow blogger Jukka Niiranen, who was victim of one of these leeches, decided to play them a little prank. Do read about it and laugh!
http://niiranen.eu/crm/2012/09/getting-back-at-blog-content-thieves/
By the way, I write all my content my self, and if I am copy-pasting anything I always try to be very strict with the original source. If you have any comments on this, or feel that I have not given you enough credit for your work, please contact me.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Thursday, September 13, 2012
Performance analysis of Dynamics CRM
Today I was helping a customer out that have experienced rather bad performance of the CRM system.
They described the performance as being bad in Europe (the server being hosted in Sweden), it was quite obvious that the problems do not originate from network latency, which can be an issue if performacne problems are experienced from the other side of the world (ex. from New Zealand with servers in Europe).
One of the most common problems with performance in CRM systems is bad SQL performance. In large installations, this is usually due to bad SAN (Storage Area Network) configurations from a SQL perspective. As CRM is meta-data driven, it is quite database heavy since it cannot be fully database optimized like custom made ASP.NET applications. Hence good database performance is vital to a rapid CRM.
This is also evident in the large scale performance test that Microsoft have done with 150 000 concurrent users, where the setup was based on High-performance SSD:s in RAID configuration to enable the scale of the test. Read more about it here: http://www.consultcrm.co.uk/sites/default/files/microsoft_dynamics_crm_2011_performance_and_scalability_with_intel.pdf
A very good tool to use for benchmarking the disk performance on a server is SQLIO which can be downloaded for free at Microsofts site.
The two parameters to look for are IO and throughput. Do bare in mind that many SAN:s have caching which can make results strange, so it can be a good idea to try to increase the test file size. Also make sure to put the file on the drive which you wish to test.
I did some test on some of my environments which you can use to benchmark your system setups:
GW VPC - Microsoft Dynamics CRM Demo environment run with 6 GB Memory on my E:
GW LAB - Our development environment, virtualized with RAID drive (4x150 GB 15k rpm)
GW C - Intel SSD 3:rd Generation 250 GB
GW E - Intel SSD 2:nd Generaton 150 GB
SSD performance in this case blows the roof off the RAID and the loss of performance is rather substantial inside the VPC, but the read performance is still 5-7 times that of the RAID.
An interesting aspect of this is the GW LAB, our development machine run on RAID, it has almost 3 to 4 times the IO and throughput in writes compared to reads, which is not the fact for the SSD-based disks. This is probably due to some write caching functionality of the RAID.
My recommendation based on this is that if you need high performance on you CRM, use SSD:s in your setup. Do use server-grade SSD:s and used at least RAID:s with 2 disks redundancy, but it will give your CRM a rather large performance boost compared to normal grade SAN.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
They described the performance as being bad in Europe (the server being hosted in Sweden), it was quite obvious that the problems do not originate from network latency, which can be an issue if performacne problems are experienced from the other side of the world (ex. from New Zealand with servers in Europe).
One of the most common problems with performance in CRM systems is bad SQL performance. In large installations, this is usually due to bad SAN (Storage Area Network) configurations from a SQL perspective. As CRM is meta-data driven, it is quite database heavy since it cannot be fully database optimized like custom made ASP.NET applications. Hence good database performance is vital to a rapid CRM.
This is also evident in the large scale performance test that Microsoft have done with 150 000 concurrent users, where the setup was based on High-performance SSD:s in RAID configuration to enable the scale of the test. Read more about it here: http://www.consultcrm.co.uk/sites/default/files/microsoft_dynamics_crm_2011_performance_and_scalability_with_intel.pdf
A very good tool to use for benchmarking the disk performance on a server is SQLIO which can be downloaded for free at Microsofts site.
The two parameters to look for are IO and throughput. Do bare in mind that many SAN:s have caching which can make results strange, so it can be a good idea to try to increase the test file size. Also make sure to put the file on the drive which you wish to test.
I did some test on some of my environments which you can use to benchmark your system setups:
GW VPC - Microsoft Dynamics CRM Demo environment run with 6 GB Memory on my E:
GW LAB - Our development environment, virtualized with RAID drive (4x150 GB 15k rpm)
GW C - Intel SSD 3:rd Generation 250 GB
GW E - Intel SSD 2:nd Generaton 150 GB
![]() |
IO/s |
![]() |
Throughput MB/s |
An interesting aspect of this is the GW LAB, our development machine run on RAID, it has almost 3 to 4 times the IO and throughput in writes compared to reads, which is not the fact for the SSD-based disks. This is probably due to some write caching functionality of the RAID.
My recommendation based on this is that if you need high performance on you CRM, use SSD:s in your setup. Do use server-grade SSD:s and used at least RAID:s with 2 disks redundancy, but it will give your CRM a rather large performance boost compared to normal grade SAN.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Saturday, September 01, 2012
More swedish CRM blogger
There seems to be a nice trend of lot of new CRM bloggers here in Sweden. I think this is great, mercantilism always has to give way to free trade! Even more so in the information era.
Alan Varcoe, a Dynamics CRM veteran and architect, who some of you might have noticed has left some comments here from time to time, has now started his own blog. He has written an interesting post managed and unmanaged solutions. Do check it out!
Let's hope this discussion results in some new features from Microsoft in this area, as that would be greatly appreciated!
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Alan Varcoe, a Dynamics CRM veteran and architect, who some of you might have noticed has left some comments here from time to time, has now started his own blog. He has written an interesting post managed and unmanaged solutions. Do check it out!
Let's hope this discussion results in some new features from Microsoft in this area, as that would be greatly appreciated!
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Thursday, August 09, 2012
Social Roadmap for Dynamics CRM
Today I
watched an interview on CRMSoftware.TV with David Pennington, Director of Product Marketing for
Dynamics CRM where he talks about where Microsoft is headed in terms of social
functionality.
In short this is what is mentioned:
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
In short this is what is mentioned:
The recent
updates from november 2011 added some social functionality, namely the wall
functionality in CRM and also the ability to leverage hash-tags to some extent.
Microsoft’s
focus is, as they usually do, on productivity in the sense that you should
spend more time closing business and less in computer systems, and this has
also been the guiding star when developing these new CRM features.
He also
talked about the new update coming in the end of the year with functionality to
enrich your data based on social intelligence. Brought in technology from
Inside View (http://www.insideview.com/)
to bring in data from social systems and
enrich the CRM data. Inside Views offer is to assemble social data from over 25 000
news sources and social media directly to the CRM system to give salespeople an
edge over competitors by knowing more about the customer.
They are
also adding integrations with LinkedIn which will add functionalities that
allow users to see the relationships that exists to contacts in the system. Ex A
salesperson can see that another salesperson has a connection to a potential
customer.
Also social
customer care, grab comment or similar in social media like twitter and make
cases of it.
Looking at
social from the perspective of three different categories
-
Managed
– internal social channels like for instance discussions in SharePoint
-
Semi-managed
– external social channels with a distinct precense, like SharePoint sites hosted
by a customer
-
Independent
channels like Facebook or Twitter where you mainly listen to what is going on.
Important
part of this is to be able to know what is happening so that the strategy of
the company’s marketing etc. can be adapted to this.
I look forward to seeing social media integrations in
CRM, some of it has been available in Outlook for some time now using the
Outlook social connector so from my perspective I have expected this for some
time.
How CRM
will be using Inside View is also interesting. I do now know if Microsoft have
bought full rights to their software to enable it in Dynamics CRM without extra
licensing or if it will be made available as some add-on license. Another
interesting aspect of this is how extensible it will be or if it will be a more
or less static functionality. I am personally hoping it will be very extensible
since I would expect many customers to appreciate this functionality but probably
ask for adaptions to it.
The integration
of the social media data, from Twitter and Facebook to CRM will also be
interesting. Since the amount of data available in these sites is no less than
vast and stored in databases that are not SQL-based there might be interesting
performance issues that might arise if the filtering of this functionality is
not set correctly. I also hope that this functionality will be extensible as I
would expect many customers to look for extensions or changes to this. Being a
bit cynical, I don’t expect there will be though.
The three
different categorizations of social channels seem logical, however, he didn’t
really mention anything on how they were to manage the first two in CRM, if at
all. Perhaps that would signal that there would be some adaptable functionality
where you can plug-in any social adapter of your choice where you could also
develop your own. But that is pure speculation, so we will have to see.
In general
I welcome all of these new functions as they do bring really good value to the
customers and let us just hope that our competitors are a few steps behind.
Gustaf WesterlundMVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Friday, July 06, 2012
Rickard's blog
My colleague Rickard Norström, who is a very skilled Dynamics CRM developer and consultant has finally started his own blog. Make sure you add it as he has many interesting perspectives on Dynamics CRM and consultancy around it.
Rickard Norström is my closest colleague and is involved with some of the more major installations of Dynamics CRM as well as iScala CRM implementations. He has worked with Dynamics CRM for about 2 years now in a variety of versions and has also held several courses, both for end uses, powerusers and other CRM consultants. He is very skilled in development, installations and configurations of Dynamics CRM, for instance he is currenlty working with an upgrade of a webfarm based CRM system that has some interesting issues. Make sure not to miss what he is writing!
You will find his blog at the following url:
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Rickard Norström is my closest colleague and is involved with some of the more major installations of Dynamics CRM as well as iScala CRM implementations. He has worked with Dynamics CRM for about 2 years now in a variety of versions and has also held several courses, both for end uses, powerusers and other CRM consultants. He is very skilled in development, installations and configurations of Dynamics CRM, for instance he is currenlty working with an upgrade of a webfarm based CRM system that has some interesting issues. Make sure not to miss what he is writing!
You will find his blog at the following url:
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Sunday, July 01, 2012
MVP Award

I also hope this will give me further contacts and insights into what is going on within Microsoft despite the fact that some facts received in the MVP program are under strict NDA.
You can find my MVP profile here: https://mvp.support.microsoft.com/profile=C23EEC24-1A5A-41F1-9B53-A5C2C2B658EE
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se
Monday, June 25, 2012
Migration strategies
Migrations are often complicated and not very sexy, all the work you put into it, configuration, scripts and code will be more or less useless after the migration has been done. However, choosing the right strategy is essential for a good CRM implementation. I will go through some of the strategies that are common and discuss some of the advantages and disadvantages.
Greenfield
Greenfield migrations are not really migrations, but rather the lack of migration. This means that the system will be set up without any migrated data, no accounts, no contacts etc. The idea is then that all the users will create data in the new system as the feel the need for it.
This is often used for start-ups when there is no or very little data. It can also be used when the data quality is very bad and trying to filter out the "good" data is just to complicated. Normal problems can be large numbers of duplicates, errors in the data itself, like "." and "," being inserted instead of real data just to make the forms savable.
Advantages of Greenfield migrations is that the system will be up and running in no time. Migrations might otherwise take considerable amounts of time. This also mean that the cost of Greenfield migrations are very low. Do note however, that there is need for some general system configuration, like creating users, setting up queues.
The disadvantage is that the users do not feel that the new system is helping them out and they have to reinsert a lot of data which can create considerable amounts of annoyance with the new system. This can in the long term increase the bad-will towards the system, lowering usage which can jeopardize the entire CRM investment.
Standard import
The standard import functionality of Dynamics CRM is reasonably powerful and can usually be used for importing simpler data. It is based on data being stored in csv-files or excel as xml-files. The first of these being a bit problematic as it is rather old and dependant on the regional setting. For instance, the value separator in Sweden is semicolon ";" but in USA comma ",". It is also common that the csv-files contain data that risk messing up the file syntax, breaking the imports. In general the excel-as-xml format is to be preferred as it also contains field names and proper matching.
This functionality has greatly been enhanced in CRM 2011 compared to CRM 4. For instance, it now support uploading of zip-files containing xml-data files with relations between the files. It can even handle multiple relations that otherwise would take three import runs, all in one go. For instance if you have data with accounts containing primary contact and all contacts also contain parent customer.
The limitations of standard import is that it cannot really handle large amounts of data as the maximum upload size is 8 MB (can be changed in an onpremise installation). Complicated data structures are also hard to handle and it is rather time consuming to run it as there is no scripting capabilities. The lack of scripting also makes the ordering of the different imports in a zip more or less impossible. There is also no support for logic like "If the contacts email adress exists, update the data of that contact, otherwise create a new contact" which is often very useful when importing data from multiple sources. It is also hard to do testruns of the migration without a lot of manual steps involved. There is some error handling but it is very rudimentary and cannot handle more complex logic.
The advantages of standard import is mainly that it requires no extra software and it is relativly easy as the options are limited.
Third party products
One of the more powerful options when doing migrations, is using third party products, like Scribe, Import Manager. These include lots of options that the standard import doesn't like:
The main drawbacks are the licensing fees required. Do note that some of these companies have special migration licenses which are not the same as the full license used for integrations. These products are also a bit more complicated due to the larger sets of options available. Hence it also takes some time to learn the product why my recommendation is to choose one and stick with it.
Custom migration program
The most advanced for of migrations need to be done by using custom code. There are really very few limitations to what can be done when writing custom programs that migrated data, it is more up to the skills of the developer and the time available.
Some of the advantages:
Migrations are often complex and it is not until you have worked with the data a bit that you start to get a feel for how problematic it is going to be. Hence I usually never give fixed prices on migrations as it would either be inflated or put me at risk. It is also often the case that customers do not realize the complexity of migrations, especially smaller customers it is therefor essential to involve them a lot in the work.
De-scoping the migration is also very important. Usually not all data is required, especially if the old system can be maintained with read-only access. Try to de-scope in width (which entities are really required) and in depth (how old data is required).
Data quality can also be a problem so try to evaluate this early on. Examples are names being stored both as "First name Last name" and "Last name, First name" or fill-in data like ".", "," or "-" that has been entered into required fields to make the forms savable.
Large migrations might required delta migrations, when migrations are run in two steps, first the major migration, then after it has been completed, a smaller to migrate the data that was changed during the main migration. This will put additional demands on migration scripts and/or code so try to avoid it if possible.
Sometimes the new system required data that doesn't exist and hence has to be created. I usually refer to this as migration of non-existent data. It is easy to forget if your perspective is to map the data from the old system without looking at which data is required in the new.
Migrations between two systems that with very different data models is theoretically complicated. There might, for instance exist data in several places that need to fit into one. Data might need to be restructured in complex ways. In depth knowledge of source and target data model is essential and the proper skills required to understand complex data modelling is also a strong recommendation.
I hope I have shed some light on this subject which can be discussed at length.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Greenfield
Greenfield migrations are not really migrations, but rather the lack of migration. This means that the system will be set up without any migrated data, no accounts, no contacts etc. The idea is then that all the users will create data in the new system as the feel the need for it.
This is often used for start-ups when there is no or very little data. It can also be used when the data quality is very bad and trying to filter out the "good" data is just to complicated. Normal problems can be large numbers of duplicates, errors in the data itself, like "." and "," being inserted instead of real data just to make the forms savable.
Advantages of Greenfield migrations is that the system will be up and running in no time. Migrations might otherwise take considerable amounts of time. This also mean that the cost of Greenfield migrations are very low. Do note however, that there is need for some general system configuration, like creating users, setting up queues.
The disadvantage is that the users do not feel that the new system is helping them out and they have to reinsert a lot of data which can create considerable amounts of annoyance with the new system. This can in the long term increase the bad-will towards the system, lowering usage which can jeopardize the entire CRM investment.
Standard import

This functionality has greatly been enhanced in CRM 2011 compared to CRM 4. For instance, it now support uploading of zip-files containing xml-data files with relations between the files. It can even handle multiple relations that otherwise would take three import runs, all in one go. For instance if you have data with accounts containing primary contact and all contacts also contain parent customer.
The limitations of standard import is that it cannot really handle large amounts of data as the maximum upload size is 8 MB (can be changed in an onpremise installation). Complicated data structures are also hard to handle and it is rather time consuming to run it as there is no scripting capabilities. The lack of scripting also makes the ordering of the different imports in a zip more or less impossible. There is also no support for logic like "If the contacts email adress exists, update the data of that contact, otherwise create a new contact" which is often very useful when importing data from multiple sources. It is also hard to do testruns of the migration without a lot of manual steps involved. There is some error handling but it is very rudimentary and cannot handle more complex logic.
The advantages of standard import is mainly that it requires no extra software and it is relativly easy as the options are limited.
Third party products
One of the more powerful options when doing migrations, is using third party products, like Scribe, Import Manager. These include lots of options that the standard import doesn't like:
- ODBC/OLE DB connections to a data source
- Logic to handle update or create
- Scripting - custom logic to handle some of the data conversions
- Run as service - ability to be run in the background as a service
- Reuse for integrations - these tools can also be used for integrations why the effort invested can at least partly be reused.
- Support for custom addons
- More powerful - has support for multi threading and large data sources
- Easier to do test migrations as all steps can be set up in a run-script, less manual labour.
- Can handle more complex data
- Better error handling
The main drawbacks are the licensing fees required. Do note that some of these companies have special migration licenses which are not the same as the full license used for integrations. These products are also a bit more complicated due to the larger sets of options available. Hence it also takes some time to learn the product why my recommendation is to choose one and stick with it.
Custom migration program
The most advanced for of migrations need to be done by using custom code. There are really very few limitations to what can be done when writing custom programs that migrated data, it is more up to the skills of the developer and the time available.
Some of the advantages:
- Limitations only in skills and available time and money
- Easy to do test runs
- Complicated error handling logic can be created

- Demands developers
- Time consuming - from around 100 hours to several thousand hours
Migrations are often complex and it is not until you have worked with the data a bit that you start to get a feel for how problematic it is going to be. Hence I usually never give fixed prices on migrations as it would either be inflated or put me at risk. It is also often the case that customers do not realize the complexity of migrations, especially smaller customers it is therefor essential to involve them a lot in the work.
De-scoping the migration is also very important. Usually not all data is required, especially if the old system can be maintained with read-only access. Try to de-scope in width (which entities are really required) and in depth (how old data is required).
Data quality can also be a problem so try to evaluate this early on. Examples are names being stored both as "First name Last name" and "Last name, First name" or fill-in data like ".", "," or "-" that has been entered into required fields to make the forms savable.
Large migrations might required delta migrations, when migrations are run in two steps, first the major migration, then after it has been completed, a smaller to migrate the data that was changed during the main migration. This will put additional demands on migration scripts and/or code so try to avoid it if possible.
Sometimes the new system required data that doesn't exist and hence has to be created. I usually refer to this as migration of non-existent data. It is easy to forget if your perspective is to map the data from the old system without looking at which data is required in the new.
Migrations between two systems that with very different data models is theoretically complicated. There might, for instance exist data in several places that need to fit into one. Data might need to be restructured in complex ways. In depth knowledge of source and target data model is essential and the proper skills required to understand complex data modelling is also a strong recommendation.
I hope I have shed some light on this subject which can be discussed at length.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Thursday, June 21, 2012
Unsupported customizations
Unsupported customizations are certain customizations that fall outside of what is supported by Microsoft when developing and customizing for Dynamics CRM. Several aspects of this subject can be discussed in depth and I will try to touch base on some of them.
When creating Microsoft Dynamics CRM, Microsoft realized something very important, the system will need to be customized by partners to fully fit the needs of the customers. However, customizations need to be upgradable and support update rollups and hotfixes. Previously, all upgrades would require rather large efforts in re-writing lot of the code that was custom built for the customer. However, the definition of supported and unsupported customizations and the promise from Microsoft that all supported customizations will be upgradable and updatable at least to the next version, is something that is very good and will ensure a better return of investment of the custom development made for customer and also improve partner-customer relations since paying for upgrades of already made customizations seldom improves the partner-customer relationship.
We have worked with many systems where other consultants and developers have created solutions and here are some of the more common unsupported customizations, why they will cause problems and alterntive solutions:
HTML DOM addressing and modifications
Addressing HTML DOM components directly using document.getElementById and replacing parts of the normal HTML DOM with custom components. For instance, addressing an isv-button in CRM 4.0 and disabling or removing it with javascript. Another example is replacing lookups with dropdows, for instance letting the user select contact for an opportunity.
This is very common i CRM 4.0 but is also quite common in CRM 2011. The problem with this unsupported customization is that when upgrading the system the names of the elements in the HTML DOM will probably change. This is obvious in the case of isv button addressing in CRM 4.0 since the ribbon HTML DOM element names are different. The code will hence break after an upgrade.
Developers doing these kinds of unsupported customizations are usually web developers that are used to being able to modify webpages with javascripts anyway they like and they are not familiar with the SDK and do not forsee the consequences of these unsupported customizations.
Alternative solutions are to strictly use the object model described in the SDK and only use the documented methods. Note that the SDK in CRM 2011 has been improved a lot in this perspective. It is also possible to enable and disable buttons in the ribbon with ribbon customizations. It is also possible to use small iframes with aspx-pages behind (or virtual pages created with javascript) that show custom logic and work with the CRM form using cross-frame scripting. Do note that the hosting application and the cross-framed page need to be in the same security zone in IE for it to allow this. Preferably place them on the same server.
Database modifications
Modifications to the CRM database are also some of the more common unsupported customizations that I have experienced. It can be anything from custom views to new stored procedures or even modifications to the existing procedures. Do note that creating indexes in the database is supported but not upgradable.
Developers making these kinds of customizations usually do not realize the effects that they have and might be used to and very familiar with writing T-SQL. Modifications to the existing tables and views are very hazardous since CRM is a metadata driven application meaning that the database contains metainformation on how the database looks. If the metainformation gets out of sync with the real database, you will have a very nasty problem on your hands.
Additions to the database, without any modifications, will usually work with updates to the system. However, when upgrading or redeploying the system these usually cause quite a lot of problems. It is also a general recommendation to try to keep all business logic in the same layer of the application and to not mix them between the database and higher layers (like plugins). This can sometimes not be avoided however.
So, if you do need to create some custom views or similar, create a database next to the CRM database with hosts these and use cross database addressing to work with the data.
Modifications to CRM files or additions to the CRM installation directory
As the aspx-files of CRM can be found in the CRMweb directory (or inetpub for port 80 installation) it can be tempting to modify these. In CRM 4.0, when there was no support for javascript includes, modification to the file global.js was also quite common. I have also seen systems where entire IIS virtual directories have been set up in the assembly directory of CRM. This is also unsupported.
The reason these customizations should be avoided is that any update rollup that is installed might overwrite these files and you customization might be lost. With upgrades the customization will most certainly be lost or stop working.
There are no good alternatives to these kind of modifications. Try working with Iframed custom pages using cross-frame scripting if possible. Modifications to the global.js are very hazardous since it is not very uncommon for it to be updated in normal update rollups, making any customizations to it rather hard to maintain. This is not necessary in CRM 2011 as the web resource-functionality allows for better reuse of javascript code.
Unsupported customizations are necessary anyway
If the requirement still demands unsupported customizations, and there is no good way around it, I recommned having a discussion with the customer on the effects of creating unsupported customizations in regards to upgrades and increased maintainance costs. If the still feel it is required, I recommend you getting their formal signature on a document describing it as an unsupported customzation and that the customer understands that the function might not be upgradable and that upgradecosts will be fully charged to the customer. It might feel a bit formal, but trust me, when the customer wants to upgrade, you will be happy you have the document.
Another important aspect that you need to remember when creating unsupported customizations, is that you need to take this fact into account. For instance, if addressing an HTML DOM element, make sure to handle the fact that it might not exist, and have some resonable fallback from this.
It is also essential to document each unsupported customization with extra care. I recommend a special document for this. It should include some of the following topics:
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
When creating Microsoft Dynamics CRM, Microsoft realized something very important, the system will need to be customized by partners to fully fit the needs of the customers. However, customizations need to be upgradable and support update rollups and hotfixes. Previously, all upgrades would require rather large efforts in re-writing lot of the code that was custom built for the customer. However, the definition of supported and unsupported customizations and the promise from Microsoft that all supported customizations will be upgradable and updatable at least to the next version, is something that is very good and will ensure a better return of investment of the custom development made for customer and also improve partner-customer relations since paying for upgrades of already made customizations seldom improves the partner-customer relationship.
We have worked with many systems where other consultants and developers have created solutions and here are some of the more common unsupported customizations, why they will cause problems and alterntive solutions:
HTML DOM addressing and modifications
Addressing HTML DOM components directly using document.getElementById and replacing parts of the normal HTML DOM with custom components. For instance, addressing an isv-button in CRM 4.0 and disabling or removing it with javascript. Another example is replacing lookups with dropdows, for instance letting the user select contact for an opportunity.
This is very common i CRM 4.0 but is also quite common in CRM 2011. The problem with this unsupported customization is that when upgrading the system the names of the elements in the HTML DOM will probably change. This is obvious in the case of isv button addressing in CRM 4.0 since the ribbon HTML DOM element names are different. The code will hence break after an upgrade.
Developers doing these kinds of unsupported customizations are usually web developers that are used to being able to modify webpages with javascripts anyway they like and they are not familiar with the SDK and do not forsee the consequences of these unsupported customizations.
Alternative solutions are to strictly use the object model described in the SDK and only use the documented methods. Note that the SDK in CRM 2011 has been improved a lot in this perspective. It is also possible to enable and disable buttons in the ribbon with ribbon customizations. It is also possible to use small iframes with aspx-pages behind (or virtual pages created with javascript) that show custom logic and work with the CRM form using cross-frame scripting. Do note that the hosting application and the cross-framed page need to be in the same security zone in IE for it to allow this. Preferably place them on the same server.
Database modifications
Modifications to the CRM database are also some of the more common unsupported customizations that I have experienced. It can be anything from custom views to new stored procedures or even modifications to the existing procedures. Do note that creating indexes in the database is supported but not upgradable.
Developers making these kinds of customizations usually do not realize the effects that they have and might be used to and very familiar with writing T-SQL. Modifications to the existing tables and views are very hazardous since CRM is a metadata driven application meaning that the database contains metainformation on how the database looks. If the metainformation gets out of sync with the real database, you will have a very nasty problem on your hands.
Additions to the database, without any modifications, will usually work with updates to the system. However, when upgrading or redeploying the system these usually cause quite a lot of problems. It is also a general recommendation to try to keep all business logic in the same layer of the application and to not mix them between the database and higher layers (like plugins). This can sometimes not be avoided however.
So, if you do need to create some custom views or similar, create a database next to the CRM database with hosts these and use cross database addressing to work with the data.
Modifications to CRM files or additions to the CRM installation directory
As the aspx-files of CRM can be found in the CRMweb directory (or inetpub for port 80 installation) it can be tempting to modify these. In CRM 4.0, when there was no support for javascript includes, modification to the file global.js was also quite common. I have also seen systems where entire IIS virtual directories have been set up in the assembly directory of CRM. This is also unsupported.
The reason these customizations should be avoided is that any update rollup that is installed might overwrite these files and you customization might be lost. With upgrades the customization will most certainly be lost or stop working.
There are no good alternatives to these kind of modifications. Try working with Iframed custom pages using cross-frame scripting if possible. Modifications to the global.js are very hazardous since it is not very uncommon for it to be updated in normal update rollups, making any customizations to it rather hard to maintain. This is not necessary in CRM 2011 as the web resource-functionality allows for better reuse of javascript code.
Unsupported customizations are necessary anyway
If the requirement still demands unsupported customizations, and there is no good way around it, I recommned having a discussion with the customer on the effects of creating unsupported customizations in regards to upgrades and increased maintainance costs. If the still feel it is required, I recommend you getting their formal signature on a document describing it as an unsupported customzation and that the customer understands that the function might not be upgradable and that upgradecosts will be fully charged to the customer. It might feel a bit formal, but trust me, when the customer wants to upgrade, you will be happy you have the document.
Another important aspect that you need to remember when creating unsupported customizations, is that you need to take this fact into account. For instance, if addressing an HTML DOM element, make sure to handle the fact that it might not exist, and have some resonable fallback from this.
It is also essential to document each unsupported customization with extra care. I recommend a special document for this. It should include some of the following topics:
- Description of requirement
- Technical desciption of the solution
- Why it has to be made with unsupported customizations - This is important as newer versions of CRM might enable you to rewrite this in a supported manner.
- Possible effects on an installation of an update rollup -
- Possible effects after an upgrade
- Checklist to verify the functionality.
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Tuesday, June 05, 2012
Managed or unmanaged solutions - and how to remove attributes from managed solutions
My colleague Rickard and I are working with one of our customers who have gotten managed to get themselves into a rather big mess with huge numbers of attributes on the account entity that should not really be there. If any of you ever wondered what the limitation for number of attributes in Dynamics CRM is, it is around 700 and it is not recommended to use since the system becomes very hard to work with. Proper data modelling with experienced architects is usually a good idea that pays off tenfold later, so that you do not get your self into this situation.
However, the production system at hand has several hundred attributes that were erroneous in a managed solution, and something had to be done.
The first thing you might think of trying is just to remove the attributes from the development environment, packaging a new version of the managed solution and overwriting the production environments managed solution with this new reduced solution. This will, however, not work, as solutions cannot remove attributes (they contain the state of the CRM-system, not the transactions).
After a few more ideas had been tried, we finally registered a support case with Microsoft where a very helpful technician assisted us with a solution to this, based on this very good blog posting by Gonzalo Ruiz. The latest news on this is that it seems to be working, although neither Rickard nor myself is doing the actual work.
This has also caused us to have a very in-depth discussion on if managed solutions are suitable for normal project production systems or not. I had a discussion with former Microsoft employee Peter Björkmarker who is a very skilled architect, and we came to the conclusion that managed solutions are really best suited for ISV-packages, and not so much for normal customer projects where unmanaged solution are easier to work with. This is, however, something I would be more than happy to discuss, so if you have any opinion on the subject, please leave a comment!
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
However, the production system at hand has several hundred attributes that were erroneous in a managed solution, and something had to be done.
The first thing you might think of trying is just to remove the attributes from the development environment, packaging a new version of the managed solution and overwriting the production environments managed solution with this new reduced solution. This will, however, not work, as solutions cannot remove attributes (they contain the state of the CRM-system, not the transactions).
After a few more ideas had been tried, we finally registered a support case with Microsoft where a very helpful technician assisted us with a solution to this, based on this very good blog posting by Gonzalo Ruiz. The latest news on this is that it seems to be working, although neither Rickard nor myself is doing the actual work.
This has also caused us to have a very in-depth discussion on if managed solutions are suitable for normal project production systems or not. I had a discussion with former Microsoft employee Peter Björkmarker who is a very skilled architect, and we came to the conclusion that managed solutions are really best suited for ISV-packages, and not so much for normal customer projects where unmanaged solution are easier to work with. This is, however, something I would be more than happy to discuss, so if you have any opinion on the subject, please leave a comment!
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Wednesday, May 16, 2012
Getting the CRM url for Silverlight based on the browser
When creating Silverlight applications the normal method of retrieving the url for the CRM server that will be used to connect to the REST endpoint is usually based on the CRM url that is stored in the CRM config database and retrieved based on Xrm.Page.context.getServerUrl().
There can often be problems with using this address, for instance in development environments or similar, as the address returned might not be the address used in Internet Explorer. When this happens, Internet Explorer will block the connection to the REST endpoint since it does not connect to the same URL as the webpage that hosts the Silverlight application.
During the latest course I held for some CRM consultants at Evry, we discussed this and one of the attendees, Klas Adolfsson at Evry, was very quick and wrote an alternative to the getServerUrl()-method that bases the url on the hosting browser url instead of the url context variable from CRM.
HtmlPage.Document.DocumentUri.Scheme + "://" + HtmlPage.Document.DocumentUri.Host + "/" + App.Current.Host.InitParams["orgname"];
Edit: There are some relevant comments to this posting below, please read these if this posting is of interest to you.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
There can often be problems with using this address, for instance in development environments or similar, as the address returned might not be the address used in Internet Explorer. When this happens, Internet Explorer will block the connection to the REST endpoint since it does not connect to the same URL as the webpage that hosts the Silverlight application.
During the latest course I held for some CRM consultants at Evry, we discussed this and one of the attendees, Klas Adolfsson at Evry, was very quick and wrote an alternative to the getServerUrl()-method that bases the url on the hosting browser url instead of the url context variable from CRM.
HtmlPage.Document.DocumentUri.Scheme + "://" + HtmlPage.Document.DocumentUri.Host + "/" + App.Current.Host.InitParams["orgname"];
Edit: There are some relevant comments to this posting below, please read these if this posting is of interest to you.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Thursday, April 19, 2012
Problems uploading customizations/solutions can be due to large Templates included
Today I am working with a customer who has used other CRM consultants previously. It is always interesting. In this case the QA/testing environment was not up to date and wasn't acutally working at all. All changes had been made directly in production, not really my cup of coffe, as I like things to be a bit more controlled. Just for the record, it is a CRM 4 system, but the I do believe the same issue applies to CRM 2011 aswell.
So, I wanted to get the QA-environement up to date with the production environment and started by exporting all customizations from production and attempted to import them into the QA-environment. (Backing up that enviroments customizatons first of course). Well, that didn't actually work, and I didn't get a very good error message, just some non-descript error. When looking in the event viewer I got a ASP.NET error saying that "Post size exceeded allowed limits." which of course go me thinking about the size of the customization file. Checking it, I found that it was almost 9 MB, which is above the set 8 MB ceiling. After some pondering about which parts of the customizations might be the issue, I found that the Templates part was about 7.9 MB. So, my suggestion is to keep this in mind especially when exporting customizations/solutions from production systems that Templates can be very large and might brake the maximum transfer size of 8 MB. This maximum size can be changed, but that is another issue.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
So, I wanted to get the QA-environement up to date with the production environment and started by exporting all customizations from production and attempted to import them into the QA-environment. (Backing up that enviroments customizatons first of course). Well, that didn't actually work, and I didn't get a very good error message, just some non-descript error. When looking in the event viewer I got a ASP.NET error saying that "Post size exceeded allowed limits." which of course go me thinking about the size of the customization file. Checking it, I found that it was almost 9 MB, which is above the set 8 MB ceiling. After some pondering about which parts of the customizations might be the issue, I found that the Templates part was about 7.9 MB. So, my suggestion is to keep this in mind especially when exporting customizations/solutions from production systems that Templates can be very large and might brake the maximum transfer size of 8 MB. This maximum size can be changed, but that is another issue.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Wednesday, April 04, 2012
Swedish IRS hacked - shows glitch in responsibilies of online services for government agencies
There is currently rather a lot of media in Sweden about a computer system hosted by a larger Software Integrator outsourced by the Swedish IRS. This system was hacked and about 9000 client accounts were compromised. The discussion in the media is if this a government agency really can delegate this kind of responsibility to a third party or if there will always be some fundamental responsiblity for maintaining the security at the government agency? The security experts and even the Swedish Secretary of IT, Anna-Karin Hatt, indicated that this kind of responsibility could not be delegated.
This question is very relevant in the case of CRM systems in general and Microsoft Dynamics CRM in particular. It would then seem more or less impossible from an government agency CIO perspective to use any kind of cloud based service for line of business systems like CRM/xRM as this would imply that it is impossible to fully maintain the control required over the information in the system. This is no problem for us working with Dynamics CRM as it can be deployed on-premise, but bad news for anyone looking to work with SalesForce.com or any other pure cloud based service as they cannot be used in such conditions.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
This question is very relevant in the case of CRM systems in general and Microsoft Dynamics CRM in particular. It would then seem more or less impossible from an government agency CIO perspective to use any kind of cloud based service for line of business systems like CRM/xRM as this would imply that it is impossible to fully maintain the control required over the information in the system. This is no problem for us working with Dynamics CRM as it can be deployed on-premise, but bad news for anyone looking to work with SalesForce.com or any other pure cloud based service as they cannot be used in such conditions.
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Workflow activities in CRM Online!
Custom workflow activities are one of my favorite extension points of CRM. The power workflows gives the customers are great as they can easily change the content of outgoing emails, todos etc. With the ability of custom workflows I can connect the workflow engine to anything in the world, from credit rating checks, integrations to other systems or just adding a bit more complex logic than what the standard activites include.
One of the major drawbacks of the current version of CRM-Online (as of march 2012) in comparisson to On-premise is from my perspective that custom workflow activies cannot be deployed in CRM-Online. I asked developer evangelist at Microsoft Sweden, André Henriksson about this and his comment was that it was probably due to the fact that the workflow foundation team didn't support sandboxing of custom workflow activities. At SharePoint Exchange Forum I had the oppotunity to discuss this with SharePoint MVP Eric Shupps and he mentioned that in SharePoint there was full support for custom workflows. This made me a bit puzzled since this implied that the SharePoint team had managed to create a workaround for the lack of isolation for custom workflow activities that the CRM team hadn't.
However, in the upcoming R8, release for Dynamics CRM 2011, Microsoft have annonced (http://crmpublish.blob.core.windows.net/docs/ReleasePreviewGuide.pdf) that there will be support for custom workflow activities in CRM Online. This is great news, but as the functionality will be based on sandboxing there might still be limitations to what can be done within the sandbox, for instance on which external connections are allowed. This remains to be seen, but the news of support custom workflow activities in CRM Online is still something I have waited for a long time!
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
One of the major drawbacks of the current version of CRM-Online (as of march 2012) in comparisson to On-premise is from my perspective that custom workflow activies cannot be deployed in CRM-Online. I asked developer evangelist at Microsoft Sweden, André Henriksson about this and his comment was that it was probably due to the fact that the workflow foundation team didn't support sandboxing of custom workflow activities. At SharePoint Exchange Forum I had the oppotunity to discuss this with SharePoint MVP Eric Shupps and he mentioned that in SharePoint there was full support for custom workflows. This made me a bit puzzled since this implied that the SharePoint team had managed to create a workaround for the lack of isolation for custom workflow activities that the CRM team hadn't.
However, in the upcoming R8, release for Dynamics CRM 2011, Microsoft have annonced (http://crmpublish.blob.core.windows.net/docs/ReleasePreviewGuide.pdf) that there will be support for custom workflow activities in CRM Online. This is great news, but as the functionality will be based on sandboxing there might still be limitations to what can be done within the sandbox, for instance on which external connections are allowed. This remains to be seen, but the news of support custom workflow activities in CRM Online is still something I have waited for a long time!
Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se
Subscribe to:
Posts (Atom)