Comparateur de messages
Visualiser, segment par segment, les écarts entre deux messages EDIFACT ou X12. Idéal pour expliquer une régression d'intégration ou pour qualifier la différence entre deux versions d'un même flux.
Comparer deux messages
Comment ça marche
Les deux messages sont tokenisés par le parseur structurel approprié :
EDIFACT (ISO 9735) ou X12 (X12.5). Les séparateurs réellement déclarés
dans UNA ou ISA sont respectés. Une fois les
segments extraits, l'algorithme calcule la plus longue sous-séquence
commune (LCS) sur les tags des segments, puis dérive les
appariements :
- Tag identique de part et d'autre → segment marqué identique ou modifié selon l'égalité élément par élément.
- Tag présent à gauche uniquement → supprimé.
- Tag présent à droite uniquement → ajouté.
Pour chaque segment modifié, le détail des éléments concernés est
affiché sous la ligne, avec la valeur de gauche et celle de droite. Les
composites EDIFACT sont rejoints sur le séparateur réellement déclaré
(: par défaut) avant comparaison : un changement de
5410…123::9 en 5410…123:91:9 apparaît comme un
seul changement d'élément, avec les deux chaînes lisibles côte à côte.
Confidentialité
Limites connues
-
L'alignement repose sur l'identité du tag, pas sur les identifiants
métier internes au segment. Deux
LINconsécutifs sont appariés dans l'ordre source : si le second message les présente dans un ordre différent, la comparaison résultante peut sembler bruyante. Un alignement par référence (LIN[1], LIN[2]…) est envisagé pour une itération ultérieure. - Le moteur LCS est borné à 2 000 segments par côté : au-delà, les entrées sont tronquées et une note l'indique dans le résultat.
- La comparaison cXML (par chemin XPath) et le mode three-way restent au planning.
Documentation associée
- EDIFACT — pour comprendre la grammaire segmentaire sur laquelle s'aligne le comparateur.
- ORDERS D.96A — le message de référence utilisé dans l'exemple chargeable.
- Validateur EDIFACT — partage le parseur et l'ergonomie générale.