Comment créer et conserver des liens logiques avec des système tiers grâce aux Codes dans Chouette?

Comment créer et conserver des liens logiques avec des système tiers grâce aux Codes dans Chouette?

Quand un utilisateur importe des données, Chouette est en mesure de collecter tous les identifiants que ce soit en GTFS (les attributs avec *_id) ou en NeTEx (identifiants et Alternate Identifier).

Ces identifiants sont des données stratégiques pour l’information voyageur, car ils permettent de différencier dans la chaîne de production de l’offre de transport des éléments semblables.

Cependant, conserver uniquement les identifiants des producteurs de données n’est pas suffisant dans de nombreux cas. Les systèmes s’alimentant sur le référentiel théorique peuvent utiliser un identifiant proche ou complètement différent et il faut donc trouver une solution pour faire le lien entre l’identifiant d’origine et l’identifiant interne de chaque système.

Chouette SaaS permet de créer et conserver ces liens logiques en utilisant plusieurs identifiants nommés Codes.

Play with codes in Chouette (3).png

La conservation et transmission de ces identifiants ou codes selon le format est différente :

  • GTFS : Contraint par le format à la transmission d’un identifiant par objet

  • NeTEx : Transmission possible de tous les identifiants portés par un objet

Cet enrichissement est rendu possible par l’introduction d’un nouveau concept : un espace de Codes. Celui-ci permet de conserver tous les codes dans un espace propre et isolé afin de conserver et alimenter un ou des consommateurs dédiés. On peut très bien imaginer par exemple dans un référentiel théorique créer des espaces de code pour :

  • la billettique

  • le calculateur d’itinéraire

  • l’open data

  • le temps réel

  • etc…

L’utilisation des codes permet donc de représenter à un consommateur une facette des données transport qu’il est à même de comprendre et d’intégrer dans son propre système au fil du temps.

La génération intelligente et automatisée de ces codes est possible via de nombreuses instructions se basant sur des uuid, des séquences, des informations contenues dans l’offre, etc…

Création de codes

Avant de créer un code, l’utilisateur doit s’assurer que des espaces de codes sont créés au niveau du Groupe de Travail :

image-20240710-142531.png
Gestion des espaces de code

Pour en savoir plus sur les espaces de codes, consultez la page https://enroute.atlassian.net/wiki/spaces/PUBLICFR/pages/1944682499.

Dans Chouette, il est possible de créer manuellement un code sur chacun des modèles. Dans l’édition d’un modèle, il suffit simplement de sélectionner un espace de code et indiquer le code souhaité.

image-20240710-143529.png
Ajout d’un code Test sur un transporteur

Il est également possible de créer des codes de manière automatique grâce aux jeux d’instructions :

Quelques exemples sont disponibles sur cette page : https://enroute.atlassian.net/wiki/spaces/PUBLICFR/pages/3003219975

Publication des données avec des codes

Chouette peut utiliser les codes d’un espace de code pour publier les données en NeTEx ou en GTFS en sélectionnant l’espace de code souhaité dans les paramètres :

Chouette-Nouvelle-Publication(1).png
Publication GTFS avec un espace de code

 

Quand un utilisateur publie ses données :

  • tous les modèles possédant un code dans l'espace de code sélectionné vont utiliser ce code comme identifiant

  • tous les modèles ne possédant pas un code dans l'espace de code sélectionné vont utiliser par défaut le numéro d'enregistrement ou le code "external"

  • pour le format NeTEx, l’ensemble des codes seront visibles dans les balises KeyValue de type ALTERNATE_IDENTIFIER

 

<keyList> <KeyValue typeOfKey="ALTERNATE_IDENTIFIER"> <Key>B22</Key> <Value>3c932b84-d8d2-47b2-b171-93b8f096bbd0</Value> </KeyValue> <KeyValue typeOfKey="ALTERNATE_IDENTIFIER"> <Key>Qommute</Key> <Value>34ee69d1-77a4-471b-b41d-efdce829b845</Value> </KeyValue> <KeyValue typeOfKey="ALTERNATE_IDENTIFIER"> <Key>B22</Key> <Value>ed973ead-a49a-49d5-93fe-2de3a7f96ca0</Value> </KeyValue> <KeyValue typeOfKey="ALTERNATE_IDENTIFIER"> <Key>Qommute</Key> <Value>9e1b534d-1573-46d8-b1e0-6fc43eb11421</Value> </KeyValue> <KeyValue typeOfKey="ALTERNATE_IDENTIFIER"> <Key>B22</Key> <Value>a9052135-c723-474d-8522-fe782bff451e</Value> </KeyValue> </keyList>