Sitecore 9 Dynamic CRM Connector: Sync Sitecore custom facets with Dynamic CRM (Part 2)
In previous article I have created custom facets in Sitecore for CRM connector, Now in this article I am going to sync these custom facets with Dynamic CRM.Step 1: Specify how to write to the Contact facet
- Navigate to this location “/sitecore/system/Data Exchange/XXX/Data Access/Value Accessor Sets/Providers/Dynamics/Dynamics Contact”
- Add the following item.
- Template : Entity Attribute Value Accessor
- Item Name: GraduateYear on Dynamics Contact
- Set the following field values:
- Attribute Name: CRM Field Name
- Value Type: Option Set Value (If dropdown otherwise blank for single line
Step 2: Specify how to read from the Dynamics contact
- Navigate to this location “/sitecore/system/Data Exchange/XXX/Data Access/Value Accessor Sets/Providers/xConnect”
- Add the following item.
- Template : xConnect Entity Facet Value Accessor Set
- Item Name: xConnect Contact Custom Information Facet
- Select the new item.
- Add the following item.
- Template : xConnect Entity Facet Property Value Accessor
- Item Name: Graduate Year on xConnect Graduate Year
- Set the following field values:
- Facet Property: Collection Models > Custom Models > YourCustomModel > Facets > Contact > FacetKey > GraduateYear
- Save the item
Step 3: Drop Down Settings
- Navigate to this location “/sitecore/system/Data Exchange/XXX/Tenant Settings/Common/Code Definition Sets”
- Add the following item:
- Template : Code Definition Set
- Item Name: Dynamics Graduate Year Code
- Select the new item.
- Add the following item:
- Template : Code Definition
- Item Name: 2019
- Set the following field values:
- Value: Similar which is assign in CRM
- Save the item.
- Navigate to this location “/sitecore/system/Data Exchange/XXX/Data Access/Value Readers/Providers/Dynamics”
- Add the following item:
- Template : Description to Code Value Reader
- Item Name: Dynamics Graduate Year Description to Code Reader
- Set the following field values:
- Code Definition Set: Code Definition Sets>Dynamics Graduate Year Code
Step 4: Map Dynamics data to the contact facet
- Navigate to this location “/sitecore/system/Data Exchange/XXX/Value Mapping Sets/xConnect Contact to Dynamics Contact Mappings/Contact Model to Dynamics Contact”
- Add the following item.
- Template : Value Mapping
- Item Name: Graduate Year
- Set the following field values:
- Source Accessor: /sitecore/system/Data Exchange/XXX/Data Access/Value Accessor Sets/Providers/xConnect/xConnect Contact Custom Information Facet/Graduate Year on xConnect Graduate Year
- Target Accessor: Data Access/Value Accessor Sets/Providers/Dynamics/Dynamics Contact/GraduateYear on Dynamics Contact
- Source Value Transformer: Value Readers/Providers/Dynamics/Dynamics Graduate Year Description to Code Reader
Step 5: Facet interface and implementation
- Create interface
public interface ICRMInfo : IFacet, IElement, IValidatable { string GraduateYear { get; set; } }
- Create class
[Serializable]
public class CRMInfo: Facet, ICRMInfo, IFacet, IElement, IValidatable
{
private const string Year = "GraduateYear";
public string GraduateYear
{
get
{
return base.GetAttribute(Year);
}
set
{
base.SetAttribute(Year, value);
}
}
public RYIInfo()
{
base.EnsureAttribute(Year);
}
}
Step 6: Add custom facet to Sitecore entities and model
<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/">
<sitecore>
<model>
<elements>
<element interface="Namespace.IRYIInfo, AssemblyName" implementation="Namespace.RYIInfo, AssemblyName"/>
</elements>
<entities>
<contact>
<facets>
<facet name="CRM" contract="Namespace.IRYIInfo, AssemblyName" />
</facets>
</contact>
</entities>
</model>
</sitecore>
</configuration>
Step 7: Contact Facets To Read Setting
- Navigate to this location “/sitecore/system/Data Exchange/XXX/Pipelines/xConnect Contacts to Dynamics Sync Pipelines/Read Contacts from xConnect Pipeline/Read Contacts from xConnect” and in “Contact Facets To Read” select custom facet.
Step 8: Custom facet to sync with Dynamics CRM
- Move to this location “/sitecore/system/Data Exchange/XXX/Pipeline Batches/xConnect Contacts to Dynamics Sync” and click on “Run Pipeline Batch”
Comments