Data Exchange Framework (Partie 2) : Démonstration pratique

Partager l’article

Exemple Pratique : Système de Stockage

Cet article présente un exemple pratique de migration des données du système de stockage de la base de données SQL vers Sitecore. Bien sûr, le système de stockage est un grand système qui contient de nombreuses tables et données (par exemple, commandes, clients, fournisseurs, produits, catégories). Cette démo se concentre uniquement sur le chargement des données des produits et des catégories, et de même, d’autres données peuvent être chargées en cas de besoin.
Dessiné par https://app.dbdesigner.net/

Prérequis

Pour suivre notre démo pratique, vous devez installer les éléments suivants sur votre machine :

● Sitecore 9.x
● Data Exchange Framework 4.x
● Microsoft SQL Server

Créer Un Nouveau Tenant

Sélectionnez l’élément Data Exchange « Sitecore & System & Data Exchange » et dans l’onglet dossier, sélectionnez l’option « Empty Data Exchange Tenant » et appelez-le « Store Tenant ».

Lorsque vous ouvrez “Store Tenant”, vous devriez voir les composants suivants. Les sections suivantes présenteront les différentes étapes de configuration de ces composants.

Configurer Les Endpoints

Dans cette étape, nous spécifions les endpoints de source et de destination.
Sitecore Endpoint :  Ajoutez le Sitecore Endpoint à partir de l’option d’insertion et aucune configuration n’est requise.
SQL Endpoint : Ajouter le SQL Endpoint de l’option d’insertion des Providers.
Ensuite, définissez les paramètres suivants :

● Connection String Name : store

          o Cette chaîne de connexion doit être ajoutée au fichier «ConnectionStrings.config»

● Database Type : Microsoft SQL Server

Cliquez sur le bouton Run Troubleshooter pour tester la connectivité de l’endpoint.

Configurer Les Tenant Settings

Maintenant, nous allons fournir les paramètres des données que nous transférons

– De Tenant Settings > Providers, ajouter SQL Tenant Settings
– De Tenant Settings > Providers > SQL ajouter un nouveau SQL database, appeler Store. Maintenant, vous pouvez ajouter des tables ou des procédures stockées dont vous pourriez avoir besoin.

– Ajouter products Table
– Utilisez l’option d’insertion SQL Database Table Column pour ajouter toutes les colonnes de la table nécessaires à la lecture. Pour chaque colonne, indiquez le nom de la colonne « column name » et son type de données « data type »

Nous devons créer un Sitecore Template, appelé Product, utilisé pour créer des éléments qui stockent les données importées de la table des products.

Configurer les Value Accessor Sets

Value Accessors Sets modélisent nos objets source et cible. Ils agissent en tant que getters et setters de propriétés comme dans une classe C#.
 

– Aller vers Sitecore > System > Data Exchange > Store Tenant > Data Access > Value Accessor Sets > Providers

– Ajouter des Providers pour for Sitecore Value Accessor Sets and SQL Value Accessor Sets
– Dans le provider SQL Value Accessor sets, ajouter un Database Column Value Accessor pour chaque champ du table Products
– De Sitecore Value Accessor sets, ajouter un Sitecore Item Field Accessor pour chaque champ du Product Sitecore Template

Configurer les Value Mapping Sets

Cette configuration définit les mappages entre l’objet source et l’objet cible. Nous configurons les éléments suivants pour chaque mappage :

 Source Accessor : l’accesseur de valeur de la table products utilisé pour lire la valeur source.
 Target Accessor : l’accesseur de valeur de la Template Product utilisé pour écrire la valeur source à l’objet cible.

Configurer les Pipelines

Cette étape est une étape très importante qui définit le processus réel et les étapes requises pour lire les données de la table SQL et les insérer dans les éléments Sitecore. Il crée un élément Sitecore Product pour chaque ligne de la table SQL products.

– Aller vers Tenant > Pipelines
– Créer un dossier de pipelines appelé Store Sync Pipelines
– Créer les deux pipelines principaux suivants à l’aide de l’option d’insertion de Pipeline
          – Read Products from Database Pipeline
          – Handle Single Row from Products Table Pipeline

Ensuite, nous allons montrer comment ajouter les étapes requises pour chacune d’elles.

Étapes pour “Read Products from Database Pipeline”

– Créer “Read Database Table Data Pipeline Step”, called “Read rows from Products Table Pipeline Step” et le configurer comme suit :

     – Table : sélectionner la table Products

     – Read All Fields : cochez-la si vous devez obtenir tous les champs

     – Fields to Read : sélectionner uniquement le champ requis pour en lire

– Endpoint From : SQL/Database Connection Endpoint

 – Max row count : définir le nombre maximum de lignes à lire ou le laisser vide si vous voulez lire toutes les lignes – ceci est utile lors du test de vos intégrations.

– Créer Iterate Data and Run Pipelines Pipeline Step. Il itère sur chaque ligne et transmet une seule ligne en contexte à un autre pipeline pour le traitement. Nous définissons ses paramètres comme suit :

     – Pipelines : Handle Single Row from Products Table Pipeline. Il définit le Pipeline utilisé pour traiter chaque ligne itérée.Plus tard, nous définirons ses étapes.
     – Data location : Pipeline Source Context.

    Étapes pour lire “Products from Database Pipeline”

     Resolve Sitecore Item Pipeline Step. Créez cette étape de pipeline et définissez les paramètres suivants :

              – Parent for Item et Matching Field Value Accessor

      – Template for the new item et Name Value accessor (pour définir le nom du nouvel élément)

            – Endpoint From : Sitecore/Sitecore Item Model Repository Endpoint
            – Identifier Value Accessor et Identifier Object Location
       – Resolved Object Location : Pipeline Context Target

     Apply Mapping Pipeline Step
    Dans ce pipeline, nous sélectionnons le Mapping Set que nous avons créé.

    – Update Sitecore Item Pipeline Step

              – Définissez les valeurs des des champs Item Location et Endpoint To.

    Créer un Pipeline Batch

    Maintenant, nous avons tous les pipelines et étapes de pipeline requis pour lire la ligne de table products, traiter chaque ligne et créer un élément Product dans Sitecore. Une dernière étape consiste à créer le Pipeline Batch utilisé pour exécuter ces pipelines dans une séquence.

    1. Aller vers Tenant > Pipeline Batches et choisir Pipeline Batch de insert options.
    2. Créer un Pipeline Batch appelée SQL Product to Sitecore Product Sync Batch.
    3. Dans la configuration, sélectionnez Read Product from Database Pipeline dans les pipelines qui sont exécutés au démarrage du Pipeline Batch

    Exécuter le Pipeline Batch

    Cliquez sur le bouton Run Pipeline Batch dans le ruban.
    Si le bouton Run Pipeline Batch est désactivé, vous devez vérifier si le Tenant est activé ou non. Le
    Tenant est désactivé par défaut. Pour l’activer, sélectionnez le Store Tenant et cochez l’option Enabled.
     
    Enfin, vérifiez les éléments Sitecore créés sur /sitecore/content/Store/Products

    Transférer des données à partir d’une autre table SQL

    De même, nous suivons les mêmes étapes précédentes pour transférer des données d’autres tables SQL vers des éléments Sitecore. Pour chaque table, nous devons créer un modèle « Sitecore Template ». Par exemple, nous créons un Template Category pour générer des éléments Sitecore qui chargent les données de la table categories.

    À la fin, les éléments créés sont générés à /sitecore/content/Store/Categories.

    Mohsen Hassan

    Sitecore Professional