jean-rené roy: integrate legacy app with dynamic crm

25
Enterprise Data Integration Strategies for Microsoft Dynamics CRM Jean-René Roy Salim Adamon

Upload: msdevmtl

Post on 16-Jul-2015

212 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Enterprise Data Integration

Strategies for Microsoft Dynamics

CRM

Jean-René Roy

Salim Adamon

Page 2: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Page 3: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Agenda

• Introduction to Dynamics CRM

• Data Migration vs Data Integration

• Data Migration & Integration

Strategies

Examples and Challenges

• Pitfalls of developing with Dynamics CRM

Page 4: Jean-René Roy: Integrate Legacy App with Dynamic 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 FrameworkOr

Die by the Framework

Page 5: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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 CRM Database

Page 6: Jean-René Roy: Integrate Legacy App with Dynamic CRM

DEMO

Introduction to the CRM Database

Page 7: Jean-René Roy: Integrate Legacy App with Dynamic 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)

Introduction to the GUID Concept in CRM

Page 8: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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!

Page 9: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Data Migration vs Data Integration

Data Migration

• “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

Data Integration

• 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

Page 10: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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)

Page 11: Jean-René Roy: Integrate Legacy App with Dynamic CRM

CRM Data Import Wizard

• Using XML/CSV Templates

• Configure mapping and Import data into CRM

DEMO

Data Migration/Integration Strategies

Page 12: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Page 13: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Page 14: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Migration of large Data with SSIS Tool

You will need the Balance Data Distributor

Page 15: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Need a break?

Data Migration/Integration Strategies

Back in 15 minutes…

Page 16: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Page 17: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

DEMOBatch Check SSIS Package

Data Migration/Integration Strategies

Page 18: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Page 19: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Page 20: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Data Migration/Integration Strategies

Page 21: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Pitfalls of developing with Dynamics CRM

• Traditional Software Development :

25 Analyze 75% coding

75%

25%

25%

75%• Development with CRM :

75% Analyze 25% coding

Page 22: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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

Page 23: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Questions?

Page 24: Jean-René Roy: Integrate Legacy App with Dynamic CRM

Contact Info

• Jean-René Roy Email: [email protected]

Blog: http://www.softdesign.ca/blog/

• Salim Adamon Email: [email protected]

Blog: http://thedynamicscrmblog.wordpress.com/

Page 25: Jean-René Roy: Integrate Legacy App with Dynamic CRM

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•