Friday, August 7, 2009

CRM Upgrade 3.0 --> 4.0 Problem - GrantCrmDatabaseAccessAction failed

We received the following error:
Action Microsoft.Crm.Setup.Server.GrantCrmDatabaseAccessAction failed. The login already has an account under a different user name.

This happens while the wizzard is updating the system and after that, the repair-function does also not help to resolve this problem.

I found a hint here.

Solution:
Change the db-owners of the crm databases (MSCRM and METABASE).

Code-Snipped:
EXEC .dbo.sp_changedbowner @loginame = 'sa', @map = 'true'
EXEC .dbo.sp_changedbowner @loginame = 'sa', @map = 'true'

Friday, July 17, 2009

Speedup Microsoft CrmService

The CrmService has huge amount of functions. One of them is the execute method, which delivers the possibility to update, retrieve, retrieveMultiple and so on.

For best performance, you should NOT use the execute method for default actions like retrieve create, update et cetera. Therefor you should use the specific functions, which are also provided from the CrmService.

Fast:
BusinessCollection taskCollection = crmservice.retrieveMultiple(queryExpr);

Slow:
RetrieveMultipleResponse retrMultiResponse = (RetrieveMultipleResponse) crmservice.execute(retrMultiRequest);

For specials like opening activities, you must use the execute method.

Alongside you should only call the service, if there is no other option. If you have to calculate huge amounts of crm data, create caching objects to avoid more than one call for the same set of data.

Kind regards
MK

Edit:
Only available if you are using the WSDL-Proxy Classes.

Sunday, July 12, 2009

More about the content

First i would like to secify the topics of my blog.
  • I'm developing in c# since 2005 (before i worked with java). My first job was an internship in a company, which developed a completely own CRM-Application, based on ASP and c#. I learned very much about databasedesign, customer relationship management and common programming stuff. After finishing the internship i worked as undergraduate associate in the company.
  • In the course of this internship i learned basics about the .Net-Framework. This knowledge i could expand on some projects while my acadamic studies. I also visited some elective courses about .Net-Programming.
  • As aforementioned, i learned basics about CRM-Systems in my first internship and while my study. So i decided to write my diploma thesis about customer relationship management systems. This was my first contact with Microsoft Dynamics CRM. Subject of my diploma thesis was to connect a financial service provider application to the CRM-System about SOAP-Webservices.
  • I learned the basics about SQL while my study an in the companies i talked about. Since 2008 i'm doing more and more SQL in touch with SQL-Reporting. I started with Microsoft SQL-Server 2005. Because the increasing fraction of Microsoft SQL-Server 2008 customers, i could also improve my knowledge in this section.
I'm also very interested in modelling, UML, Softwarepatterns et cetera. If i found enough important stuff to write in my blog, i will modify my header.

Saturday, July 11, 2009

Welcome

to my new blog.

I will talk about all the stuff in the title.

Have fun!