Mappage enfant dans DataSync
Le mappage enfant indique à DataSync d'utiliser le suivi des modifications de la table parente plutôt que celui de la table enfant. Lorsqu'un enregistrement parent change, DataSync supprime et recharge tous les enregistrements enfants associés, garantissant que les données enfants reflètent toujours l'état actuel dans l'ERP.
Ce fonctionnement repose sur la structure des données dans les ERP. Une table parente contient l'enregistrement principal, et une ou plusieurs tables enfants contiennent les détails associés. Un en-tête de facture et ses lignes de détail en sont un exemple typique. Ces tables sont reliées par une clé étrangère, un champ dans la table enfant qui référence l'enregistrement parent. Le mappage enfant exploite cette relation pour identifier les enregistrements enfants à recharger lors d'une modification du parent.
Pour modifier un mappage existant, cliquez sur l'icône Gérer les mappages enfants en haut à droite de la vue de la table.
Quand utiliser le mappage enfant
- Synchroniser des tables liées de façon fiable lorsque la table enfant ne remonte pas ses propres modifications de manière cohérente lors des chargements incrémentiels.
- Détecter les enregistrements enfants supprimés qui passeraient autrement inaperçus lors du traitement des enregistrements supprimés.
- Compenser un suivi des modifications incomplet dans les sources où les modifications des tables enfants ne sont pas toujours remontées par l'API.
Fonctionnement du mappage enfant
Lors d'un Tronquer et charger, DataSync charge chaque table indépendamment et le mappage enfant n'a aucun effet. Lors d'un Chargement Incrémentale ou d'un Traitement des enregistrements supprimés, DataSync repose normalement sur le suivi des modifications propre à la table enfant. Dans certains ERP, ces informations sont incomplètes : des enregistrements enfants peuvent être manqués, des suppressions non détectées, et la destination se retrouve désynchronisée de l'ERP.
Avec le mappage enfant configuré, DataSync procède différemment :
- DataSync détecte les modifications dans la table parente en se basant sur sa date de modification.
- Pour chaque enregistrement parent modifié, tous les enregistrements enfants liés à ce parent sont supprimés dans la destination.
- Ces enregistrements enfants sont rechargés depuis l'ERP.
La destination reflète ainsi toujours l'état actuel de l'ERP pour tout enregistrement parent ayant changé.
La table En-tête de facture est la table parente et Détail de facture est la table enfant, reliées par l'identifiant de facture.
Exemple
Un client retourne un article de la facture 1001 et ajoute un produit différent.
- La date de modification de l'En-tête de facture est mise à jour.
- Les lignes du Détail de facture changent, mais ces modifications ne remontent pas via l'API.
DataSync détecte la modification de la facture 1001 dans la table parente, supprime tous les enregistrements Détail de facture correspondants dans la destination, puis les recharge depuis l'ERP.
C'est la date de modification de l'En-tête de facture qui déclenche le rechargement des enfants, et non la modification dans Détail de facture.
Configure child mapping
- Depuis l'écran d'accueil ou le panneau de gauche, sélectionnez Extractions.
- Sélectionnez une extraction, puis cliquez sur le lien Tables.
- Sélectionnez la table parente, puis cliquez sur Enfants Mappés.
- Cliquez sur Ajouter pour ajouter un mappage de table enfant.
- Sélectionnez la table enfant dans la liste déroulante.
- Dans Mappage de champs 1, sélectionnez le Champ parent et le Champ enfant correspondant qui relie les deux tables.
- (Facultatif) Cliquez sur Ajouter pour ajouter d'autres mappages de champs si la relation repose sur plusieurs champs.
- Cliquez sur Confirmer.
Plusieurs mappages enfants peuvent être ajoutés pour la même table parente.