SlideShare una empresa de Scribd logo
1 de 36
Enterprise Data Integration for
  Microsoft Dynamics CRM

                                  Daniel Cai

                http://danielcai.blogspot.com
About me


• Daniel Cai
  – Developer @KingswaySoft
     • a software company offering integration software and
       solutions

  – Main interests
     •   Microsoft Dynamics CRM
     •   Business Intelligence
     •   .NET
     •   Enterprise Architecture

  – Microsoft Dynamics CRM MVP – 2011, 2012
Agenda

• Challenges

• Data Migration vs. Data Integration

• Data Migration Processes

• Data Migration / Integration Approaches
   –   CRM Import Wizard
   –   Custom Development
   –   ETL
   –   Service Bus / BizTalk

• Tips, tricks and traps
The Challenges of Data Migration / Integration

• Data migration/integration is complex
    –   The diversity of data and systems
    –   Data integrity
    –   Time-consuming for large data set
    –   The complexity and intricacy when working with Microsoft Dynamics CRM
        web service interfaces

• Data migration/integration is often overlooked
    – Data migration may not appear as important as the application itself
    – Last minute rush often causes poor planning, which could further delay your
      go-live date
    – Improper implementation of data migration can cause “surprises” down the
      road

• Data quality is a key to user adoption
    – Lack of quality data can make the system unusable
    – New business processes often depend on quality data to support them
Data Integration vs. Data Migration


Data        Often a “One-Off”     • Often large volume of data in initial load
Migration   activity              • Cost to fix any data issues thereafter is high
                                  • Often significant data cleansing effort is
                                    required
Data        On-going data         • Managing incremental changes
Integration synchronization and   • Different requirements call for different design
            replication               • Real-time
                                      • Batch
                                      • Messaging
                                  • Usually need to be done within a time window
Data Migration Process


         • Data Extraction
  1       Extra data from different data sources


         • Data Mapping
  2       Transform and map data from source to the target system


         • Data Validation
  3       Validate data

Page 6
         • Data Load
  4       Load data into the target system
Data Migration/Integration Approaches

• Leverage existing technologies and tools
   – CRM Import Data Wizard

   – ETL tools
       •   SSIS
       •   Informatica
       •   Scribe
       •   Connectors for Microsoft Dynamics
       •   etc.

   – BizTalk / Service Bus

   – Other tools

• Write your own
   – Program against CRM Web Service Interfaces (SDK Programming)
CRM Import Data Wizard
CRM 2011 Import Data Wizard

• What’s it?
   – Free utilities offered by the platform

• Pros
   – Works for simple and small data import scenarios
   – Works within application, available for CRM users for self-served data imports
   – Undoable
         • works well for new insert, but not update though
   – Free

• Cons
   – No delete
         • don’t confuse with the above undo capability
   –   No transformation
   –   No scheduling, no automation
   –   Difficult to manage incremental changes
   –   Maximum number of records is constrained by file size
   –   Limited capability of handling relationship
   –   Exceptions to be expected when used for some special entities, fields
CRM 2011 Import Data Wizard
Custom Integration Development
Custom Integration Development
•   How does it work?
     – Write custom code against CRM web service interfaces using SDK or service references

•   Pros
     – Leverage your .NET programming (C# or VB.NET) skills
     – More granular control
     – Flexible integration points
           •   Plugins
           •   Workflows
           •   Standalone applications (Console, Windows Form, and probably third-party apps)

•   Cons
     – Could be an exhaustive effort, particularly when infrastructure coding is involved
           •   Scheduling
           •   Threading
           •   Intricacies of working with CRM web service interfaces

     – Most likely much higher maintenance cost down the road

     – Often the case, the implementation ends up with a tightly-coupled architecture style, which
       leads to poor maintainability
Choices – Custom Development

• Service Interfaces
  – SOAP 2011
  – SOAP 2007
     • Not support by Office 365 CRM Online
     • Could be retired by Microsoft anytime soon

• Programming Styles
  – Early bound
  – Late bound

• Performance Improvement
  – Multi-threading
  – Bulk Data Load API
Early-bound vs. Late-bound
                         Early-bound                                        Late-bound
Pros   •   Compile-time validation through strongly-   •   Slightly better performance comparing to early-
           typed entity classes and fields                 bound
       •   Intellisense                                •   More flexibility
       •   CRM LINQ query APIs                         •   Smaller binary delivery
Cons   •   Small performance overhead                  •   No compile-time validation or intellisense
       •   Dependency on command-line tool when        •   Less productive CRM LINQ query APIs
           CRM metadata has been updated
       •   Larger binary delivery
Data Integration through CRM Web Service




Demo
ETL
ETL Tools
•   What’s ETL
     – Extract, Transform, Load

•   Pros
     –   Development Productivity
     –   Visual development environment for data flows and control flow tasks
     –   Scheduling engine
     –   Performance
     –   Scalability
     –   Extensibility
     –   Can be part of your overall BI and data warehousing strategies

•   Cons
     – Learning curve of the ETL tool
     – Extra license cost of the ETL tool and/or the adapters
     – Probably not ideal solution for real-time requirements

•   Options
     –   SSIS (SQL Server Integration Services)
     –   Informatica
     –   Scribe
     –   Connectors for Microsoft Dynamics
     –   …
SSIS Integration Toolkit for Microsoft Dynamics CRM

• Why SSIS?
   – SSIS is Microsoft’s answer to enterprise data
     integration
   – Scalability
   – Performance
   – Extensibility
   – Easy to work with
   – Accessible technical resources
   – Fits your overall business intelligence strategies

• What’s SSIS Integration Toolkit?
   – A cost effective and easy-to-use SSIS adapter
       • Support for Microsoft Dynamics CRM 2011, 4.0 and 3.0
       • Support for all deployments, including Office 365

• Free developer edition available at
  www.kingswaysoft.com
SSIS Integration Toolkit for Microsoft Dynamics CRM
    (Cont.)
•    CRM Connection Manager
      –   Support for all deployment types (On-premise, IFD, Office 365 and Online)

      –   Support for SOAP 2011, 2007 and 2006 Service Endpoints

•    CRM Source Component
      –   Support for using CRM entity or FetchXML as data source
            •   Any complex FetchXML query, including full metadata from linked entities
            •   Support for parameterized FetchXML query

•    CRM Destination Component
      –   Five actions
            •   Create
            •   Update
            •   Delete
            •   Upsert
            •   ExecuteWorkflow

      –   Support of Bulk API

      –   Support for CRM many-to-many relationship without requiring you to a single line of code

      –   Unique Text Lookup feature, and many more …

•    CRM OptionSet Mapping Component
      –   Translation of input values to valid CRM option set values

      –   Ability to create new option when no match is found
SSIS Integration Toolkit for Microsoft Dynamics CRM




Demo
Connectors for Microsoft Dynamics


• A small footprint ETL engine

• Support the integration between Microsoft
  Dynamics CRM and most of Microsoft
  Dynamics ERP applications (AX, NAV, GP, SL)

• SDK is available to develop your own adapters
Connectors for Microsoft Dynamics (cont.)




   Image from MSDN article: http://msdn.microsoft.com/en-us/library/gg502460.aspx
Service Bus / BizTalk
Service Bus / BizTalk

• What’s service bus?
   – a software architecture model used for designing and implementing
     the interaction and communication between mutually interacting
     software applications in service-oriented architecture (SOA)

• Pros
   – Messaging based approach
         • Optimized to move single transactions between different systems or processes
           in near real time or real time

   – Decoupled integration architectural model
         • Best suited for decoupled heterogeneous systems by using a middleware

• Cons
   – Probably not best fit with large volume data load
   – Performance overhead due to serialization and deserialization
Service Bus Implementation Patterns

• Various Implementation Patterns (Azure Service Bus)
    – Queue
        • No active listener is required
        • destructive read vs. non-destructive read
        • two types of queues
              – message buffer queue
              – persistent queue (new)

    – One Way
        • requires an active listener
        • retries through asynchronous system job

    – Two Way
        • requires an active listener
        • a string value can be returned

    – REST
        • essentially a two-way listener in REST style

    – Topic (new in UR12 and December 2012 Service Update)
        • Similar to a queue, except that listener(s) can subscribe to receive messages from the
          topic
Windows Azure
CRM + Azure Service Bus




          Image from MSDN article: http://msdn.microsoft.com/en-us/library/gg334766.aspx



      • Integration points
         – Plugin
         – Workflow
CRM + Azure Service Bus




Demo
Walkthrough available at http://www.youtube.com/watch?v=qXPEFZXgasE
Some Limitations – CRM + Azure Integration

• There is no way to use custom messages
    – You publish the entire execution context, which could contain
      unnecessary information for other parties

    – Remove sensitive information from the context object if necessary

• Although you can host Windows Service Bus on-premise, you can’t
  use the service endpoint offered by the platform to talk to your
  service bus on-premise from CRM plug-in or Workflow

• If you need to push data (messages) in to CRM when they arrive in
  Azure Service Bus, you would need to write a listener service to do
  so, this is not currently provided by the platform

• There will be some technical challenges if you want to utilize third-
  party service bus solution for CRM Online
CRM On-Premise + Service Bus for Windows Server

• Scenarios
   – You don’t want a service bus that’s hosted on the cloud

• Benefits
   – It is a service bus on-premise
   – Better network connectivity if the service bus is for internal
     integration purposes only

• Caveats / tricks
   – CRM on-premise only, cannot be run in a sandbox runtime
   – We use plugin class static members to avoid constant
     initialization of message factory, which is expensive


   Demo
Tips, Tricks and Treats
Common Technical Issues

•   Microsoft Dynamics CRM as target
     – References (Lookup fields)
          •   Design your program or data flow based upon the dependency

     – OptionSet (Picklist)
          •   Integer values vs. text values
          •   Translation of Option Set values between the source and the target

     – Special Entities
          •   connection
          •   principleobjectaccess
          •   …

     – Special Fields
          •   statecode
          •   statuscode
          •   ownerid
          •   activityparty fields
          •   …

     – Entity Type Code
          •   It could change across environments for custom entities

     – Mind the performance impact with different cascading behavior
Common Technical Issues (cont.)

• Microsoft Dynamics CRM as source
  – Incremental changes
     • CreatedOn, ModifiedOn, VersionNumber
     • Use custom field


  – ActivityParty fields
     • What you get is an entity collection


  – Virtual Fields
     • Read from FormattedValues
How to maximize your data load performance?

•   Minimize the number of fields you select when reading from or writing to CRM

•   Utilize Bulk Data Load API introduced in UR13 and December 2012 Service Update
     –   500%-900% performance improvement for CRM online

•   Use multi-threading to write to CRM in parallel
     –   BDD in SSIS

•   Write to multi-node in parallel if you have a cluster

•   Mind your network latency between your integration client and CRM server

•   Mind the impact that your plugins or workflows may have on data load performance
     –   Disable them if you don’t need them in initial load
     –   Use attribute filtering
     –   Watch out the growth of CRM workflow log table (AsyncOperationBase), and delete completed workflow jobs as
         necessary

•   SQL Performance Optimization
     –   Disk IO, Memory
     –   DB maintenance jobs to REBUILD or REORGANIZE indexes on a regular basis
     –   Consider adding custom indexes if needed

•   Many more tips from CRM whitepapers and the community
Rules of Thumb

• Know your data
    – both the source and target

• Know your tool
    – There are often more than one way to get a job done using one tool

• Define a proper error handling strategy and probably a retry
  mechanism should intermittent error happens

• Possibly use data migration/integration as the venue to clean up your
  data

• Define proper strategies that can help you avoid infinite loops when
  you need to do two-way integration

• Plan ahead, expect changes, particularly metadata changes
Q&A
                  Daniel Cai
KingswaySoft, http://www.kingswaysoft.com
Personal Blog: http://danielcai.blogspot.com
    Email: daniel.cai@kingswaysoft.com

Más contenido relacionado

La actualidad más candente

Digital Transformation And Solution Architecture
Digital Transformation And Solution ArchitectureDigital Transformation And Solution Architecture
Digital Transformation And Solution Architecture
Alan McSweeney
 

La actualidad más candente (20)

Cloud Migration Strategy Framework
Cloud Migration Strategy FrameworkCloud Migration Strategy Framework
Cloud Migration Strategy Framework
 
On business capabilities, functions and application features
On business capabilities, functions and application featuresOn business capabilities, functions and application features
On business capabilities, functions and application features
 
Dynamics 365 CRM Introduction
Dynamics 365 CRM IntroductionDynamics 365 CRM Introduction
Dynamics 365 CRM Introduction
 
Agile Solution Architecture and Design
Agile Solution Architecture and DesignAgile Solution Architecture and Design
Agile Solution Architecture and Design
 
Data Architecture Best Practices for Advanced Analytics
Data Architecture Best Practices for Advanced AnalyticsData Architecture Best Practices for Advanced Analytics
Data Architecture Best Practices for Advanced Analytics
 
Best Practices for Adopting Microsoft Dynamics 365
Best Practices for Adopting Microsoft Dynamics 365Best Practices for Adopting Microsoft Dynamics 365
Best Practices for Adopting Microsoft Dynamics 365
 
Incorporating A DesignOps Approach Into Solution Architecture
Incorporating A DesignOps Approach Into Solution ArchitectureIncorporating A DesignOps Approach Into Solution Architecture
Incorporating A DesignOps Approach Into Solution Architecture
 
IT Operating Model - Fundamental
IT Operating Model - FundamentalIT Operating Model - Fundamental
IT Operating Model - Fundamental
 
Migrating data: How to reduce risk
Migrating data: How to reduce riskMigrating data: How to reduce risk
Migrating data: How to reduce risk
 
Enterprise Data Architecture Deliverables
Enterprise Data Architecture DeliverablesEnterprise Data Architecture Deliverables
Enterprise Data Architecture Deliverables
 
Integrated Project and Solution Delivery And Business Engagement Model
Integrated Project and Solution Delivery And Business Engagement ModelIntegrated Project and Solution Delivery And Business Engagement Model
Integrated Project and Solution Delivery And Business Engagement Model
 
Slides: Taking an Active Approach to Data Governance
Slides: Taking an Active Approach to Data GovernanceSlides: Taking an Active Approach to Data Governance
Slides: Taking an Active Approach to Data Governance
 
Digital Transformation And Solution Architecture
Digital Transformation And Solution ArchitectureDigital Transformation And Solution Architecture
Digital Transformation And Solution Architecture
 
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud MigrationCapgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
 
Introduction Dynamics 365 CRM
Introduction Dynamics 365 CRMIntroduction Dynamics 365 CRM
Introduction Dynamics 365 CRM
 
Introduction to Power Platform
Introduction to Power PlatformIntroduction to Power Platform
Introduction to Power Platform
 
Data Migration Made Easy
Data Migration Made EasyData Migration Made Easy
Data Migration Made Easy
 
Build an Application Integration Strategy
Build an Application Integration StrategyBuild an Application Integration Strategy
Build an Application Integration Strategy
 
E-Business Suite on Oracle Cloud
E-Business Suite on Oracle CloudE-Business Suite on Oracle Cloud
E-Business Suite on Oracle Cloud
 
IMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdfIMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdf
 

Destacado

Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010
Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010
Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010
Uwe Heinz
 
Microsoft Dynamics CRM Technical Training for Dicker Data Resellers
Microsoft Dynamics CRM Technical Training for Dicker Data ResellersMicrosoft Dynamics CRM Technical Training for Dicker Data Resellers
Microsoft Dynamics CRM Technical Training for Dicker Data Resellers
David Blumentals
 
CGG Data Management Services Overview_LinkedIn
CGG Data Management Services Overview_LinkedInCGG Data Management Services Overview_LinkedIn
CGG Data Management Services Overview_LinkedIn
Dwight N. Brown
 
Data migration methodology_for_sap_v01a
Data migration methodology_for_sap_v01aData migration methodology_for_sap_v01a
Data migration methodology_for_sap_v01a
Abhaya Sarangi
 

Destacado (20)

Integration with Microsoft CRM using Mule ESB
Integration with Microsoft CRM using Mule ESBIntegration with Microsoft CRM using Mule ESB
Integration with Microsoft CRM using Mule ESB
 
CRM magic with data migration & integration (Presentation at CRMUG Summit 2013)
CRM magic with data migration & integration (Presentation at CRMUG Summit 2013)CRM magic with data migration & integration (Presentation at CRMUG Summit 2013)
CRM magic with data migration & integration (Presentation at CRMUG Summit 2013)
 
Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010
Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010
Integration bwtween Dynamics CRM 2011 and SAP with BizTalk Server 2010
 
CRM Architecture
CRM ArchitectureCRM Architecture
CRM Architecture
 
Microsoft CRM Dynamics - NEORIS
Microsoft CRM Dynamics - NEORISMicrosoft CRM Dynamics - NEORIS
Microsoft CRM Dynamics - NEORIS
 
Microsoft Dynamics CRM Technical Training for Dicker Data Resellers
Microsoft Dynamics CRM Technical Training for Dicker Data ResellersMicrosoft Dynamics CRM Technical Training for Dicker Data Resellers
Microsoft Dynamics CRM Technical Training for Dicker Data Resellers
 
Bootstrap & Mura: A Match Made in Heaven
Bootstrap & Mura: A Match Made in HeavenBootstrap & Mura: A Match Made in Heaven
Bootstrap & Mura: A Match Made in Heaven
 
MuraCon 2012 - Creating a Mura CMS plugin with FW/1
MuraCon 2012 - Creating a Mura CMS plugin with FW/1MuraCon 2012 - Creating a Mura CMS plugin with FW/1
MuraCon 2012 - Creating a Mura CMS plugin with FW/1
 
Content First: A workflow for building Mura sites with content in mind
Content First: A workflow for building Mura sites with content in mindContent First: A workflow for building Mura sites with content in mind
Content First: A workflow for building Mura sites with content in mind
 
SAP EIM
SAP EIM SAP EIM
SAP EIM
 
Managing Data in MS Dynamics CRM 2015
Managing Data in MS Dynamics CRM 2015Managing Data in MS Dynamics CRM 2015
Managing Data in MS Dynamics CRM 2015
 
Curso Implementacion de Gobierno Electrónico 2016-2017
Curso Implementacion de Gobierno Electrónico 2016-2017Curso Implementacion de Gobierno Electrónico 2016-2017
Curso Implementacion de Gobierno Electrónico 2016-2017
 
Salesforce & SAP Integration
Salesforce & SAP IntegrationSalesforce & SAP Integration
Salesforce & SAP Integration
 
CRM Data Management Services
CRM Data Management ServicesCRM Data Management Services
CRM Data Management Services
 
CGG Data Management Services Overview_LinkedIn
CGG Data Management Services Overview_LinkedInCGG Data Management Services Overview_LinkedIn
CGG Data Management Services Overview_LinkedIn
 
Lotus Notes Application to SharePoint Migration Process
Lotus Notes Application to SharePoint Migration ProcessLotus Notes Application to SharePoint Migration Process
Lotus Notes Application to SharePoint Migration Process
 
Caribbean Integration
Caribbean Integration Caribbean Integration
Caribbean Integration
 
Data migration methodology_for_sap_v01a
Data migration methodology_for_sap_v01aData migration methodology_for_sap_v01a
Data migration methodology_for_sap_v01a
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Unlock SAP - Release the potential of your existing backend systems with Sale...
Unlock SAP - Release the potential of your existing backend systems with Sale...Unlock SAP - Release the potential of your existing backend systems with Sale...
Unlock SAP - Release the potential of your existing backend systems with Sale...
 

Similar a Enterprise Data Integration for Microsoft Dynamics CRM

Webinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSync
Webinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSyncWebinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSync
Webinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSync
APPSeCONNECT
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt
KalsoomTahir2
 
Collateral: Cast Iron for BigMachines
Collateral: Cast Iron for BigMachinesCollateral: Cast Iron for BigMachines
Collateral: Cast Iron for BigMachines
Sean O'Connell
 

Similar a Enterprise Data Integration for Microsoft Dynamics CRM (20)

Jean-René Roy: Integrate Legacy App with Dynamic CRM
Jean-René Roy: Integrate Legacy App with Dynamic CRMJean-René Roy: Integrate Legacy App with Dynamic CRM
Jean-René Roy: Integrate Legacy App with Dynamic CRM
 
Data Migration Done Right for Microsoft Dynamics 365/CRM
Data Migration Done Right for Microsoft Dynamics 365/CRMData Migration Done Right for Microsoft Dynamics 365/CRM
Data Migration Done Right for Microsoft Dynamics 365/CRM
 
CRM Integration Options–Scribe, SmartConnect, Microsoft Connector. What's the...
CRM Integration Options–Scribe, SmartConnect, Microsoft Connector. What's the...CRM Integration Options–Scribe, SmartConnect, Microsoft Connector. What's the...
CRM Integration Options–Scribe, SmartConnect, Microsoft Connector. What's the...
 
RapidiOnline Salesforce-MS Dynamics NAV Presentation
RapidiOnline Salesforce-MS Dynamics NAV PresentationRapidiOnline Salesforce-MS Dynamics NAV Presentation
RapidiOnline Salesforce-MS Dynamics NAV Presentation
 
Webinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSync
Webinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSyncWebinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSync
Webinar: Successful Data Migration to Microsoft Dynamics 365 CRM | InSync
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt
 
--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Cloud Services and Infrastructure in 2017
Cloud Services and Infrastructure in 2017Cloud Services and Infrastructure in 2017
Cloud Services and Infrastructure in 2017
 
System center seminar presentation
System center seminar presentationSystem center seminar presentation
System center seminar presentation
 
Lecture 9: Dynamic web application
Lecture 9: Dynamic web applicationLecture 9: Dynamic web application
Lecture 9: Dynamic web application
 
Integration with Dynamics CRM
Integration with Dynamics CRMIntegration with Dynamics CRM
Integration with Dynamics CRM
 
Informatica Cloud Summer 2016 Release Webinar Slides
Informatica Cloud Summer 2016 Release Webinar SlidesInformatica Cloud Summer 2016 Release Webinar Slides
Informatica Cloud Summer 2016 Release Webinar Slides
 
Choosing the Right Business Intelligence Tools for Your Data and Architectura...
Choosing the Right Business Intelligence Tools for Your Data and Architectura...Choosing the Right Business Intelligence Tools for Your Data and Architectura...
Choosing the Right Business Intelligence Tools for Your Data and Architectura...
 
Micro service architecture
Micro service architecture  Micro service architecture
Micro service architecture
 
Collateral: Cast Iron for BigMachines
Collateral: Cast Iron for BigMachinesCollateral: Cast Iron for BigMachines
Collateral: Cast Iron for BigMachines
 
SOA - Unit 1 - Introduction to SOA with Web Services
SOA - Unit   1 - Introduction to SOA with Web ServicesSOA - Unit   1 - Introduction to SOA with Web Services
SOA - Unit 1 - Introduction to SOA with Web Services
 
DesignMind SQL Server 2008 Migration
DesignMind SQL Server 2008 MigrationDesignMind SQL Server 2008 Migration
DesignMind SQL Server 2008 Migration
 
The move from Siloed to Shared Infrastructure – and the future of the Data Ce...
The move from Siloed to Shared Infrastructure – and the future of the Data Ce...The move from Siloed to Shared Infrastructure – and the future of the Data Ce...
The move from Siloed to Shared Infrastructure – and the future of the Data Ce...
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Enterprise Data Integration for Microsoft Dynamics CRM

  • 1. Enterprise Data Integration for Microsoft Dynamics CRM Daniel Cai http://danielcai.blogspot.com
  • 2. About me • Daniel Cai – Developer @KingswaySoft • a software company offering integration software and solutions – Main interests • Microsoft Dynamics CRM • Business Intelligence • .NET • Enterprise Architecture – Microsoft Dynamics CRM MVP – 2011, 2012
  • 3. Agenda • Challenges • Data Migration vs. Data Integration • Data Migration Processes • Data Migration / Integration Approaches – CRM Import Wizard – Custom Development – ETL – Service Bus / BizTalk • Tips, tricks and traps
  • 4. The Challenges of Data Migration / Integration • Data migration/integration is complex – The diversity of data and systems – Data integrity – Time-consuming for large data set – The complexity and intricacy when working with Microsoft Dynamics CRM web service interfaces • Data migration/integration is often overlooked – Data migration may not appear as important as the application itself – Last minute rush often causes poor planning, which could further delay your go-live date – Improper implementation of data migration can cause “surprises” down the road • Data quality is a key to user adoption – Lack of quality data can make the system unusable – New business processes often depend on quality data to support them
  • 5. Data Integration vs. Data Migration Data Often a “One-Off” • Often large volume of data in initial load Migration activity • Cost to fix any data issues thereafter is high • Often significant data cleansing effort is required Data On-going data • Managing incremental changes Integration synchronization and • Different requirements call for different design replication • Real-time • Batch • Messaging • Usually need to be done within a time window
  • 6. Data Migration Process • Data Extraction 1 Extra data from different data sources • Data Mapping 2 Transform and map data from source to the target system • Data Validation 3 Validate data Page 6 • Data Load 4 Load data into the target system
  • 7. Data Migration/Integration Approaches • Leverage existing technologies and tools – CRM Import Data Wizard – ETL tools • SSIS • Informatica • Scribe • Connectors for Microsoft Dynamics • etc. – BizTalk / Service Bus – Other tools • Write your own – Program against CRM Web Service Interfaces (SDK Programming)
  • 9. CRM 2011 Import Data Wizard • What’s it? – Free utilities offered by the platform • Pros – Works for simple and small data import scenarios – Works within application, available for CRM users for self-served data imports – Undoable • works well for new insert, but not update though – Free • Cons – No delete • don’t confuse with the above undo capability – No transformation – No scheduling, no automation – Difficult to manage incremental changes – Maximum number of records is constrained by file size – Limited capability of handling relationship – Exceptions to be expected when used for some special entities, fields
  • 10. CRM 2011 Import Data Wizard
  • 12. Custom Integration Development • How does it work? – Write custom code against CRM web service interfaces using SDK or service references • Pros – Leverage your .NET programming (C# or VB.NET) skills – More granular control – Flexible integration points • Plugins • Workflows • Standalone applications (Console, Windows Form, and probably third-party apps) • Cons – Could be an exhaustive effort, particularly when infrastructure coding is involved • Scheduling • Threading • Intricacies of working with CRM web service interfaces – Most likely much higher maintenance cost down the road – Often the case, the implementation ends up with a tightly-coupled architecture style, which leads to poor maintainability
  • 13. Choices – Custom Development • Service Interfaces – SOAP 2011 – SOAP 2007 • Not support by Office 365 CRM Online • Could be retired by Microsoft anytime soon • Programming Styles – Early bound – Late bound • Performance Improvement – Multi-threading – Bulk Data Load API
  • 14. Early-bound vs. Late-bound Early-bound Late-bound Pros • Compile-time validation through strongly- • Slightly better performance comparing to early- typed entity classes and fields bound • Intellisense • More flexibility • CRM LINQ query APIs • Smaller binary delivery Cons • Small performance overhead • No compile-time validation or intellisense • Dependency on command-line tool when • Less productive CRM LINQ query APIs CRM metadata has been updated • Larger binary delivery
  • 15. Data Integration through CRM Web Service Demo
  • 16. ETL
  • 17. ETL Tools • What’s ETL – Extract, Transform, Load • Pros – Development Productivity – Visual development environment for data flows and control flow tasks – Scheduling engine – Performance – Scalability – Extensibility – Can be part of your overall BI and data warehousing strategies • Cons – Learning curve of the ETL tool – Extra license cost of the ETL tool and/or the adapters – Probably not ideal solution for real-time requirements • Options – SSIS (SQL Server Integration Services) – Informatica – Scribe – Connectors for Microsoft Dynamics – …
  • 18. SSIS Integration Toolkit for Microsoft Dynamics CRM • Why SSIS? – SSIS is Microsoft’s answer to enterprise data integration – Scalability – Performance – Extensibility – Easy to work with – Accessible technical resources – Fits your overall business intelligence strategies • What’s SSIS Integration Toolkit? – A cost effective and easy-to-use SSIS adapter • Support for Microsoft Dynamics CRM 2011, 4.0 and 3.0 • Support for all deployments, including Office 365 • Free developer edition available at www.kingswaysoft.com
  • 19. SSIS Integration Toolkit for Microsoft Dynamics CRM (Cont.) • CRM Connection Manager – Support for all deployment types (On-premise, IFD, Office 365 and Online) – Support for SOAP 2011, 2007 and 2006 Service Endpoints • CRM Source Component – Support for using CRM entity or FetchXML as data source • Any complex FetchXML query, including full metadata from linked entities • Support for parameterized FetchXML query • CRM Destination Component – Five actions • Create • Update • Delete • Upsert • ExecuteWorkflow – Support of Bulk API – Support for CRM many-to-many relationship without requiring you to a single line of code – Unique Text Lookup feature, and many more … • CRM OptionSet Mapping Component – Translation of input values to valid CRM option set values – Ability to create new option when no match is found
  • 20. SSIS Integration Toolkit for Microsoft Dynamics CRM Demo
  • 21. Connectors for Microsoft Dynamics • A small footprint ETL engine • Support the integration between Microsoft Dynamics CRM and most of Microsoft Dynamics ERP applications (AX, NAV, GP, SL) • SDK is available to develop your own adapters
  • 22. Connectors for Microsoft Dynamics (cont.) Image from MSDN article: http://msdn.microsoft.com/en-us/library/gg502460.aspx
  • 23. Service Bus / BizTalk
  • 24. Service Bus / BizTalk • What’s service bus? – a software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in service-oriented architecture (SOA) • Pros – Messaging based approach • Optimized to move single transactions between different systems or processes in near real time or real time – Decoupled integration architectural model • Best suited for decoupled heterogeneous systems by using a middleware • Cons – Probably not best fit with large volume data load – Performance overhead due to serialization and deserialization
  • 25. Service Bus Implementation Patterns • Various Implementation Patterns (Azure Service Bus) – Queue • No active listener is required • destructive read vs. non-destructive read • two types of queues – message buffer queue – persistent queue (new) – One Way • requires an active listener • retries through asynchronous system job – Two Way • requires an active listener • a string value can be returned – REST • essentially a two-way listener in REST style – Topic (new in UR12 and December 2012 Service Update) • Similar to a queue, except that listener(s) can subscribe to receive messages from the topic
  • 27. CRM + Azure Service Bus Image from MSDN article: http://msdn.microsoft.com/en-us/library/gg334766.aspx • Integration points – Plugin – Workflow
  • 28. CRM + Azure Service Bus Demo Walkthrough available at http://www.youtube.com/watch?v=qXPEFZXgasE
  • 29. Some Limitations – CRM + Azure Integration • There is no way to use custom messages – You publish the entire execution context, which could contain unnecessary information for other parties – Remove sensitive information from the context object if necessary • Although you can host Windows Service Bus on-premise, you can’t use the service endpoint offered by the platform to talk to your service bus on-premise from CRM plug-in or Workflow • If you need to push data (messages) in to CRM when they arrive in Azure Service Bus, you would need to write a listener service to do so, this is not currently provided by the platform • There will be some technical challenges if you want to utilize third- party service bus solution for CRM Online
  • 30. CRM On-Premise + Service Bus for Windows Server • Scenarios – You don’t want a service bus that’s hosted on the cloud • Benefits – It is a service bus on-premise – Better network connectivity if the service bus is for internal integration purposes only • Caveats / tricks – CRM on-premise only, cannot be run in a sandbox runtime – We use plugin class static members to avoid constant initialization of message factory, which is expensive Demo
  • 32. Common Technical Issues • Microsoft Dynamics CRM as target – References (Lookup fields) • Design your program or data flow based upon the dependency – OptionSet (Picklist) • Integer values vs. text values • Translation of Option Set values between the source and the target – Special Entities • connection • principleobjectaccess • … – Special Fields • statecode • statuscode • ownerid • activityparty fields • … – Entity Type Code • It could change across environments for custom entities – Mind the performance impact with different cascading behavior
  • 33. Common Technical Issues (cont.) • Microsoft Dynamics CRM as source – Incremental changes • CreatedOn, ModifiedOn, VersionNumber • Use custom field – ActivityParty fields • What you get is an entity collection – Virtual Fields • Read from FormattedValues
  • 34. How to maximize your data load performance? • Minimize the number of fields you select when reading from or writing to CRM • Utilize Bulk Data Load API introduced in UR13 and December 2012 Service Update – 500%-900% performance improvement for CRM online • Use multi-threading to write to CRM in parallel – BDD in SSIS • Write to multi-node in parallel if you have a cluster • Mind your network latency between your integration client and CRM server • Mind the impact that your plugins or workflows may have on data load performance – Disable them if you don’t need them in initial load – Use attribute filtering – Watch out the growth of CRM workflow log table (AsyncOperationBase), and delete completed workflow jobs as necessary • SQL Performance Optimization – Disk IO, Memory – DB maintenance jobs to REBUILD or REORGANIZE indexes on a regular basis – Consider adding custom indexes if needed • Many more tips from CRM whitepapers and the community
  • 35. Rules of Thumb • Know your data – both the source and target • Know your tool – There are often more than one way to get a job done using one tool • Define a proper error handling strategy and probably a retry mechanism should intermittent error happens • Possibly use data migration/integration as the venue to clean up your data • Define proper strategies that can help you avoid infinite loops when you need to do two-way integration • Plan ahead, expect changes, particularly metadata changes
  • 36. Q&A Daniel Cai KingswaySoft, http://www.kingswaysoft.com Personal Blog: http://danielcai.blogspot.com Email: daniel.cai@kingswaysoft.com