Каковы рекомендуемые способы синхронизации данных между внешней системой и MSCRM 4.0? Под синхронизацией я имею в виду периодический импорт / экспорт данных (контактов, операций и некоторых других объектов) в / из MSCRM. Интерфейс к внешней системе - CSV или ODBC.
Я читал о нескольких методах. В настоящее время я поддерживаю
- с использованием Microsoft CRM SDK для импорта данных в MSCRM
- использование представлений базы данных для экспорта (т.е. извлечения) данных из MSCRM
Есть ли лучшие методы для импорта / экспорта?
Некоторые другие методы, с которыми я столкнулся, которые не кажутся подходящими:
- Импорт в формате CSV (Мастер группового импорта): Как отобразить ссылки? (Первичные ключи MSCRM против первичных ключей внешней системы); Невозможно указать владельца импортируемой сущности для каждой сущности.
- Импорт / экспорт в формате XML: интерфейс к внешней системе основан на таблицах (csv или odbc), а не на основе XML. Так что XML неудобен.
- CRM Data Migration Framework / CDF: я не уверен, поддерживает ли этот метод обновления. Кажется, он предназначен для одноразовой миграции данных.
- Инструмент для массового экспорта данных (http://www.codeplex.com/mscrmbulkdataexport). У кого-нибудь есть опыт использования этого инструмента?
Редакция:
Я забыл упомянуть, что я не ищу коммерческих продуктов сторонних производителей.
В настоящее время я использую MS CRM SDK для импорта и экспорта. Я еще не знаю о производительности, однако этот подход выглядит многообещающим.
Более подробно: я использую XrmDataContext для доступа на основе LINQ к MS CRM. Для этого мне нужно было сгенерировать класс контекста данных, используя инструмент под названием CrmSvcUtil. В качестве альтернативы можно использовать CrmDataContext без генерации кода. Разница: XrmDataContext предоставляет строго типизированный интерфейс, включая настроенные объекты и атрибуты MSCRM.