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.

entity

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:

  1. Henter entity_id fra Service Bus-beskeden.
  2. Henter entityen fra Content Hub.
  3. Bestemmer indholdssproget ved at hente LocalizationToContent-relationen.
  4. Bestemmer lokaliseringsforælderen (hvis den eksisterer) ved at hente ContentToContentLocalization.

EnsureItem-processoren:

  1. Forsøger at hente et item, der svarer til entityen.
  2. Den søger efter et item i en konfigureret Items Bucket, hvor Entity Identifier-feltet er lig med entityens identifikator (hvis der ikke er nogen ContentToContentLocalization-forælderentity) eller lig med ContentToContentLocalization-forælderentityen.
  3. Sætter Entity Identifier-feltet på det nye item.
  4. Hvis der ikke findes et sådant item, opretter processoren et nyt item på sproget fra LocalizationToContent-relationen. Ellers bruges standardsprogsindstillingen.

SaveFieldValues-processoren:

  1. Gemmer de item-felter, der er konfigureret til synkronisering.
  2. Når cmp.importEntity er 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.

topology