Sitecore Connect™ for Sitecore CMP 2.0.0
Sitecore Connect™ for Sitecore CMP version 2.0.0 blev udgivet i denne uge. Det er et modul, der synkroniserer indhold oprettet i Sitecore Content Hub til Sitecore XP.
Modulet har fremragende dokumentation. I dette indlæg vil jeg dog gerne kaste lys over de tekniske aspekter af modulet.
I Sitecore XP hedder byggeklodserne items. I Content Hub er der entities. Entities har felter og relationer.
Lad os sige, at vi har oprettet et blogindlæg på engelsk (en-US) i Content Hub. I det tilfælde har vi i Content Hub en entity med egenskaber som Title, Body osv. En relation ved navn ContentTypeToContent fra en Blog-entity til vores entity gør vores entity til et blogindlæg.
Og en relation ved navn LocalizationToContent fra en-US-entityen til vores entity fortæller os, at vores blogindlæg er på amerikansk engelsk.
Hvis vi nu lokaliserer vores blogindlæg til f.eks. nl-BE, opretter Content Hub en ny blogindlægs-entity og linker den via LocalizationToContent-relationen til nl-BE-sprogentityen. Der er også en ContentToContentLocalization-relation fra vores engelske blogindlæg til det lokaliserede belgiske.
Lad os nu se, hvordan Sitecore Connect™ for Sitecore CMP 2.0.0 trækker entities over til Sitecore XP items:
Når en entity publiceres, udfører en Content Hub-trigger en handling, der sender en besked til et topic (hub_out) i Azure Service Bus. Beskeden indeholder entity_id, og andre systemer kan abonnere på topic'et for at få besked om nye ændringer.
På Sitecore XP-siden (CM) lytter en subscription client efter nye beskeder i hub_out.
Når en ny besked dukker op, starter cmp.importEntity-pipelinen.
cmp.importEntity-pipelinen kører følgende tre processorer:
FetchEntity-processoren:
- Henter
entity_idfra Service Bus-beskeden. - Henter entityen fra Content Hub.
- Bestemmer indholdssproget ved at hente
LocalizationToContent-relationen. - Bestemmer lokaliseringsforælderen (hvis den eksisterer) ved at hente
ContentToContentLocalization.
EnsureItem-processoren:
- Forsøger at hente et item, der svarer til entityen.
- Den søger efter et item i en konfigureret Items Bucket, hvor
Entity Identifier-feltet er lig med entityens identifikator (hvis der ikke er nogenContentToContentLocalization-forælderentity) eller lig medContentToContentLocalization-forælderentityen. - Sætter
Entity Identifier-feltet på det nye item. - Hvis der ikke findes et sådant item, opretter processoren et nyt item på sproget fra
LocalizationToContent-relationen. Ellers bruges standardsprogsindstillingen.
SaveFieldValues-processoren:
- Gemmer de item-felter, der er konfigureret til synkronisering.
- Når
cmp.importEntityer færdig, sender modulet en besked til et andet topic -hub_in. Denne besked indeholder ting som indgående besked-id, item-id, entity-id og eventuelle fejl.
Content Hub modtager beskeden og kender status for entity-synkroniseringen.
