Data Exchange Framework (Partie 3) : Le mappage de données personnalisées

Dans les articles précédents, nous avons présenté ce qu'est le Data Exchange Framework et vous avons présenté une démonstration complète de l'utilisation du DEF. La démo a montré un transfert direct de données de la table SQL vers Sitecore. Cet article vous montrera comment effectuer un mappage de données personnalisé à l'aide de DEF.
 
Mappage de données custom
 

Jusqu'à ce point, nous avons réussi à déplacer des données des tables SQL vers des éléments Sitecore de Product et de Category. L'élément Product a un champ category_id, qui est Single-Line Text et contient l'ID d'une catégorie. Nous devons remplacer sa valeur (ou peut-être ajouter un nouveau champ) par son ID d'élément Sitecore.

 

 

Pour atteindre cet objectif, le Static Method Value Reader est utilisé et nous étendrons l'exemple présenté dans l'article précédent.
 
- Static Method Value Reader
 
Ce lecteur de valeur passe la valeur source à une méthode statique et retourne la valeur de retour de la méthode.
 
- Aller vers /sitecore/system/Data Exchange/Store Tenant/Data Access/Value Readers/Providers et ajouter Sitecore Value Readers
 
 
De insert options, ajouter Static Method Value Reader appelée Static Method Category_Item_Id Reader
 
- Définissez les paramètres suivants pour
● Method Name : le nom de la méthode statique
 Type with Static Method : le nom de classe complet et le nom de l'assembly
 
 
La classe suivante montre notre implémentation de la méthode statique GetCategoryItemID. Simplement, il mappe le CategoryId à l'élément Category Sitecore correspondant.
 
 
- Pour appliquer cette règle de transformation sur category_id, définissez la valeur de champ « Source Value Transformer » à «Static Method Category_Item_Id Reader»
 
 
- Modifier le type de champ CategoryId du Product Template à Droplink et attribuer la valeur Source à /sitecore/content/Store/Categories
 
 
Exécuter à nouveau le lot de pipelines et les nouveaux résultats devraient ressembler aux suivants
 
 

Conclusion

Cet article a présenté le Data Exchange Framework (DEF) et son architecture. Il a également présenté ses utilisations pour les tâches de migration de données. Un exemple pratique, pour le système de stockage, est implémenté pour montrer comment utiliser DEF pour migrer les données de la base de données SQL vers Sitecore. Cet article a découvert certaines des fonctionnalités DEF, mais il y en a encore d'autres à découvrir à l'avenir.
 
 

 

Mohsen Hassan

Sitecore Professional

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

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 :
 

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. 1. Aller vers Tenant > Pipeline Batches et choisir Pipeline Batch de insert options.
  2. 2. Créer un Pipeline Batch appelée SQL Product to Sitecore Product Sync Batch.
  3. 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
  4.  

 

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

Data Exchange Framework (Partie 1) : Découverte

Découvrir Le Data Exchange Framework
Data Exchange Framework est utilisé pour modéliser les processus qui synchronisent les données entre plusieurs systèmes (par exemple Sitecore et MS SQL Server, MongoDB). Nous allons vous présenter une série d'articles sur le Data Exchange Framework. Cette série est divisée en trois articles. Tout d'abord, cette série commence par un court article qui définit ce qu'est le Data Exchange Framework et pourquoi il est utile de l'utiliser. Ensuite, nous décrirons l'architecture de ces composants de Framework. Dans le deuxième article de la série, un exemple pratique complet sera présenté pour vous montrer comment utiliser ce Framework. Dans le troisième et dernier article, nous allons étendre notre exemple pratique pour évoquer des fonctionnalités plus avancées sur DEF en vous montrant comment personnaliser votre mappage de données.
 
Cette série sera composée de trois articles :
  • ● Découvrir Le Data Exchange Framework
  • ● Démo pratique pour DEF
  • ● Le Mappage de données personnalisé à l'aide de DEF

 

Découvrir Le Data Exchange Framework

Le Data Exchange Framework (DEF) est un framework conçu pour le transfert de données entre les systèmes. Il est utilisé pour modéliser les processus qui synchronisent les données entre différents systèmes, par exemple, Sitecore, MS SQL Server, MongoDB ou d'autres systèmes CMS. DEF est basé sur la procédure Extract, Transform et Load (ETL). ETL est la procédure générale de transfert de données d'une ou plusieurs sources vers un système de destination qui représente les données différemment de la source. Il se compose de 3 étapes :
 
Extract
  • ● Les données sont extraites du système source.
 
Transfer
  • ● Des séries de règles ou de fonctions sont appliquées aux données extraites (par exemple, filtrage, nettoyage des données, agrégation, mappages) et les transforment en un format de stockage approprié pour être compatible avec le système cible.
 
Load
  • ● Enfin, le chargeur de données insère les données dans le système cible.

Les utilisations du DEF

DEF est utile pour de nombreux processus de migration lorsque les données doivent être transformées d'un système à un autre. Les exemples suivants sont des exemples d'utilisation de DEF et non une liste limitée :
  • ● Transfert de données SQL vers des éléments Sitecore.
  • ● Migrer les contacts Sitecore MongoDB vers des profils xConnect.
 
DEF fournit des composants prêts à l'emploi qui rendent ce processus de migration facile à configurer et à exécuter avec plusieurs sources de données bien connues (SQL DB, MongoDB, Sitecore). De plus, il permet de créer des fournisseurs personnalisés pour d'autres sources de données (par exemple, des fichiers XML). Il fournit également un cadre unifié pour les nouvelles versions et mises à jour de Sitecore.
 

Composants du DEF Framework

Cette section décrit les différents composants du framework DEF. Cela aide à comprendre comment nous pouvons bien configurer ces composants pour configurer DEF et le mettre en action.
 
 
  • ● Tenant - représente un objet d'organisation utilisé pour organiser et isoler les paramètres. Plusieurs configurations peuvent coexister et un nouveau Tenant est créé lorsque des données doivent être importées à partir d'une source différente.
  •  Endpoints - ont utilisé pour définir les endpoints de source et destination (SQL, Sitecore).
  •  Data Access - représente les objets utilisés pour lire/écrire des données à partir des endpoints de source/destination.
  •  Value Mapping Sets - c'est l'étape de mappage des données qui permet de mapper les valeurs source avec les valeurs cibles. Des règles et fonctions de transformation peuvent être appliquées à ces valeurs si nécessaire.
  • ● Pipelines - Il s'agit d'un ensemble d'étapes qui s'exécutent dans un ordre spécifique pour exécuter correctement l'ensemble du processus de mappage en tant qu'unité d'oeuvre.
  •  Pipeline Batch - Il s'agit d'une unité d'exécution pour le processus de migration synchronisée. Il peut être exécuté manuellement, via une tâche planifiée Sitecore ou à distance à l'aide d'appels d'API ou à l'aide du SDK DEF Remote.

 

Retrouvez bientôt le second article de cette série sur le Data Exchange Framework.

 
Mohsen Hassan

Sitecore Professional

S'abonner à RSS - Le blog de MOHSENH