Hi, what are the recommended ways to synchronize data between an external system and MSCRM 4.0? By synchronization I mean periodically importing/exporting data (contacts, activities and some other entities) to/from MSCRM. The interface to the external system is CSV or ODBC.
I read about several methods. Currently I am favouring
- using Microsoft CRM SDK for importing data to MSCRM
- using the database views for exporting (i.e. pulling) data from MSCRM
Are there better methods for import/export?
Some other methots I came accross which do not seem to be suitable:
- Import as CSV (Bulk Import Wizard): How to map references? (MSCRM primary keys vs. primary keys of external system); It is not possible to specify the owner of the imported entity per entity.
- Import/export as XML: The interface to the external system is table based (csv or odbc), not XML based. So XML is inconvenient.
- CRM Data Migration Framework/CDF: I am not sure whether this method supports updates. It seems to be designed for one-time data migration.
- Bulk Data Export Tool (http://www.codeplex.com/mscrmbulkdataexport). Does anybody have experience with this tool?
EDITED: I forgot to mention that I am not looking for commercial 3rd party products. Currently I am using MS CRM SDK for both import and export. I do not yet know about performance, however this approach looks promising.
In more detail: I use XrmDataContext for LINQ-based access to MS CRM. To do that, I needed to generate a data context class using a tool called CrmSvcUtil. Alternatively one could use CrmDataContext without code generation. The difference: XrmDataContext provides a strongly typed interface, including customized MSCRM entities and attributes.