Quick Start guide for Data Exchange Framework (DEF)
Are you a newbie who want to Quick Start the Sitecore Data Exchange framework ? Here in this blog am sharing the basic details about the Data Exchange Framework. You can always go through the Sitecore Documentation to understand deeply but here am providing the same in a little different way. I hope this would help you to understand DEF quickly. Please feel free to add your comments.
Data Exchange Framework is an ETL (Extract, Transform, Load) tool built by Sitecore. It allows you to synchronize the data between multiple systems. DEF will act as a middle layer allows you to sync the from varied external source into Sitecore, the transformed data you can write to non-Sitecore systems as well instead of Sitecore. You can implement DEF feature depending upon the needs.
When you should consider using DEF ?
The below are the scenario you should consider using.
- You want to import data in Sitecore, using a flexible framework.
- Want to control the data mapping using configuration.
- You have developers & team member ready to learn the DEF for customization needs.
Overcome DEF implementation challenges
- Sitecore provides good documentation to start with DEF (better than old DEF version), but when you want to customize the functionality you may find very limited documentation from Sitecore.
- If want to customize some functionality or data transformation, you need to learn the data exchange framework deep by yourself.
- If required decompile the code and put it into you sample project to investigate or understand how DEF works
- Always keep the sample application ready to debug and find how the DEF works.
Let us understand what DEF is all about.
What is Data Exchange Tenant ?
Tenant is starting point of DEF process. It allows you to logically groups the configuration and settings of synchronization process.
It’s recommended to create different tenant, if you want to import different system data into Sitecore. Different tenant will allow you to manage data synchronization effectively.
You can create multiple tenants like below.
- Tenant 1 — Sync Product Catalog data → From ERP system
- Tenant 2 — Sync Product Pricing data → ERP system
- Tenant 3 — Sync Inventory data → ERP system
What are the Tenant Configurations available ?
Tenant configurations are done in 7 areas as mentioned below. These folders will get created automatically while creating a tenant.
- Data Access → The basic unit of data is data properties. Data access configuration allows you can configure properties required to import data.
- Endpoints → Endpoints allows you will define source and target endpoints.
- Pipeline Batches → Pipeline batch is the logical starting point where the sync process will start.
- Pipeline → Pipeline is basic unit of processing, each pipeline will be defined to perform unique needs. Each pipeline with have one or more pipeline steps, allow you to define sync process order.
- Tenant Settings → Tenant setting allow you to configure the tenant specific configurations, like Endpoint URL, header parameter, data synchronization settings, etc.,
- Value Mapping Set → This configuration allow you to configure the value mapping between the source and the target system attributes.
DEF groups the Source and Target system and call it as Providers.
Value Accessor vs Value Accessor Set
This is the most important step of configuration, look at the comparison below.
What is Provider in DEF ?
Providers allows you to logically group the configuration or settings.
What is Endpoint in DEF ?
This is next logical step, allows you to define the source and target system endpoints.
What do you mean Pipeline in DEF ?
Pipeline allow you to logically group the data synchronization process.
What is Pipeline Step in DEF ?
Pipeline Step allows you to define what to do with data.
What is Tenant Setting in DEF ?
To processing any data conditionally you need to define setting, here you will configure the same.
What is Value Mapping Sets in DEF ?
Value Mapping Set allows you to configure the column mapping, between the Source system & Target system.
For Example
- You will be allowed to map the Source System ‘code’ column with Sitecore ‘Product Code’ column.
Any good reference to start the DEF with ?
I found an interesting work done by ‘waughn’, it includes the effort he put on documenting the steps and the code samples.
Read how to working with the sample.
Source code you can use it for your reference.
Download the package and start with the sample from Sitecore Marketplace.
Welcome to the DEF world!