SupportConnexion
Contactez-nous
Utiliser DEX_ROW_TS comme SourceControl avec MS Dynamics GP

Utiliser DEX_ROW_TS comme SourceControl avec MS Dynamics GP

May 15, 2015 · Michael Bock · Fonctionnalités

Lorsque nous configurons RapidiOnline pour transférer des données d’un système ERP vers un autre système, nous cherchons toujours un moyen de ne lire que les enregistrements modifiés pour un type de données donné. Certains systèmes disposent d’une colonne timestamp dans chaque table : c’est par exemple le cas de MS Dynamics NAV. Le type de colonne MSSQL timestamp est une colonne numérique que le serveur MSSQL incrémente automatiquement à chaque modification d’un enregistrement de la table, ce qui rend la détection des changements très pratique.

Avec d’autres systèmes comme MS Dynamics GP, nous n’avons pas cette chance. Quelles options avons-nous alors ?

Présentation de la colonne DEX_ROW_TS

Dans MS Dynamics GP version 2010 et ultérieure, certaines tables comportent une colonne appelée DEX_ROW_TS. Ce champ est de type DateTime et il est alimenté par des scripts côté SQL Server. Il est mis à jour avec la date et l’heure UTC courantes à chaque création ou modification d’un enregistrement, et peut être utilisé comme SourceControl dans RapidiOnline (RapidiOnline utilise un champ SourceControl pour détecter les modifications d’une table et ne transférer que ces modifications vers un autre système).

Cela ressemble à la réponse parfaite à nos besoins : le serveur alimente le champ automatiquement et il nous suffit de l’utiliser pour détecter les enregistrements nouveaux ou modifiés à transférer.

Utiliser la colonne DEX_ROW_TS dans RapidiOnline

champ Source Control DEX_ROW_TS sur un transfert

Pour utiliser la colonne DEX_ROW_TS comme SourceControl dans RapidiOnline, il suffit de renseigner le Source Control Field comme sur l’image ci-dessus. Pendant l’exécution du transfert, celui-ci mémorise automatiquement la valeur la plus élevée transférée avec succès et applique des filtres pour ne lire que les enregistrements nouveaux ou modifiés de cette table.

Utilisez la colonne DEX_ROW_TS avec prudence

Il existe toutefois un certain nombre de limites, comme le souligne également ce billet de blog : http://www.timwappat.info/post/2014/12/04/Beware-DEX_ROW_TS-for-data-synchronisation

  1. la colonne DEX_ROW_TS n’est implémentée que sur une quarantaine de tables dans GP et ne peut donc pas être utilisée de manière générale pour toutes les tables.
  2. pour certaines tables comme Customers et Items, la colonne DEX_ROW_TS est également mise à jour lorsque des informations liées changent dans d’autres tables (comme Customer Master Address File et Item Quantity Master). Vous transférez ainsi plus de données que nécessaire.
  3. sachez également que les données de démonstration livrées avec GP 2010 ont des valeurs DEX_ROW_TS situées en 2017 : la date du serveur a dû être avancée lors de leur création. Ce n’est pas un vrai problème puisqu’il s’agit uniquement de données de démonstration, mais si vous voulez tester la fonctionnalité sur ces données, vous devrez remettre la colonne DEX_ROW_TS à une date passée, afin que les enregistrements nouvellement modifiés portent les valeurs les plus élevées dans DEX_ROW_TS.
  4. enfin, d’autres scripts ou imports personnalisés peuvent être écrits de telle façon que la colonne DEX_ROW_TS ne soit pas mise à jour. Les autres développeurs et administrateurs qui travaillent sur votre système GP doivent savoir que DEX_ROW_TS est utilisée et doit être mise à jour correctement pour toutes les modifications.

Ce sont là des effets secondaires indésirables : l’utilisation de DEX_ROW_TS n’est donc pas aussi évidente que celle de la colonne timestamp dans NAV – examinez chaque cas d’usage de près avant de choisir cette colonne comme SourceControl.

Autres moyens de détecter les modifications

Au lieu de SourceControl, RapidiOnline peut utiliser sa Mirror Technology pour détecter les modifications dans MS Dynamics GP. La Mirror Technology conserve automatiquement une copie des données que vous lisez dans chaque table GP et s’en sert pour comparer et ne livrer que les enregistrements nouveaux ou modifiés au système de destination. La technologie est très rapide et ne stocke et ne compare que les colonnes que vous lisez réellement (pas toutes les colonnes de la table), ce qui réduit encore les modifications envoyées au système de destination.

Pour utiliser DEX_ROW_TS comme SourceControl, votre RapidiConnector doit être en version 3.2.91i ou ultérieure. Contactez le support si vous avez besoin d’une mise à niveau.

Comme toujours, vos commentaires sont les bienvenus !

Michael

Restez à l’écoute pour d’autres mises à jour produit

Voyez si cela convient à votre environnement

Dites-nous quels systèmes vous utilisez et nous vous dirons franchement si Rapidi est le bon outil.