So the only thing that I have been truly disappointed in with the upgrade is the effort involved in getting the data from your current system integrated into the new CRM 2011. I have been calling this process the Re-Import solution. Now every time I do this I come up with some other little hiccup. At this point I am just hoping that I get all the hiccups out before the big go live.
Before I start anything I take a snapshot of the VM.
Start by going into customizations and exporting all customizations, click on Information and Export Solution. Publish All customizations on the first page. then click next. I have not been including any of the Export System Settings. Then click next and wait a save screen will eventually come up. I have a folder on my desktop that I use called customizations.
If you are using the Customer Portal and have made any changes…run the websitecopy tool
Source will be CRM server
set your integration type and enter the url of your CRM server
after it connects select your organization and connect then click close unless you need the connection string… if you have already copied it, it does not change
upon clicking close select the Source of the Website which should be populated with :Customer Portal unless you changed the name
Change the destination to XML file ( I copied the original one, changed the name and saved over it)
Website name: leave the same this is just to get your changes to pull them back in
click create website. You should see a new XML document with the changes you have made to the Portal.
So now we have two files that will have to use after we import our data. One has all of our system customizations and one has all of our Customer Portal customizations.
backup current crm 4.0 database
copy the .bak file to new crm sql server
stop async process in services ( I always do this on the import)
restore database on new server over writing your current database for CRM 2011
Open Deployment manager
import organization and run through wizard
Make sure one of the users is mapped as the System Administrator
make sure all workflows have been reowned to the logged in user including templates
Now we start to import the customizations back in. Because I imported my customer portal into my system and then exported the default solution I have to import my customer portal into my system before I import back in my default solution. It will reference fields that are in my default solution. the same goes for the connector(not everyone will have this).
import customer portal cab file
import default solution – customizations
To get the changes to the Customer portal I need to run copy website. In this case my source will be XML file and I will go find the xml file I created at the beginning of this process.
That is it if you are just reimporting the CRM 4.0 into 2011. Doesnt seem too bad until you do it 15 times…
Now if you are using the connector we continue on… in our case we work with GP as well.
initial sync – take another snapshot of the VM (just in case)
make sure permissions are set correctly for the CRM Admin that will be used for the sync tool – system customizer and Dynamics Integration
make sure you can still connect to GP and CRM and run configuration tool again like it is the first time.
One of the things the configuration tool does is update all of the products to inactive and changes the name. Which seems like overkill, but makes sence in the long run. Well this does not seem to happen when I run it, so I run a sql statement to make that happen ( NOT SUPPORTED)
set Name = Name + ‘(CRM)’,
productnumber = productnumber + ‘(CRM)’,
StateCode = 1
run the initial pick list utility
customer to account
U of M
flat fee to product
kit to product
sales item to product
sales person to erp
I did notice that this seems to have been a once and done. The first time I ran this during the testing phase, it brought over a ton of changes. It appears that those changes are all stored in the default solution and only new ones have come over since. Which is good that will save some time.
Next I stop the Connector for Microsoft Dynamics Service in services. I am going to need to change the dates on the connector like this is the first time running the tool. I need to change the Last Run Time. Then I run the maps.
1. Erp users: Sales Person to ERP user
You will have to map the users in CRM to the ERP user again
2. Map UofM schedules to unit groups.
3. Map pricing header information: Pricing Header to Pricing Header
4. Map product information. – No one says anything about order on this one, well it does matter. If you use kits you should do service and sales items before kits… logically you will have those items in your kits. In the documentation I think it has kits before sales items and that caused a ton on problem with the timing of items being in the system..
service to product
sales item to product
kit to product
miscellaneous charges to product
flat fee to product
5. Map pricing information: Price Level to Price List
6. Map customer accounts or contact information: Customer to Account
7. Map sales orders to order
8. Map sales invoices.
The event log will become your best friend for finding out what is going wrong.
Random errors you may come into
Current key (KeyType : CrmWRPCTokenKey) is expired. This can indicate that a key is not being regenerated correctly. Current Key : CrmKey(Id:599c310d-2980-e111-8175-000c29fb6cf7, ScaleGroupId:00000000-0000-0000-0000-000000000000, KeyType:CrmWRPCTokenKey, Expired:True, ValidOn:04/06/2012 20:42:41, ExpiresOn:05/09/2012 20:42:41, CreatedOn:04/06/2012 20:42:41, CreatedBy:CORP\CRMSVC.
When I searched for a cause/solution for this issues, I found this excellent post on Nishant Rana’s blog (http://nishantrana.wordpress.com/2008/06/11/invalid-action-error-microsoft-dynamics-crm-40/).
Start or Restarted Microsoft CRM Asynchronous Process Service and problem solved. I had this turned off for the Re-import and had not turned it on before the weekend, came in on monday and was greeted with this error. Apparently there is a process that updates this key and if the Asyn process is not running it can not be generated.
The Web Service plug-in failed in OrganizationId: 56f0ffa2-2c54-4ccf-a337-2c7d3f069337; SdkMessageProcessingStepId: 227a2681-06e5-43ad-855a-aca4ebd20049; EntityName: none; Stage: 30; MessageName: GetComponents; AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=126.96.36.199, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
Fix: restart IIS and recycle app pool seemed to fix the issue
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=188.8.131.52, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Generic SQL error.Detail:xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/xrm/2011/Contracts”> -2147204784 Generic SQL error.2012-03-13T20:25:47.6129599Z
This one took a while, turns out need to shrink the Database Transaction log. It seems that the import of the data will fill things up and then when I would try to publish the customizations after the import of my default solution it would stop with the error above. This was one of those total wild goose chases because there was nothing wrong with contracts.. It just happened to be the place that it would stop processing…
Connector Errors and things that cause problems… the actual errors can be found in the Dynamics Web Service Exception console under Administrative tools. In tree click System Exceptions and you will see a list of exceptions. Double click on one of the exceptions.
yep that one is not very helpful. But if you click on the View Exception Detail
Still not helpful… but if you click on Inner Exception Detail
Ok now it is helpful… Go fix error…
Valuation Method can NOT be “”
any sales items or discontinued items with a valuation method of 0. this may seem weird, but we had a number of service items that we changed to discontinued with a script. This is fairly common practice. Well because they were service items they had a 0 valuation. Now the system thinks they are sales items and they need a valuation method. This will cause this map to fail and the Pricing List to Price Level map to fail for the price list these items are included on.
Price Method can NOT be “”
still have not figured out how this happened on two items in our entire inventory but they can not be that way.
Current Cost can not be less than 0
this is another one that I have yet to determine how has happened, but it can NOT be this way either.
Inner Exception: There was an error writing to the pipe: The pipe is being closed.
per http://support.microsoft.com/kb/2539263 you need to update the receiveTimeout =”infinite” in the Microsoft.Dynamics.GP.eConnect.Service.exe.config
All shipment methods on Customer Cards have to bee in the SY03000 Master table
select distinct(SHIPMTHD) from RM00102 where SHIPMTHD not in (select SHIPMTHD from SY03000 )
All Pricelist on Customer Cards have to be in the IV40800 Master table
select distinct(PRCLEVEL), CUSTNMBR from RM00101 where PRCLEVEL not in (select PRCLEVEL from IV40800) and PRCLEVEL <> ”