I encountered this error when I deploy a plug-in to CRM online environment. I tested the same plug-in in on premises environment and it works without any error.
The plugin read and write to entity A and entity B (they have no relationships). The plug-in is triggered when entity A records are created and it retrieve all records from entity B and process them.
The error was thrown when it tries to save changes to entity B, with this error message: The context is not currently tracking the <<entity B>> entity
It suggested the services context does not track <<entity B>> in the scope. I researched this topic and found out I need to use OrganizationServiceContext.Attach Method. However when I use this method it returns with this error: The context is already tracking the <<entity B>> entity. :(
And did more research and found that it actually need to detach the object ( OrganizationServiceContext.Detach Method) before it can be attached.
This makes no sense to me but this is the work around.
This Blog is to document some founding related to my work experience, most of them are related to Microsoft Technology,
Thursday, 22 March 2012
Tuesday, 13 March 2012
CRM 2011 Plug-in error: Object reference not set to an instance of an object.
Problem/Error:
When I create an instance of object from the sdk generated
code by using the default constructor like:
email.regardingobjectid = new CrmEntityReference();
I will find it return a null object:
This is not the result I wanted because the object does not
have correct structure and when I try to assign a value to the object (in this
case is regardingobjectid)
it will throw a NullReferenceException error like this:
Solution
The solution is relatively simple by using a different
constructor and it will give a correct object:
email.regardingobjectid = new CrmEntityReference("contact", contact.contactid);
Tuesday, 28 February 2012
Saturday, 31 December 2011
CRM Online can't find Microsoft.Xrm.Client.dll
Hi all,
Today I was writing (and I am still) a Plug-in for CRM online 2011 and counter a error as:
I think this client dll is not intended to be used in server environment and therefore is not installed in CRM server.
I founded the generated code from crmsvcutil actually required the client dll if you include following parameter in your generation command .
By the way, Happy 2012 :)
Today I was writing (and I am still) a Plug-in for CRM online 2011 and counter a error as:
Could not load file or assembly 'Microsoft.Xrm.Client, Version=5.0.9688.1154, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.It happens because in my project I reference to Microsoft.Xrm.Client.dll and in the CRM online server this DLL is not installed.
I think this client dll is not intended to be used in server environment and therefore is not installed in CRM server.
I founded the generated code from crmsvcutil actually required the client dll if you include following parameter in your generation command .
/codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"I re-generated the code file from crmsvcutil without the parameter and reload the project with an updated code file (Xrm.cs), recompile the project and it works :)
By the way, Happy 2012 :)
Tuesday, 27 December 2011
Unable to connnect to CRM server (email router or Outlook client)
Today I experienced an error when connecting a outlook client to CRM server. The setting are excellently same as other computers. It turns out that the clock (on client PC) is out of sync and it could not establish a secured connect.
This is fixed by sync the time and re-connect :) not too hard after spending lot of time to find the bug.
This is fixed by sync the time and re-connect :) not too hard after spending lot of time to find the bug.
Wednesday, 21 December 2011
CRM4 primary character limit
Issues:
This morning I received an error from generic SQL error when a process tried to update an account record. The details error log looks like this:
Conclusion and lesion learn:
The character limits of primary attribute in CRM is 400. This apply to both CRM 4 and CRM 2011. To fix this simply truncate the name to 400 characters and update the attribute in account to 400 characters.
This morning I received an error from generic SQL error when a process tried to update an account record. The details error log looks like this:
>Exception when executing non-query: update ActivityPointerBase set RegardingObjectIdName='<<A very long account name>>' where (RegardingObjectId = '5cc47836-4867-e011-8520-005056860020' and RegardingObjectTypeCode = 1) Exception: System.Data.SqlClient.SqlException: String or binary data would be truncated.When I look in the error, it suggests the name is too long to be put in the reference object table. I checked the name attribute in account; it is set to 450 characters. However when I look at the database table RegardingObjectName is set to 400. When it try to inset the name it errors out.
Conclusion and lesion learn:
The character limits of primary attribute in CRM is 400. This apply to both CRM 4 and CRM 2011. To fix this simply truncate the name to 400 characters and update the attribute in account to 400 characters.
Thursday, 15 December 2011
Delete Team Porjects on TFS online
I just found out you can delete a team project on TFS online via Visual Studio Command Prompt (2010).
Here is the command:
http://msdn.microsoft.com/en-us/library/ms181482.aspx#DeletionProcess
Here is the command:
TFSDeleteproject [/q] [/force] [/excludewss] /collection:URL TeamProjectName
For more details refer to MSDN:
http://msdn.microsoft.com/en-us/library/ms181482.aspx#DeletionProcess
Subscribe to:
Posts (Atom)

