SUGBY
3rd meetup
Data Exchange Framework
Essential basics and practical usage takeaways.
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
“Synchronize data between Sitecore and 3rd party systems.”
Data Exchange Framework 1.1
(https://dev.sitecore.net/Downloads/Data_Exc
hange_Framework/1x/Data_Exchange_Framew
ork_11.aspx)
Release: August 2016
Sitecore: 8.1
Documentation: Developer Guide for
the most simple case
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
The only image found on the Internet
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange
Framework
3rd
Party data
Sitecore
DEF
Configuration
Data Items
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange
Framework
Sitecore
DEF
Configuration
Desktop application
Web application
Thirdparty CMS
Sitecore
Data Provider
CRM
Data Provider
Database
Data Provider
Sample:
xDB Contacts to CRM Sync
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
DEF Data Provider
Develop
Endpoint
template, settings plugin, model, converter
Pipeline Step
template, model, converter, processor
Value Accessor
template, converter, value reader, value writer
Value Accessor Set
template
Configure
● Add Tenant
● Add Endpoint for Source
● Add Value Accessor Set for Source
● Create Template for Target
● Add Folder to Hold New Sitecore Items
● Add Endpoint for Target
● Add Value Accessor Set for Target
● Add Value Mapping Set
● Add Pipeline to Sync Single Record from
Source
● Add Pipline Step to Resolve Target Item
● Add Pipeline Step to Apply Mappings
● Add Pipeline Step to Update Sitecore Item
● Add Pipeline to Read Source
● Add Pipeline Step to Read from Source
● Add Pipeline Step to Iterate Data from
Source
● Add Pipeline Batch
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Pipeline Batch
Read data from 3rd
Party Endpoint
Iterate data entities
Resolve Item in
Sitecore
Apply Mappings
Configuration
Update Sitecore
Item
Sample Batch:
CRM Campaigns
Sync Pipeline
Batch
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
GatherContent is “simple content collaboration software that helps you
organise and produce content before it's published.”
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Project
Document
Section
Field 1
Field 2
Field 3
Items folder
Item
Language Version
Field 1
Field 2
Field 3
Daniil Rashchupkin. Brimit. 2016.
…
…
…
…
SitecoreGather Content
SUGBY
3rd meetup
Data Exchange Framework
Demo GC
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework - Real project Challenges
Sitecore
Sitecore Items
Dynamics
CRMData Exchange
Framework
Dynamics
CRM Connect
Products:
Real estate units
Pages:
Unit Detail Page
Fields: Unit Size, Location,
Price, Country, Project
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
Dynamics CRM Connect
http://integrationsdn.sitecore.net/DynamicsCrmConnect/v1.1/
Standard pipeline batches
 CRM Campaign Synchronization
 CRM Contact (Full) Synchronization
 CRM Marketing List Synchronization
 xDB Contact Synchronization
 Products Sync ?
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
Dynamics CRM Entity
UnitID [Guid]
Product Name [String]
Country [Reference Field]
Project [Reference Field]
Sitecore Item
UnitID [Guid]
Product Name [Single line]
Country [Droplink]
Project [Droplink]
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
Dynamics CRM Entity
UnitID [Guid]
Product Name [String]
Country [Reference Field]
Project [Reference Field]
Sitecore Item
UnitID [Guid]
Product Name [Single line]
Country [Droplink]
Project [Droplink]
Custom….LookupValueReader, LookupValueReaderConverter
Standard Sitecore Converters
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
Dynamics CRM Entity
Project [Reference Field]
Sitecore Item
Data/CRM/Projects
+ Project Entities Repository
+ Project Value Accessor Set
+ Project Value Mapping Set
+ Project Pipeline
Read Projects
Iterate Projects
Resolve, Apply, Update
+ Project Pipeline Batch
Daniil Rashchupkin. Brimit. 2016.
Configuration
SUGBY
3rd meetup
Data Exchange Framework
Dynamics CRM Entity
UnitID [Guid]
Product Name [String]
Country [Reference Field]
Project [Reference Field]
Sitecore Item
Sales Center
UAE
Lake Tower
Apartment 23
Reasons: SEO, Content management friendly, # of Items
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Data Exchange Framework
Override Resolve Item processor.
private ItemModel CreateNewItem(object
identifierObject, IItemModelRepository
repository, ResolveSitecoreItemSettings
settings, PipelineContext pipelineContext)
…
var product = identifierObject as
Microsoft.Xrm.Sdk.Entity;
var country =
product.Attributes[“md_countryid"];
var newParent = EnsureCountryPath();
Guid id = repository.Create(validItemName,
settings.TemplateForNewItem, newParent);
return repository.Get(id);
Products Sync Pipeline Batch
Read Entities from
CRM
Iterate data entities
Resolve Item in
Sitecore
Apply Mappings
Configuration
Update Sitecore
Item
Daniil Rashchupkin. Brimit. 2016.
SUGBY
3rd meetup
Daniil Rashchupkin. Brimit. 2016.
Thank you for attention!

Data Exchange Framework. Essential basics and practical usage takeaways.

  • 1.
    SUGBY 3rd meetup Data ExchangeFramework Essential basics and practical usage takeaways. Daniil Rashchupkin. Brimit. 2016.
  • 2.
    SUGBY 3rd meetup Data ExchangeFramework “Synchronize data between Sitecore and 3rd party systems.” Data Exchange Framework 1.1 (https://dev.sitecore.net/Downloads/Data_Exc hange_Framework/1x/Data_Exchange_Framew ork_11.aspx) Release: August 2016 Sitecore: 8.1 Documentation: Developer Guide for the most simple case Daniil Rashchupkin. Brimit. 2016.
  • 3.
    SUGBY 3rd meetup The onlyimage found on the Internet Daniil Rashchupkin. Brimit. 2016.
  • 4.
    SUGBY 3rd meetup Data Exchange Framework 3rd Partydata Sitecore DEF Configuration Data Items Daniil Rashchupkin. Brimit. 2016.
  • 5.
    SUGBY 3rd meetup Data Exchange Framework Sitecore DEF Configuration Desktopapplication Web application Thirdparty CMS Sitecore Data Provider CRM Data Provider Database Data Provider Sample: xDB Contacts to CRM Sync Daniil Rashchupkin. Brimit. 2016.
  • 6.
    SUGBY 3rd meetup DEF DataProvider Develop Endpoint template, settings plugin, model, converter Pipeline Step template, model, converter, processor Value Accessor template, converter, value reader, value writer Value Accessor Set template Configure ● Add Tenant ● Add Endpoint for Source ● Add Value Accessor Set for Source ● Create Template for Target ● Add Folder to Hold New Sitecore Items ● Add Endpoint for Target ● Add Value Accessor Set for Target ● Add Value Mapping Set ● Add Pipeline to Sync Single Record from Source ● Add Pipline Step to Resolve Target Item ● Add Pipeline Step to Apply Mappings ● Add Pipeline Step to Update Sitecore Item ● Add Pipeline to Read Source ● Add Pipeline Step to Read from Source ● Add Pipeline Step to Iterate Data from Source ● Add Pipeline Batch Daniil Rashchupkin. Brimit. 2016.
  • 7.
    SUGBY 3rd meetup Data ExchangeFramework Daniil Rashchupkin. Brimit. 2016.
  • 8.
    SUGBY 3rd meetup Pipeline Batch Readdata from 3rd Party Endpoint Iterate data entities Resolve Item in Sitecore Apply Mappings Configuration Update Sitecore Item Sample Batch: CRM Campaigns Sync Pipeline Batch Daniil Rashchupkin. Brimit. 2016.
  • 9.
    SUGBY 3rd meetup Data ExchangeFramework Daniil Rashchupkin. Brimit. 2016.
  • 10.
    SUGBY 3rd meetup GatherContent is“simple content collaboration software that helps you organise and produce content before it's published.” Daniil Rashchupkin. Brimit. 2016.
  • 11.
    SUGBY 3rd meetup Project Document Section Field 1 Field2 Field 3 Items folder Item Language Version Field 1 Field 2 Field 3 Daniil Rashchupkin. Brimit. 2016. … … … … SitecoreGather Content
  • 12.
    SUGBY 3rd meetup Data ExchangeFramework Demo GC Daniil Rashchupkin. Brimit. 2016.
  • 13.
    SUGBY 3rd meetup Data ExchangeFramework - Real project Challenges Sitecore Sitecore Items Dynamics CRMData Exchange Framework Dynamics CRM Connect Products: Real estate units Pages: Unit Detail Page Fields: Unit Size, Location, Price, Country, Project Daniil Rashchupkin. Brimit. 2016.
  • 14.
    SUGBY 3rd meetup Data ExchangeFramework Dynamics CRM Connect http://integrationsdn.sitecore.net/DynamicsCrmConnect/v1.1/ Standard pipeline batches  CRM Campaign Synchronization  CRM Contact (Full) Synchronization  CRM Marketing List Synchronization  xDB Contact Synchronization  Products Sync ? Daniil Rashchupkin. Brimit. 2016.
  • 15.
    SUGBY 3rd meetup Data ExchangeFramework Dynamics CRM Entity UnitID [Guid] Product Name [String] Country [Reference Field] Project [Reference Field] Sitecore Item UnitID [Guid] Product Name [Single line] Country [Droplink] Project [Droplink] Daniil Rashchupkin. Brimit. 2016.
  • 16.
    SUGBY 3rd meetup Data ExchangeFramework Dynamics CRM Entity UnitID [Guid] Product Name [String] Country [Reference Field] Project [Reference Field] Sitecore Item UnitID [Guid] Product Name [Single line] Country [Droplink] Project [Droplink] Custom….LookupValueReader, LookupValueReaderConverter Standard Sitecore Converters Daniil Rashchupkin. Brimit. 2016.
  • 17.
    SUGBY 3rd meetup Data ExchangeFramework Dynamics CRM Entity Project [Reference Field] Sitecore Item Data/CRM/Projects + Project Entities Repository + Project Value Accessor Set + Project Value Mapping Set + Project Pipeline Read Projects Iterate Projects Resolve, Apply, Update + Project Pipeline Batch Daniil Rashchupkin. Brimit. 2016. Configuration
  • 18.
    SUGBY 3rd meetup Data ExchangeFramework Dynamics CRM Entity UnitID [Guid] Product Name [String] Country [Reference Field] Project [Reference Field] Sitecore Item Sales Center UAE Lake Tower Apartment 23 Reasons: SEO, Content management friendly, # of Items Daniil Rashchupkin. Brimit. 2016.
  • 19.
    SUGBY 3rd meetup Data ExchangeFramework Override Resolve Item processor. private ItemModel CreateNewItem(object identifierObject, IItemModelRepository repository, ResolveSitecoreItemSettings settings, PipelineContext pipelineContext) … var product = identifierObject as Microsoft.Xrm.Sdk.Entity; var country = product.Attributes[“md_countryid"]; var newParent = EnsureCountryPath(); Guid id = repository.Create(validItemName, settings.TemplateForNewItem, newParent); return repository.Get(id); Products Sync Pipeline Batch Read Entities from CRM Iterate data entities Resolve Item in Sitecore Apply Mappings Configuration Update Sitecore Item Daniil Rashchupkin. Brimit. 2016.
  • 20.
    SUGBY 3rd meetup Daniil Rashchupkin.Brimit. 2016. Thank you for attention!