Upload
daniil-rashchupkin
View
256
Download
2
Embed Size (px)
Citation preview
SUGBY3rd meetup
Data Exchange FrameworkEssential basics and practical usage takeaways.
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd meetup
Data Exchange Framework
“Synchronize data between Sitecore and 3rd party systems.”
Data Exchange Framework 1.1(https://dev.sitecore.net/Downloads/Data_Exchange_Framework/1x/Data_Exchange_Framework_11.aspx)
Release: August 2016Sitecore: 8.1Documentation: Developer Guide for the most simple case
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd meetup
The only image found on the Internet
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd meetup
Data Exchange Framework 3rd Party data
Sitecore
DEF Configuration
Data Items
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd meetup
Data Exchange Framework
Sitecore
DEF Configuration
Desktop applicationWeb application
Thirdparty CMS
Sitecore Data Provider
CRM Data Provider
Database Data ProviderSample:
xDB Contacts to CRM Sync
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd meetup
DEF Data Provider
Develop
Endpointtemplate, settings plugin, model, converter
Pipeline Steptemplate, model, converter, processor
Value Accessortemplate, converter, value reader, value writer
Value Accessor Settemplate
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.
SUGBY3rd meetup
Data Exchange Framework
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd 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.
SUGBY3rd meetup
Data Exchange Framework
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd meetup
GatherContent is “simple content collaboration software that helps youorganise and produce content before it's published.”
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd 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
SUGBY3rd meetup
Data Exchange Framework
Demo GC
Daniil Rashchupkin. Brimit. 2016.
SUGBY3rd 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.
SUGBY3rd meetup
Data Exchange Framework
Dynamics CRM Connecthttp://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.
SUGBY3rd 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.
SUGBY3rd 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.
SUGBY3rd 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 ProjectsIterate Projects
Resolve, Apply, Update+ Project Pipeline Batch
Daniil Rashchupkin. Brimit. 2016.
Configuration
SUGBY3rd 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.
SUGBY3rd meetup
Data Exchange FrameworkOverride 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.
SUGBY3rd meetup
Daniil Rashchupkin. Brimit. 2016.
Thank you for attention!