280 likes | 493 Views
Enterprise Data Integration Strategies for Microsoft Dynamics CRM. Jean-Ren é Roy Salim Adamon. Who is Jean-Rene Roy?. Independent Consultant SQL Server MVP Software Architect and team lead for many enterprises Program Lead for OttawaSQL.Net and .NET Ottawa Community
E N D
Enterprise Data Integration Strategies for Microsoft Dynamics CRM Jean-René Roy Salim Adamon
Who is Jean-Rene Roy? • Independent Consultant • SQL Server MVP • Software Architect and team lead for many enterprises • Program Lead for OttawaSQL.Net and .NET Ottawa Community • Founder of SQLTeach and DevTeach • SQL Server / CRM Dev / TFS Specialist • System Architect for TBS, HoC, CCA
Who is Salim Adamon? • CRM Consultant @ “A Hundred Answers” • CRM and Technology Solution Architect • Microsoft Dynamics CRM MVP • CRM Blogger
Agenda • Introduction to Dynamics CRM • Data Migration vs Data Integration • Data Migration & Integration • Strategies • Examples and Challenges • Pitfalls of developing with Dynamics CRM
What is Dynamics CRM? • Dynamics CRM is a COTS product • Flexible Client Relationship Management platform • Allows for complex configuration • Provides deep customization framework • Customizations are limited by the CRM framework Live by the Framework Or Die by the Framework
Introduction to the CRM Database CRM vs T-SQL • Entity = DB Table • Entity Fields = Table Fields • Relationship 1 - N, N- N, N-1 = SQL Server Index • Bulk Edit = T-SQL Update statement • Workflow ~ T-SQL Triggers
Introduction to the GUID Concept in CRM • Let’s take a look at CRM Database • What’s the type of the Primary key in Tables? • What’s a Dynamic View? • What is the Lookup Concept? (Advanced Find)
Data Migration & Data Integration • Data migration/integration • Very complex (diversity of data, integrity, downtime) • Forgotten about (overlooked, treated as less important) • User adoption is driven by the quality of your data!
Data Migration vs Data Integration Data Migration Data Integration “One and done” activity Initial data load • Moving large volume of data Get it right • Bring in only relevant data • Cost to fix data issues is high • On-going replication or synchronization of data • Different needs: • Real Time • Batch (scheduled based) • On-demand (messaging/queue) • Needs to be maintained as the application evolves
Data Migration / Integration Strategies • CRM Data Import Wizard • ETL Tools • SSIS + 3rd Party CRM Connector • Scribe • Connectors for MS Dynamics • More… • Custom Integration Development • Write your own using CRM web services SDK or service reference • BizTalk / MSMQ (Message queue)
Data Migration/Integration Strategies CRM Data Import Wizard • Using XML/CSV Templates • Configure mapping and Import data into CRM DEMO
Data Migration/Integration Strategies ETL Tools • Leverage SQL Server Integration Services (SSIS) • Performance • Scalability • Extensibility • Scheduling capabilities • Dynamics CRM Platform restrictions: • Allows to read data from database using System View • Create, Update, Delete operations NOT allowed at the database level • Create, Update, Delete must be done via CRM SDK or web service reference • Solution • Use 3rd party vendor (SSIS Integration Toolkit with CRM Connectors) • Kingsway Software
Data Migration/Integration Strategies ETL Tools • Best practices (why doing it like this?) • Done at the beginning • Run every day and adjusted • Why syncing the GUID DEMO GUID-Sync ETL
Data Migration/Integration Strategies Need a break? Back in 15 minutes…
Data Migration/Integration Strategies ETL Tools • Continuous Data Integration • Introduce the Sync Data Concept • Sync Data in one direction vs two directions • Why do we do this?
Data Migration/Integration Strategies ETL Tools : Batch Data Processing • Talk about the User Story for Check Payment • Show what can be a Batch Integration • Why doing it in Batch? • Show the SQL Server Agent Calling SSIS DEMO Batch Check SSIS Package
Data Migration/Integration Strategies Custom Development • Using .NET Code with XRM SDK or Service Reference • CRUD operations • Data Integration using multiple sources • You are the ultimate decider! • Why custom development? • Real-time integration • Keep all components as part of a single “CRM Solution” (no additional components to deploy) • Leverage internal resources strengths • Learning curve and cost of external integration tools
Data Migration/Integration Strategies Custom Development • Real-time Integration using Plugins • Custom Business Logic (code .NET/C# or VB) • Event handles for events fired by Dynamics CRM • Example of events: Create, Update, Delete, Set State etc. DEMO
Data Migration/Integration Strategies Custom Development • Other Possibilities • Workflows • Asynchronous or Synchronous • Configurable (screen editor) • Functionality can be extended with Custom Code • No execution timeout • Dialogs • Interactive and synchronous process • Requires user input to start and run to completion • Functionality can be extended with Custom Code
Pitfalls of developing with Dynamics CRM • Traditional Software Development : 25 Analyze 75% coding • Development with CRM : 75% Analyze 25% coding
Pitfalls of developing with Dynamics CRM • Using CRM for high volume data: plan carefully • Using COST product to build custom process can take a long time. Need an adapted development process • Involve users early (UAT/Training) • Define source control strategies early • Re-design existing process for the framework can be challenging • Remodel your processes to best use the out of the box features
Contact Info • Jean-René Roy • Email: jrroy@devteach.com • Blog: http://www.softdesign.ca/blog/ • Salim Adamon • Email: s.adamon@outlook.com • Blog: http://thedynamicscrmblog.wordpress.com/
References • Third party: • https://www.kingswaysoft.com • https://www.kingswaysoft.com/products/ssis-integration-toolkit-for-microsoft-dynamics-crm/purchase • Blogs / Forum: • http://danielcai.blogspot.ca/2012/02/improve-crm-data-load-performance-by.html • http://danielcai.blogspot.ca/ • http://petecrm2011.wordpress.com/page/2/ • http://guruprasadcrm.blogspot.com.au/2011/07/retrieving-optionset-lable-data-using.html • http://stackoverflow.com/questions/10443253/how-to-set-option-set-value-in-crm-2011 • SSIS BDD: • http://technet.microsoft.com/en-us/sqlserver/hh369962 • http://www.microsoft.com/en-ca/download/details.aspx?id=4123