Configurez Sitecore Content Serialization

This article in english

L’une des nouvelles fonctionnalités les plus intéressantes de Sitecore 10 est la sérialisation de contenu de Sitecore (SCS), un outil de sérialisation, de partage, de contrôle de version et de déploiement d’éléments de contenu. Il remplace les outils externes comme TDS ou Unicorn.

Dans cet article, je vais vous expliquer comment configurer facilement SCS pour commencer à sérialiser vos éléments en un rien de temps. Je vais vous montrer comment sérialiser des éléments en dehors d’un projet Visual Studio, de sorte que vous verrez que vous n’avez pas besoin d’outils externes pour le faire. Bien sûr, la sérialisation peut être effectuée dans le cadre d’une solution VS, et la configuration est exactement la même.

J’ai installé localement la démo Sitecore Commerce 10 Storefront, nous avons donc beaucoup d’articles à sérialiser.

Mon serveur local CM est https://sc10sc.dev.local

Mon serveur d’identité est https://scidentityserver.dev.local

En plus d’une instance Sitecore 10, vous devrez avoir .Net Core 3.1 installé sur votre serveur.

La configuration se déroule en trois temps:

  • Installer Sitecore Management Service
  • Installer Sitecore Command-Line Interface (CLI)
  • Se connecter a notre instance et serialiser les items

Installez le service de gestion Sitecore

Vous devez installer le package Sitecore Management Service sur votre instance locale de Sitecore CM afin de prendre en charge l’interface de ligne de commande Sitecore.

  • Téléchargez le module Sitecore Management Services sous forme de package compressé (Sitecore Management Services Module ZIP Package) depuis Sitecore Downloads
  • Installez ce module depuis le Panneau de Controle
This image has an empty alt attribute; its file name is scs1.jpg

Installer l’interface de ligne de commande (CLI) Sitecore

Ouvrez la console Powershell et changez de répertoire dans un nouveau dossier. Comme je l’ai déjà écrit, nous allons configurer cette sérialisation en dehors de tout autre projet ou outil. Mais si vous souhaitez que la sérialisation ait lieu dans une solution Visual Studio, vous pouvez allez dans le répertoire à la racine de votre solution.

Installez la CLI Sitecore en tant qu’outil de projet local en tapant les instructions suivantes:

cd d:\
mkdir Serialization
cd Serialization
dotnet new tool-manifest
dotnet tool install Sitecore.CLI --add-source https://sitecore.myget.org/F/sc-packages/api/v3/index.json 

Sérialisation de vos objets

Vous devez maintenant initialiser votre projet et créer le fichier racine pour la sérialisation: sitecore.json

Dans votre console Powershell, ecrivez:

dotnet sitecore init

Un nouveau fichier est maintenant créé, sitecore.json

{   
"$schema": "./.sitecore/schemas/RootConfigurationFile.schema.json",
"modules": [     "./TODO/*.module.json"   ],   
"serialization": {     
   "defaultMaxRelativeItemPathLength": 100, 
   "defaultModuleRelativeSerializationPath": "serialization"   
 } 
}

Dans l’élément “modules”, vous indiquerez les modules Sitecore que vous souhaitez sérialiser. Vous pouvez pointer vers de nombreux modules, séparément ou avec des caractères joker (*). Il utilise la structure de dossiers de votre solution. Si vous êtes dans une solution basée sur Helix (avec les sources de chaque module placées sous le dossier “src/Foundation|Feature|Project/$ModuleName$”), vous vous retrouverez probablement avec une valeur comme “src/*/*/*.module.json “. Cela indiquera au sérialiseur de rechercher chaque fichier .module.json dans les dossiers trois étages sous le dossier source “src”.

Pour le bien de notre article, et pour voir comment changer Sitecore DB, supposons que nous voulons sérialiser deux types d’éléments différents:

  • Les objets à partir de /sitecore/content/Sitecore/Storefront/Home (master DB)
  • Les objets à partir de /sitecore/client/Applications/MarketingAutomation (core DB)

Nous crééons deux répertoires sous notre d:\Serialization

cd d:\Serializationmkdir contentmkdir client

Dans chaque répertoire, nous crééons un fichier json: content.json and client.json

Ces fichiers remplissent les fichiers d’instructions avec les chemins et les informations dont SCS a besoin pour chaque pièce. Le contenu et les valeurs possibles des variables de ces fichiers sont expliqués dans la documentation Sitecore

content.json

{  
 "namespace": "Content",  
 "references": "",  
 "items": {    
     "includes": [      
       {      
         "name": "content",      
         "path": "/sitecore/content/Sitecore/Storefront/Home", 
         "allowedPushOperations": "createUpdateAndDelete",      
         "scope": "itemAndDescendants"      
       }    
     ]  
  }
}

client.json

{  
 "namespace": "Client",  
 "references": "",  
 "items": {    
   "includes": [      
    {      
      "name": "client",      
      "path": "/sitecore/client/Applications/MarketingAutomation",      
      "allowedPushOperations": "createUpdateAndDelete",      
      "scope": "itemAndDescendants",      
      "database": "core"      
    }    
   ]  
 }
}

Mon fichier sitecore.json est maintenant

{   
  "$schema": "./.sitecore/schemas/RootConfigurationFile.schema.json",   
  "modules": [     
    "./client/client.json",     
    "./content/content.json"   
  ],   
  "serialization": {     
    "defaultMaxRelativeItemPathLength": 100,     
    "defaultModuleRelativeSerializationPath": "serialization"   
  } 
}

Tous les fichiers sont définis. Nous devons maintenant nous connecter à notre instance Sitecore. Dans la console Powershell, saisissez

cd d:\Serializationdotnet sitecore login --authority 
https://sc10identityserver.dev.local --cm https://sc10sc.dev.local --allow-write true

Un navigateur s’ouvre et vous demande de vous connecter à votre instance Sitecore CM et vous devez accepter d’attribuer les autorisations à l’API Sitecore et à l’accès hors ligne.

This image has an empty alt attribute; its file name is scs2.jpg

Cliquez sur “Oui, Autoriser” et fermez cette fenêtre de navigateur.

Vous êtes maintenant prêt et vous pouvez commencer à importer vos éléments de site Web avec la commande:

dotnet sitecore ser pull

Sitecore CLI répertorie tous les éléments qui seront sérialisés et crée un dossier de «sérialisation» sous chaque module avec les descriptions de chaque élément Sitecore en language Yaml. Vous pouvez utiliser la sérialisation json si vous la configurez dans leApp_Config\Sitecore\CMS.Core\Sitecore.Serialization.config file

This image has an empty alt attribute; its file name is scs3.jpg
This image has an empty alt attribute; its file name is scs4.jpg

Si vous souhaitez modifier un élément et le désérialiser vers Sitecore, utilisez la commande suivante

dotnet sitecore ser push

Les différentes commandes de la CLI Sitecore sont:

SITECORE LOGIN
sitecore loginSe connecte à une instance Sitecore.
SITECORE INIT
sitecore initInitialise une configuration de projet dans le
dossier en cours.
SITECORE PUBLISH
sitecore publishPublie tout le contenu de la base de données Master
à la base de données Web.
SITECORE SER or
SITECORE SERIALIZATION
sitecore ser diffCompare les éléments de contenu de deux instances Sitecore.
sitecore ser explainExplique si le chemin d’un élément de contenu est
inclus et pourquoi.
sitecore ser infoAffiche les informations de configuration de sérialisation.
sitecore ser packageRépertorie les commandes du package de sérialisation.
sitecore ser package createCrée un package d’éléments de contenu (content items) sérialisés.
sitecore ser package installInstalle un package d’éléments de contenu (content items) sérialisés dans une instance Sitecore.
sitecore ser pullSérialise les éléments de contenu (content items) d’une
instance Sitecore vers votre système de fichiers.
sitecore ser pushPousse les éléments de contenu sérialisés de votre fichier
système vers une instance Sitecore.
sitecore ser validateVérifie la validité des éléments de contenu sérialisés.
Peut résoudre les problèmes courants avec l’argument –fix.
sitecore ser watchSurveille les modifications apportées aux éléments
de contenu dans une instance Sitecore et sérialise automatiquement les modifications apportées à
votre système de fichiers.
https://doc.sitecore.com/developers/100/developer-tools/en/sitecore-command-line-interface-reference.html

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: