I am explaining custom facet Graduate Year
drop down. Please follow below steps:
Specify how to read from the Dynamics contact
- Navigate to this location Navigate to this location
/sitecore/system/Data Exchange/XXX/Data Access/Value Accessor
- Add item
GraduateYear on Dynamics Contact
using template Entity Attribute Value Accessor
- Set the following field values
Attribute Name: CRM Field Name
Value Type: Option Set Value (If dropdown otherwise blank for single line)
Specify how to write to the Contact facet
- 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
Drop Down Settings
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
- 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
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
Facet interface and implementation
public interface ICRMInfo : IFacet, IElement, IValidatable
{
string GraduateYear { get; set; }
}
[Serializable]
public class CRMInfo: Facet, ICRMInfo, IFacet, IElement, IValidatable
{
private const string Year = "GraduateYear";
public string GraduateYear
{
get
{
return base.GetAttribute<string>(Year);
}
set
{
base.SetAttribute<string>(Year, value);
}
}
public RYIInfo()
{
base.EnsureAttribute<string>(Year);
}
}
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>
Troubleshooting
- 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.