Having spent over a day grappling with the Microsoft CRM Data Migration Framework v3.1 for MS CRM 3.0 I thought it useful to document some mistakes I made.
- In the CDF DO NOT insert rows into cdf_<entity>_info or cdf_<entity>_ext tables as these rows are created by triggers on inserts to the base table. Thus if you need to populate your custom fields in cdf_account_ext you first insert the row in to cdf_account and then UPDATE the auto-created row in cdf_account.
- Do NOT populate OwningUser even when you’re sure you have the right lookup to cdf_systembase! Instead populate the OwningUserName column with the username in the form DOMAIN\USER
- As (2) do not populate TerritoryID use TerritoryIdName and then use the CDF Data Mapping Wizard (under Cleanse CDF in the DMF app) to map the string to the correct picklist ID.
- For an account [name] is a required field
- LASTLY BUT MOST IMPORTANT, ensure you are running the DMF using an NT login with access to MS CRM and has a role assigned – a restricted access account does not seem to be sufficient for the DMF to create the rows. This got me for hours, not helped by the fact that the DMF has to be installed on the CRM server and funnily enough we don’t assign expensive CRM licences to the sysadmin accounts!
I really think MS need to look at this tool, the CDF is very good, especially for people who are good with MS SQL, however there is a complete lack of error messages. I lost over 4 hours (see point 5) due to the lack of errors. I’ve encountered the same error when adding accounts via the webservice directly and it generates an exception – why doesn’t DMF expose the exception?