Sitecore 9 Dynamic CRM Connector: Sync Sitecore custom facets with Dynamic CRM (Part 2)

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.
  1. Template : Entity Attribute Value Accessor
  2. Item Name: GraduateYear on Dynamics Contact
  • Set the following field values:
  1. Attribute Name: CRM Field Name
  2. 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.
  1. Template : xConnect Entity Facet Value Accessor Set
  2. Item Name: xConnect Contact Custom Information Facet
  • Select the new item.
  • Add the following item.
  1. Template : xConnect Entity Facet Property Value Accessor 
  2. Item Name: Graduate Year on xConnect Graduate Year
  • Set the following field values:
  1. 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:
  1. Template : Code Definition Set 
  2. Item Name: Dynamics Graduate Year Code
  • Select the new item.
  • Add the following item:
  1. Template : Code Definition
  2. Item Name: 2019
  • Set the following field values:
  1. 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:
  1. Template : Description to Code Value Reader 
  2. Item Name: Dynamics Graduate Year Description to Code Reader
  • Set the following field values:
  1. 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.
  1. Template : Value Mapping 
  2. Item Name: Graduate Year
  • Set the following field values:
  1. 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
  2. Target Accessor: Data Access/Value Accessor Sets/Providers/Dynamics/Dynamics Contact/GraduateYear on Dynamics Contact
  3. 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”

In next blog will sync only "Known" contacts

Comments

Popular Posts