SOAP is a great thing, not only does it get you clean, but it is also the foundation for most modern webservice communication. It is supposed to be platform independent.
A good thought but does, however, seem to have it's limitation. To be able to thoroughly understand the communication between the client and webservice a good program is needed that can help you study how the web service works and how the SOAP-messages are sent and received.
When working in a .NET environment, a .NET based client is very advantageous and a business partner of mine at the company Lemontree, Oskar Mattsson, suggested a very good application. I havn't had time to try it out fully yet, but it is also a GotDotNet-project so you can also read the code of how it is doing it's calls.
The name of the program is WebServiceStudio 2.0 and you can download it here:
here
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
"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.
Friday, November 30, 2007
Thursday, November 29, 2007
Fake lookups = unsupported
My colleague Daniel Westerblom at WM-Data asked my a question concerning the fake lookups that I have referenced bellow and that I know are commonly used by many partners. The question was if these customizations are supported.
When I was at convergence I asked this explicit question to, I think it was, Clint Warriner (CRM Escalation Engineer at Microsoft Support) and he gave me confirmation on what I had suspected, that these customizations are not supported. They fall under the last point concerning unsupported customizations described in the SDK:
"The use of custom HttpModules to inject HTML/DHTML into the Microsoft CRM Forms."
Since the HTML DOM is modified, this is not supported.
The reason for this is most probably that Microsoft might choose to change this in future releases of CRM (for instance CRM 4.0) and might also have internal scripting references to objects they expect to be there according to the standard HTML DOM.
I don't know if these fake lookups will upgrade from CRM 3.0 to 4.0 without problems. If you have any experience of it, please let me know.
If you have any comments on this subject, please feel free to comment bellow. I always publish comments that concern the subject and are not directly offensive. (I have activeted moderation on comments just to avoid comment spamming).
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
When I was at convergence I asked this explicit question to, I think it was, Clint Warriner (CRM Escalation Engineer at Microsoft Support) and he gave me confirmation on what I had suspected, that these customizations are not supported. They fall under the last point concerning unsupported customizations described in the SDK:
"The use of custom HttpModules to inject HTML/DHTML into the Microsoft CRM Forms."
Since the HTML DOM is modified, this is not supported.
The reason for this is most probably that Microsoft might choose to change this in future releases of CRM (for instance CRM 4.0) and might also have internal scripting references to objects they expect to be there according to the standard HTML DOM.
I don't know if these fake lookups will upgrade from CRM 3.0 to 4.0 without problems. If you have any experience of it, please let me know.
If you have any comments on this subject, please feel free to comment bellow. I always publish comments that concern the subject and are not directly offensive. (I have activeted moderation on comments just to avoid comment spamming).
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
Problems consuming webservices when developing locally
Usually I develop on a CRM server but sometimes, when a larger piece of CRM-independent part needs to be developed, I develop on my local machine.
Presently I am working in an integration project with an integration engine and needed to consume one of it's webservices. I did so and I added some code to handle it (intellisense working fine) but when I tried to run it, it crashed on the constructor or the service class with the following error:
System.IO.FileNotFoundException: File or assembly name gvy6umsk.dll, or one
of its dependencies, was not found.
There was also a reference to the Windows\Temp-directory. The filename is obviously some temporary filename for the proxy-object.
After checking the web a bit, I found the error to be caused by the fact that the user running the software, did not have read/write access to the c:\windows\temp directory. I fixed it and the program ran like it should!
So, if you are in the same situation, just fix the right for the windows\temp directory and you should be fine.
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
Presently I am working in an integration project with an integration engine and needed to consume one of it's webservices. I did so and I added some code to handle it (intellisense working fine) but when I tried to run it, it crashed on the constructor or the service class with the following error:
System.IO.FileNotFoundException: File or assembly name gvy6umsk.dll, or one
of its dependencies, was not found.
There was also a reference to the Windows\Temp-directory. The filename is obviously some temporary filename for the proxy-object.
After checking the web a bit, I found the error to be caused by the fact that the user running the software, did not have read/write access to the c:\windows\temp directory. I fixed it and the program ran like it should!
So, if you are in the same situation, just fix the right for the windows\temp directory and you should be fine.
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
Friday, November 23, 2007
Great solution concerning javascript include files
Michael Höhne of Germany is a very resourceful CRM MVP and has just published a great posting on how to, in a simple and good manner create include files for javascript in a supported way. So, with great applause from me and hopefully the rest of the CRM community, give it up for Michael! Here is the link:
http://www.stunnware.com/crm2/topic.aspx?id=JS18
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
http://www.stunnware.com/crm2/topic.aspx?id=JS18
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
CRM License specification
I have previously blogged on the licensing issues of Microsoft CRM and I am still waiting for an answer from the Microsoft representatives in Sweden who have forwarded the question. As soon as I get an answer, I will let you know.
I have also been involved in some discussions concerning what the specifics of the external connection licese are. The following URL describes the details of this for CRM (and also other products). Please have a look:
http://www.microsoftvolumelicensing.com/userights/ProductPage.aspx?pid=161
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
I have also been involved in some discussions concerning what the specifics of the external connection licese are. The following URL describes the details of this for CRM (and also other products). Please have a look:
http://www.microsoftvolumelicensing.com/userights/ProductPage.aspx?pid=161
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
Monday, November 19, 2007
ASP page LifeCycle
Currently I am working with a product configurator via an integration hub, a very interesting project that is quite complex. One part of this is to create a dynamic apsx-page that let's the user choose properties of that are definied from the product configurator. Hence I am creating a new aspx-page that has to dynamically create lots of controls.
In order to do this properly, it is vital to understand the execution model of aspx-pages and the lifecycle of the page. I found this page that describes this, in an easy and understandable fashion. Please review it, if you are in similar needs as I.
http://www.15seconds.com/issue/020102.htm
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
In order to do this properly, it is vital to understand the execution model of aspx-pages and the lifecycle of the page. I found this page that describes this, in an easy and understandable fashion. Please review it, if you are in similar needs as I.
http://www.15seconds.com/issue/020102.htm
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
Thursday, November 08, 2007
Nice video of Microsoft CRM use!
while checking out some CRM-blogs, I found this funny Microsoft CRM video.
Check it out!
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
Check it out!
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
WM-Data/Logica CMG
www.logicacmg.com
Wednesday, November 07, 2007
Problems with Aug 07 VPC
Menno, the VPC god of Dynamics CRM land has created the very nice Aug 07 VPC of CRM 3. Sadly, a common error in it has to do with some new blocking of hacker attacks. It results in an error, that after a while of running it, you get a login-prompt and CRM stops working. The temporary solution is to restart IE.
Menno has written some about this on his blog, please read it. http://blogs.msdn.com/mscrmfreak/archive/2007/11/02/august-2007-vpc-fix.aspx
I personally liked "Method 1" described in the references KB-article. The details are described bellow. I have tested it for 5 minutes and it seems to be working. Here is a copy of the text:
Method 1: Disable the loopback check
Follow these steps:
1.
Click Start, click Run, type regedit, and then click OK.
2.
In Registry Editor, locate and then click the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
3.
Right-click Lsa, point to New, and then click DWORD Value.
4.
Type DisableLoopbackCheck, and then press ENTER.
5.
Right-click DisableLoopbackCheck, and then click Modify.
6.
In the Value data box, type 1, and then click OK.
7.
Quit Registry Editor, and then restart your computer.
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
Logica CMG
www.logicacmg.com
Menno has written some about this on his blog, please read it. http://blogs.msdn.com/mscrmfreak/archive/2007/11/02/august-2007-vpc-fix.aspx
I personally liked "Method 1" described in the references KB-article. The details are described bellow. I have tested it for 5 minutes and it seems to be working. Here is a copy of the text:
Method 1: Disable the loopback check
Follow these steps:
1.
Click Start, click Run, type regedit, and then click OK.
2.
In Registry Editor, locate and then click the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
3.
Right-click Lsa, point to New, and then click DWORD Value.
4.
Type DisableLoopbackCheck, and then press ENTER.
5.
Right-click DisableLoopbackCheck, and then click Modify.
6.
In the Value data box, type 1, and then click OK.
7.
Quit Registry Editor, and then restart your computer.
Gustaf Westerlund
Microsoft Dynamics CRM Consultant
Logica CMG
www.logicacmg.com
Tuesday, November 06, 2007
Installed at Logica and a bit about CRM and Mobility
After some fiddeling, I am now more or less installed at Logica CMG. Some systems still need configuring and I still have to place a few calls to India (where our support is situated) to get it all up and running.
At Convergence, I had the opportunity to browse around and talk to some of the ISV (Independent Software Vendors) that supply 3:rd party addons for Microsoft CRM. One of the companies I found was CWR Mobility that have developed a very competent mobile client for Microsoft CRM 3 (and soon 4). It is a much more mature product (from what I could judge) than the normal Mobile Client, and it supports sometimes-connected scenarios and offline sync, as well as an offline SDK. So, if you are facing a customer with mobility demands, be sure to check out their products.
Gustaf Westerlund
CRM Consultant
Logica CMG
www.logicacmg.com
At Convergence, I had the opportunity to browse around and talk to some of the ISV (Independent Software Vendors) that supply 3:rd party addons for Microsoft CRM. One of the companies I found was CWR Mobility that have developed a very competent mobile client for Microsoft CRM 3 (and soon 4). It is a much more mature product (from what I could judge) than the normal Mobile Client, and it supports sometimes-connected scenarios and offline sync, as well as an offline SDK. So, if you are facing a customer with mobility demands, be sure to check out their products.
Gustaf Westerlund
CRM Consultant
Logica CMG
www.logicacmg.com
Wednesday, October 31, 2007
Today I attended the CRM 4.0 partner readiness tour and I took the opportunity to ask the technical specialist from Microsoft headquaters a lot of questions. In regard to my entry yesterday concerning licensing, we had an interesting discussion on how it can be managed and how it is handled in CRM 4.0.
In general the same licensing limitations apply as I described in my previous post. The new "light"-userlicense I described bellow will be a read-only user license with a reduced price. The external connector will also be available at a substanially lower cost.
However, we found some technical workarounds that the Microsoft representative actually said were ok but I havn't asked a Microsoft sales rep and I don't know if I should...
If you want to create dynamic reports based on CRM data, what you must do is to replicate all the data that you want to base your reports on to your own database. Then create all the reports based on this database, which can be called datawarehouse or something similar.
The same "intermediary" database can also be used when you have, for instance, an internal support page where you can submit your support issue, which is then added to the CRM as a Service case. Let the application write to a database and then create an service that periodically (like every minute or so) reads the new data, and writes to the CRM webservice. There are other similar ways of doing this (like sending emails from the form to a support que) and I think you get the general idea.
The legal workaround using a subsidary company with an external connector license is also valid, but will require you to buy the external connector which has a non trivial price.
I feel this is very strange, that you using a technical solution can bypass some licensing rules that actually should be changed.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
In general the same licensing limitations apply as I described in my previous post. The new "light"-userlicense I described bellow will be a read-only user license with a reduced price. The external connector will also be available at a substanially lower cost.
However, we found some technical workarounds that the Microsoft representative actually said were ok but I havn't asked a Microsoft sales rep and I don't know if I should...
If you want to create dynamic reports based on CRM data, what you must do is to replicate all the data that you want to base your reports on to your own database. Then create all the reports based on this database, which can be called datawarehouse or something similar.
The same "intermediary" database can also be used when you have, for instance, an internal support page where you can submit your support issue, which is then added to the CRM as a Service case. Let the application write to a database and then create an service that periodically (like every minute or so) reads the new data, and writes to the CRM webservice. There are other similar ways of doing this (like sending emails from the form to a support que) and I think you get the general idea.
The legal workaround using a subsidary company with an external connector license is also valid, but will require you to buy the external connector which has a non trivial price.
I feel this is very strange, that you using a technical solution can bypass some licensing rules that actually should be changed.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Tuesday, October 30, 2007
Licensing of CRM and external software
During Convergence 2007 in Copenhagen, it got into a discussion with some Microsoft empolyees concerning the licensing issues when creating applications that directly or indirectly access CRM-based data.
According to what I have heard, it boils down to the fact that a user license is required for all users who interact with the data in any way. This means that no user license is required for a static report displayed in, for instance, SharePoint, but, as soon as there is any interactivity with the data, as for instance, drill down, a separate user license is needed.
So, if you want to display data in SharePoint that comes in whole, or part, from the CRM-database, make sure it is a static report, so that no special user license is required. Creating a report (with for instance SQL Reporting Services) that has drill-down, will require each user to have a user license.
This rises the question of what kind of licensing is needed to access OLAP cubes that are assembled from a data warehouse based on data from many different system, among these, Microsoft CRM. As far as I have understood a full user license is required for all users who can access the OLAP-cubes.
This issue will probably change in CRM 4.0 when there will be a new "light-user-license". Exactly what this means is still unclear and I have heard no details from Microsoft.
When creating any outside interaction with CRM, like a web based tool for submitting service cases, the separate "External Connector" license is needed. This is independant of the magnitude of the application or number of external users (company employees cannot use the external connector). It is also independant of if each user actually uses a named user or some common system user. I am unsure of the exact price for the external connector, but I believe it is somewhere around $40 000.
So, what does this mean for CRM-developers? That we have to have some basic understanding of the licensing modell and what limitations there are to it, so that our customers don't have to pay unnecessary license fees just because we thought that drill-down was a nifty feature in our report that is published on a SharePoint portal.
As many of you, I think these limitations are non benificial for Microsoft since they greatly restrict the possibilities of creating nice Mash-up applications and portals, something Microsoft technology is very good at and something I would view as a great advantage in comparison to Microsofts competitors.
I would also like to point out that I might be wrong in understanding some of these details, and I would be greatful if you could leave a comment if you know or think that I might have understood something wrong.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB / Soon Logica CMG/WM-Data
www.humandata.se
According to what I have heard, it boils down to the fact that a user license is required for all users who interact with the data in any way. This means that no user license is required for a static report displayed in, for instance, SharePoint, but, as soon as there is any interactivity with the data, as for instance, drill down, a separate user license is needed.
So, if you want to display data in SharePoint that comes in whole, or part, from the CRM-database, make sure it is a static report, so that no special user license is required. Creating a report (with for instance SQL Reporting Services) that has drill-down, will require each user to have a user license.
This rises the question of what kind of licensing is needed to access OLAP cubes that are assembled from a data warehouse based on data from many different system, among these, Microsoft CRM. As far as I have understood a full user license is required for all users who can access the OLAP-cubes.
This issue will probably change in CRM 4.0 when there will be a new "light-user-license". Exactly what this means is still unclear and I have heard no details from Microsoft.
When creating any outside interaction with CRM, like a web based tool for submitting service cases, the separate "External Connector" license is needed. This is independant of the magnitude of the application or number of external users (company employees cannot use the external connector). It is also independant of if each user actually uses a named user or some common system user. I am unsure of the exact price for the external connector, but I believe it is somewhere around $40 000.
So, what does this mean for CRM-developers? That we have to have some basic understanding of the licensing modell and what limitations there are to it, so that our customers don't have to pay unnecessary license fees just because we thought that drill-down was a nifty feature in our report that is published on a SharePoint portal.
As many of you, I think these limitations are non benificial for Microsoft since they greatly restrict the possibilities of creating nice Mash-up applications and portals, something Microsoft technology is very good at and something I would view as a great advantage in comparison to Microsofts competitors.
I would also like to point out that I might be wrong in understanding some of these details, and I would be greatful if you could leave a comment if you know or think that I might have understood something wrong.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB / Soon Logica CMG/WM-Data
www.humandata.se
Friday, October 26, 2007
Common performance problem
Now Convergence is over and I feel stuffed with info and experiences. There is so much I would like to write about and so little time. I will try to spread it out a bit.
During one of the sessions Clint Warriner, an Escalation Engineer (he writes hotfixes) held a very interesting chalk-&-talk about CRM system maintanance and performance best practices.
It was crammed with goodies, and I will write more about it later, but one interesting thing he talked about was the possible delay in loading forms. He said this, most often, depends on the SQL server. When loading forms the list of which reports are relevant and so on, are also loaded from the Reporting server. This can, in some cases, take some time, and in some bad cases, really afect the load time of forms.
They have created a hotfix for this, that can be requested from Microsoft support (no cost) if you give the referece: KB 941592. It simply caches the information on what reports exist so that the request to the SQL-server doesn't have to be executed every time.
I will get back to the subject of performance tuning later.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
During one of the sessions Clint Warriner, an Escalation Engineer (he writes hotfixes) held a very interesting chalk-&-talk about CRM system maintanance and performance best practices.
It was crammed with goodies, and I will write more about it later, but one interesting thing he talked about was the possible delay in loading forms. He said this, most often, depends on the SQL server. When loading forms the list of which reports are relevant and so on, are also loaded from the Reporting server. This can, in some cases, take some time, and in some bad cases, really afect the load time of forms.
They have created a hotfix for this, that can be requested from Microsoft support (no cost) if you give the referece: KB 941592. It simply caches the information on what reports exist so that the request to the SQL-server doesn't have to be executed every time.
I will get back to the subject of performance tuning later.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Wednesday, October 24, 2007
Convergence EMEA 2007 in Copenhagen
I am writing this posting from my hotell room in Copenhagen on the end of the second of the three days of the Convergence event.
As you can expect, a lot of focus is on the new CRM 4.0 and all the brilliant new features of it. The other Dynamics products, mainly NAV and AX are also getting some of their well deserved air-time, but for me, it is all CRM! :)
So, anything interesting? Yes, a lot. I will be digging deeper into some of the topics later but would just like to write a little bit about everything I have seen and thought about thus far.
CRM 4.0 - What's new?
Well, a lot.
Multi, multi, multi!
Most of the focus is of course on Multilanguage, multicurrency and multitenancy. I personally feel that from the perspective of where I usually work, the two foremost "multis" are the most interesting. Multitennancy is maybe most interesting from a large enterprise view or hosting environment view
Internet facing
Microsoft Dynamics CRM 4.0 (as it formally is called, I will just call it CRM) has the ability to work as an Internet facing application, which CRM 3.0 wasn't (appart from CRM 3.0 SPE). This is really good news since it is really to be expected of the product. I havn't been able to get any info yet on how this works with MS ISA running reverse proxy (like you do in SharePoint) but I would imagine that it works (it didn't work very well in CRM 3.0).
Better Outlook client
The outlook client has gotten a major workover, and is now more stable and has a better interface. Some features to mention in that it will show a progressbar when loading and won't block the usage of Outlook during this time. It also allows for syncronization of other activity entities that just email, contacts, calendar and todo's, like for instance phonecalls and faxes. I havn't seen this in action yet.
Email
The email subject tokens are gone! Exaclty how it is handled in CRM 4.0, is still unclear for me, but it is probably handled in the mail header somehow. Emails can also be converted to leads and cases directly.
Autocomplete in lookup fields
One very timesaving feature is that the well know autocomplete/intellisense function has been enabled on all lookupfields, vastly reducing the clickyness of CRM. Good job!
Multi language
A lot can be written about this, but in general it uses one server installation language (default language) and then MUI-packs can be installed on either the server or the client to be able to run CRM in another language. Multi language is supported for picklists, sitemap, isv.config and more but not for CRM content. This might not seem like a problem but it is, since for instance products and subjects are CRM Content. If you are looking into using this feature you had better look into it thoroghly.
Multicurrency
The tenant is set up with one Base currency that will be used as such and will for instance be the currency used in reports. Pricelists are in several currencies and exchangerates can be set using the webservice.
Mail Merge
The mail merge has been improved a lot. Web client based mail merge has been activated (is only available using the Outlook client in CRM 3.0). Language specific mail merge templates can be created. Mail Merge has been enabled for custom entities.
CRM - Excel
Excel connections can be either iqv (like CRM 3.0) or ODBC. Refreshing of data is supported and a very very powerful feature of enabling updating back to CRM is also supported including creating new objects. This is very powerful since it can be used to clean data and do imports in a simple manner.
Office Communication integration
Office Communicatior has been integrated and you will get presence info in CRM. Very useful!
Resource Center
A new feature called the resource center has been added that allows role based info to be shown to the client. I don't know the specifics of what can and cannot be done yet.
New licensing
Two new licensing methods will be supported. Per device licensing and a "simple" user license, to be used for users who might only need to view CRM data shown in SharePoint in an agregated view. The details of the later licensing method, and what it will be called, is still very unclear. There will be no price difference between the per user and per device license. I will get back to you when I know more about this.
Diagnostics and troubleshooting
There are some additional tools to facilitate diagnostics and troubleshooting. Tools mentioned are Office Client Diagnostics and the possibility to switch on tracing in CRM (very performance demanding). There is also some sort of "self-healing" going on in the client. Exacly what it does is still unclear.
Entity relationships
This has been discussed before in this and other blogs. In short, all that you wanted from CRM 3.0 is there in CRM 4.0 - many - many, 1-1, self referential, system - system. I havn't heard of any limitations to this yet, but I am sure there are some (like maybe relationsships to "order product" or "quote product".
Workflow
The workflow handling is totally new and has been moved to Windows Workflow Foundation. (.NET 3.0). This is great news since this allows for REALLY advanced workflows.
In short, you don't have to go to the server to create simpler workflows, they can be created from the web gui. A lot more creation options are supported, publishing of workflows is supported, there is a nice wizard, you can create workflow templates.
Also, the "sales process" has been removed and "stages" has been added to normal workflows, and can hence be used in all workflows, for all entities.
Workflows can now traverse relationships, the date-time handling is a lot better and the branching options has been improved a lot with support of "else" and "wait" statements. Dynamic data in forms is also supported using Workflow.
Reporting
This is also an area that has been re-written a lot. Reports are now run directly on the CRM server, which gets rid of all Kerberos delegation issues. There is a nice end-user report wizard that is about as hard as creating an advanced find saved view. Reports are language specific (if you want them to be). There is support for scheduling directly from CRM. There is support for offline reports.
Importing
There is now a nice wizard for importing data and it is possible to save and export the datamapping. It supports all entities. It supports backing out of an import, even several weeks later.
Duplicate detection
An advanced and customizable dupicate detection exists that allows for cleaner data.
Uppgrading
As promised, all supported customizations are supported for uppgrading, including callouts. There is a nice wizard that checks for possible problems before. Even though there are nice promises, I would really like to see this work before I believe it! It is almost to good to be true!
Exporting
The exporting of security roles is now supported. When exporting all customizations, even all dlls that have been added as plug-ins are included. This will enable the movement of an entire solution from one server to another. (Ex. test to production).
Scale out possibilities
CRM has been split up into several services that can be distributed to several machines, so workflow, for instance can be moved from the front-end web servers to dedicated servers allowing for better scale-out options and greater performance.
RW-Metadata
The metadata webservice now enables writing, so new attributes, entites etc. can now be created programatically!
Create users in bulk
This has also been discussed in other blogs, but in short, it allows for the bulk creation of many users at once.
Well, that was a short overview of some of the new features in CRM 4.0 and I have hardly mentioned plug-ins.
I have attended lots of different sessions and will write a lot about it soon! As for now, the dinner table is calling (as is my belly!).
Over and out!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB (soon WM-Data)
www.humandata.se
As you can expect, a lot of focus is on the new CRM 4.0 and all the brilliant new features of it. The other Dynamics products, mainly NAV and AX are also getting some of their well deserved air-time, but for me, it is all CRM! :)
So, anything interesting? Yes, a lot. I will be digging deeper into some of the topics later but would just like to write a little bit about everything I have seen and thought about thus far.
CRM 4.0 - What's new?
Well, a lot.
Multi, multi, multi!
Most of the focus is of course on Multilanguage, multicurrency and multitenancy. I personally feel that from the perspective of where I usually work, the two foremost "multis" are the most interesting. Multitennancy is maybe most interesting from a large enterprise view or hosting environment view
Internet facing
Microsoft Dynamics CRM 4.0 (as it formally is called, I will just call it CRM) has the ability to work as an Internet facing application, which CRM 3.0 wasn't (appart from CRM 3.0 SPE). This is really good news since it is really to be expected of the product. I havn't been able to get any info yet on how this works with MS ISA running reverse proxy (like you do in SharePoint) but I would imagine that it works (it didn't work very well in CRM 3.0).
Better Outlook client
The outlook client has gotten a major workover, and is now more stable and has a better interface. Some features to mention in that it will show a progressbar when loading and won't block the usage of Outlook during this time. It also allows for syncronization of other activity entities that just email, contacts, calendar and todo's, like for instance phonecalls and faxes. I havn't seen this in action yet.
The email subject tokens are gone! Exaclty how it is handled in CRM 4.0, is still unclear for me, but it is probably handled in the mail header somehow. Emails can also be converted to leads and cases directly.
Autocomplete in lookup fields
One very timesaving feature is that the well know autocomplete/intellisense function has been enabled on all lookupfields, vastly reducing the clickyness of CRM. Good job!
Multi language
A lot can be written about this, but in general it uses one server installation language (default language) and then MUI-packs can be installed on either the server or the client to be able to run CRM in another language. Multi language is supported for picklists, sitemap, isv.config and more but not for CRM content. This might not seem like a problem but it is, since for instance products and subjects are CRM Content. If you are looking into using this feature you had better look into it thoroghly.
Multicurrency
The tenant is set up with one Base currency that will be used as such and will for instance be the currency used in reports. Pricelists are in several currencies and exchangerates can be set using the webservice.
Mail Merge
The mail merge has been improved a lot. Web client based mail merge has been activated (is only available using the Outlook client in CRM 3.0). Language specific mail merge templates can be created. Mail Merge has been enabled for custom entities.
CRM - Excel
Excel connections can be either iqv (like CRM 3.0) or ODBC. Refreshing of data is supported and a very very powerful feature of enabling updating back to CRM is also supported including creating new objects. This is very powerful since it can be used to clean data and do imports in a simple manner.
Office Communication integration
Office Communicatior has been integrated and you will get presence info in CRM. Very useful!
Resource Center
A new feature called the resource center has been added that allows role based info to be shown to the client. I don't know the specifics of what can and cannot be done yet.
New licensing
Two new licensing methods will be supported. Per device licensing and a "simple" user license, to be used for users who might only need to view CRM data shown in SharePoint in an agregated view. The details of the later licensing method, and what it will be called, is still very unclear. There will be no price difference between the per user and per device license. I will get back to you when I know more about this.
Diagnostics and troubleshooting
There are some additional tools to facilitate diagnostics and troubleshooting. Tools mentioned are Office Client Diagnostics and the possibility to switch on tracing in CRM (very performance demanding). There is also some sort of "self-healing" going on in the client. Exacly what it does is still unclear.
Entity relationships
This has been discussed before in this and other blogs. In short, all that you wanted from CRM 3.0 is there in CRM 4.0 - many - many, 1-1, self referential, system - system. I havn't heard of any limitations to this yet, but I am sure there are some (like maybe relationsships to "order product" or "quote product".
Workflow
The workflow handling is totally new and has been moved to Windows Workflow Foundation. (.NET 3.0). This is great news since this allows for REALLY advanced workflows.
In short, you don't have to go to the server to create simpler workflows, they can be created from the web gui. A lot more creation options are supported, publishing of workflows is supported, there is a nice wizard, you can create workflow templates.
Also, the "sales process" has been removed and "stages" has been added to normal workflows, and can hence be used in all workflows, for all entities.
Workflows can now traverse relationships, the date-time handling is a lot better and the branching options has been improved a lot with support of "else" and "wait" statements. Dynamic data in forms is also supported using Workflow.
Reporting
This is also an area that has been re-written a lot. Reports are now run directly on the CRM server, which gets rid of all Kerberos delegation issues. There is a nice end-user report wizard that is about as hard as creating an advanced find saved view. Reports are language specific (if you want them to be). There is support for scheduling directly from CRM. There is support for offline reports.
Importing
There is now a nice wizard for importing data and it is possible to save and export the datamapping. It supports all entities. It supports backing out of an import, even several weeks later.
Duplicate detection
An advanced and customizable dupicate detection exists that allows for cleaner data.
Uppgrading
As promised, all supported customizations are supported for uppgrading, including callouts. There is a nice wizard that checks for possible problems before. Even though there are nice promises, I would really like to see this work before I believe it! It is almost to good to be true!
Exporting
The exporting of security roles is now supported. When exporting all customizations, even all dlls that have been added as plug-ins are included. This will enable the movement of an entire solution from one server to another. (Ex. test to production).
Scale out possibilities
CRM has been split up into several services that can be distributed to several machines, so workflow, for instance can be moved from the front-end web servers to dedicated servers allowing for better scale-out options and greater performance.
RW-Metadata
The metadata webservice now enables writing, so new attributes, entites etc. can now be created programatically!
Create users in bulk
This has also been discussed in other blogs, but in short, it allows for the bulk creation of many users at once.
Well, that was a short overview of some of the new features in CRM 4.0 and I have hardly mentioned plug-ins.
I have attended lots of different sessions and will write a lot about it soon! As for now, the dinner table is calling (as is my belly!).
Over and out!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB (soon WM-Data)
www.humandata.se
Tuesday, October 16, 2007
Microsoft Virtual Earth Demo
Integrating with map services like Microsoft Virtual Earth, Google Maps can bring your CRM or SharePoint application great increases in features at a relativly low cost. Microsoft uses Microsoft Virtual Earth internally and the Microsoft SharePoint Products and Technologies Team Blog has written an interesting posting about this which includes a reference to a codeplex project including all code for the internal project.
I havn't checked it out, and it is used for SharePoint in the example but I believe that a lot of the code probably can be used to develop a Virtual Earth driven map service in Microsoft CRM.
So, without further ado, please read the posting and check out the codeplex project if you are interested!
http://blogs.msdn.com/sharepoint/archive/2007/10/14/announcing-community-kit-for-sharepoint-virtual-earth-maps-on-sharepoint.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
I havn't checked it out, and it is used for SharePoint in the example but I believe that a lot of the code probably can be used to develop a Virtual Earth driven map service in Microsoft CRM.
So, without further ado, please read the posting and check out the codeplex project if you are interested!
http://blogs.msdn.com/sharepoint/archive/2007/10/14/announcing-community-kit-for-sharepoint-virtual-earth-maps-on-sharepoint.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Monday, October 15, 2007
Mr Dave writes some about Plug-In development
Mr Dave has written an interesting blog in plug-in development, which is the replacement for the callout-techniques used in CRM 3. There are a lot of architectural differences between callous and plug-ins. If you are planning to use plugs, dig in:
http://crm.davidyack.com/journal/2007/10/14/using-prepost-images-in-plug-ins.html
I hope to be writing some postings of my own concerning CRM 4.0 soon, but I still havn't got my hands on a version :(
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
http://crm.davidyack.com/journal/2007/10/14/using-prepost-images-in-plug-ins.html
I hope to be writing some postings of my own concerning CRM 4.0 soon, but I still havn't got my hands on a version :(
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Stunnware on CRM 4 development
Michael Höhne who runs the site Stunnware has written an interesting blog posting on how development differes between CRM 3 and CRM 4. It is very interesting and very usefull. If you plan to develop using CRM 4, I highly recommend that you read it.
http://www.stunnware.com/crm2/topic.aspx?id=CRM4MultiTenancy
Next week is Convergence EMEA in Copenhagen. If you are planning to go there and would like to meet, please drop me a line and we can arrange it.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
http://www.stunnware.com/crm2/topic.aspx?id=CRM4MultiTenancy
Next week is Convergence EMEA in Copenhagen. If you are planning to go there and would like to meet, please drop me a line and we can arrange it.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Tuesday, October 09, 2007
CRM 4 VPC available on partner source
Ben Riga has made a CRM 4 VPC available on partner source. In other words, you have to be a Microsoft Dynamics Partner to be able to download it. Unfortunatley, I am not, yet, so I havn't had the possibility to download it. When I start at WM-Data/Logica CMG, I will be however, and look forward to checking it out!
Here is the link if you have access: http://blogs.msdn.com/benriga/archive/2007/10/08/titan-now-available-to-all-dynamics-partners.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Here is the link if you have access: http://blogs.msdn.com/benriga/archive/2007/10/08/titan-now-available-to-all-dynamics-partners.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Thursday, October 04, 2007
crm 4, Crm 4, CRM 4, CRM 4!!!!
Very exciting times...
Lots of CRM 4 related information all around. Microsoft UK CRM Blog has some interesting information:
http://blogs.msdn.com/ukcrm/
And if you havn't been there already, keep a steady eye on The CRM Teams blog:
http://blogs.msdn.com/crm
They have added some links to videos of CRM 4.
Here is also an interesting blog containing info about CRM 4. It details a bit more the Import/Migration tool included in CRM 4.
I still have some unanswered questions:
1. Is there support for global javascript includes (like globalcustom.js)?
2. Is there a VPC out yet?
3. Other javascript support?
I would also like to look deeper into the offline API that is included.
And callouts have been renamed to plug-ins, and are "Tennant"-specific, meaning that they can be assigned to only one of the installed companies on the CRM server. Very nice indeed!
When I know more, I'll get back to you!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Lots of CRM 4 related information all around. Microsoft UK CRM Blog has some interesting information:
http://blogs.msdn.com/ukcrm/
And if you havn't been there already, keep a steady eye on The CRM Teams blog:
http://blogs.msdn.com/crm
They have added some links to videos of CRM 4.
Here is also an interesting blog containing info about CRM 4. It details a bit more the Import/Migration tool included in CRM 4.
I still have some unanswered questions:
1. Is there support for global javascript includes (like globalcustom.js)?
2. Is there a VPC out yet?
3. Other javascript support?
I would also like to look deeper into the offline API that is included.
And callouts have been renamed to plug-ins, and are "Tennant"-specific, meaning that they can be assigned to only one of the installed companies on the CRM server. Very nice indeed!
When I know more, I'll get back to you!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Wednesday, October 03, 2007
I'm moving on!
November the 9:th will be my last day at Humandata here in Sweden. My new employment will be at WM-Data/Logica CMG where I will be working as a consultant with special focus on Microsoft Dynamics CRM development.
This means that I will focus even more on MS CRM and less on SharePoint. Don't get me wrong, I really like SharePoint and will probably use it for integration purposes with Microsoft CRM many times. This new employment will give me the opportunity to work with some of the largest MS CRM implementations and I will also be assisting in building a team of (hopefully) excellent MS CRM developers and consultants. If you feel that is you, please let me know, and we'll meet and discuss it. It will also be very interesting and instructive to work with the very experienced CRM professionals at WM-Data.
I will still be activly blogging to get you the latest and most useful tips, but I will focus more on Microsoft CRM, even though an occational SharePoint posting might occur.
I would also like to say that I feel very sad to leave the company Humandata which is a great place to work and it has been a privilage to work with some of the most competent people in the business. If you are a skilled SharePoint consultant (or want to be), please contact Göran Husman (SharePoint MVP and owner of Humandata), I promise you wont regret it!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
This means that I will focus even more on MS CRM and less on SharePoint. Don't get me wrong, I really like SharePoint and will probably use it for integration purposes with Microsoft CRM many times. This new employment will give me the opportunity to work with some of the largest MS CRM implementations and I will also be assisting in building a team of (hopefully) excellent MS CRM developers and consultants. If you feel that is you, please let me know, and we'll meet and discuss it. It will also be very interesting and instructive to work with the very experienced CRM professionals at WM-Data.
I will still be activly blogging to get you the latest and most useful tips, but I will focus more on Microsoft CRM, even though an occational SharePoint posting might occur.
I would also like to say that I feel very sad to leave the company Humandata which is a great place to work and it has been a privilage to work with some of the most competent people in the business. If you are a skilled SharePoint consultant (or want to be), please contact Göran Husman (SharePoint MVP and owner of Humandata), I promise you wont regret it!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Problems with Peoplesearch in MOSS 2007
Today I ran into some problems concerning People-search in MOSS 2007. My customer was using https for their main sharepoint site and I had installed the mysite host on the same web application (in https://servername/mysite) according to the specifications found around the net.
Well, my customer just couldn't get the people search to work, and I had heard that there were some problems with using it on a site that runs on https (http with ssl), so I wasn't very surprised. As a bit of backgroud, the peoplesearch is set up as a contentsource in the search using sps3://servername. The server in this case should be the web application hosting mysite.
Well, how to solve it. First of all I tried to just create and extension of the sharepoint application on http port 2000 (http://servername:2000). It worked just as it should, when I browsed it, it worked and I was also tranfered to the default site (https://servername).
I tried adding this as a content source instead of the old one, in other words:
sps3://servername:2000, sadly it didn't work.
As a matter of fact, we had got it to work previously in the same environment. We had first installed sharepoint on http://home and then added https://home.company.com with an extension and an alternate access mapping. The later was used as the address to be used from the outside, by using MS ISA as a reverse proxy. After a while, the customer complained about problems with people copying/emailing url:s that didn't work from the outside. (the url was http://home/... and not https://home.company.com/..., so not very strange. This resulted in the action of removing the alternate access mapping of http://home (the original one) so that only https://home.company.com remained (and was hence set at the default). This worked great, people could enter "home" in their IE and they would reach the site https://home.company.com.
However, when I removed the alternate access mapping for http://home, people search started failing.
So, the remedy, I added an alternate access mapping for http://home:2000 in the zone Intranet (doesn't really matter, which zone as long as it isn't the default), re-indexed the search server and made a full crawl that worked like a charm! The point of using TCP port 2000 was that is is very unlikely that a user might just happen to enter that, it could just have been 1234 aswell...
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Well, my customer just couldn't get the people search to work, and I had heard that there were some problems with using it on a site that runs on https (http with ssl), so I wasn't very surprised. As a bit of backgroud, the peoplesearch is set up as a contentsource in the search using sps3://servername. The server in this case should be the web application hosting mysite.
Well, how to solve it. First of all I tried to just create and extension of the sharepoint application on http port 2000 (http://servername:2000). It worked just as it should, when I browsed it, it worked and I was also tranfered to the default site (https://servername).
I tried adding this as a content source instead of the old one, in other words:
sps3://servername:2000, sadly it didn't work.
As a matter of fact, we had got it to work previously in the same environment. We had first installed sharepoint on http://home and then added https://home.company.com with an extension and an alternate access mapping. The later was used as the address to be used from the outside, by using MS ISA as a reverse proxy. After a while, the customer complained about problems with people copying/emailing url:s that didn't work from the outside. (the url was http://home/... and not https://home.company.com/..., so not very strange. This resulted in the action of removing the alternate access mapping of http://home (the original one) so that only https://home.company.com remained (and was hence set at the default). This worked great, people could enter "home" in their IE and they would reach the site https://home.company.com.
However, when I removed the alternate access mapping for http://home, people search started failing.
So, the remedy, I added an alternate access mapping for http://home:2000 in the zone Intranet (doesn't really matter, which zone as long as it isn't the default), re-indexed the search server and made a full crawl that worked like a charm! The point of using TCP port 2000 was that is is very unlikely that a user might just happen to enter that, it could just have been 1234 aswell...
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Subscribe to:
Posts (Atom)