views:

26

answers:

1

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.

+1  A: 

The most powerful and versatile way to migrate data to and from MSCRM that I know of is Scribe Insight from Scribesoft. We use this for all data migration/synchronization tasks in our projects. Using the MSCRM adapter pretty much all data manipulation can be done through the MSCRM web service, so you're always on the safe side as far as database interaction goes (as opposed to MSCRM database manipulation by plain SQL). Scribe also allows setting up scheduled jobs to implement recurring import/export operations.

I am personally not too fond of the interface and its logic, but its still the best way to connect your CRM database to other systems. We've been using it to connect customers' MSCRM systems to SAP, Navision, Axapta, Oracle and other databases. There are adapters for a number of systems, and it also supports native SQL server and ODBC connections.

GCATNM