Mapping JSON dans le Cadre d’Intégration d’IBM Maximo

IBM Maximo Integration Framework (MIF) introduit une fonctionnalité puissante de Mapping JSON pour améliorer la flexibilité et les capacités des processus d’intégration. Cette fonctionnalité permet aux développeurs de convertir de manière transparente le JSON en XML Maximo et vice versa, en fournissant un ‘mapper’ plug-and-play aux niveaux du Canal de Publication (Publish Channel) et du Service d’Entreprise (Enterprise Service). Dans cet article, nous explorerons les principaux aspects du Mapping JSON et son application au sein du MIF.

Approche Générale

La fonctionnalité de Mapping JSON dans le MIF est implémentée en tant que ‘mapper’ plug-and-play aux niveaux du Canal de Publication et du Service d’Entreprise. Ce ‘mapper’ facilite la conversion des messages d’intégration entre les formats JSON et XML Maximo. Il est comparable aux méthodes existantes telles que Java/Scripts/XSL utilisées pour le traitement personnalisé des messages d’intégration.

Pour activer cette fonctionnalité, le Framework d’Intégration subit plusieurs améliorations :

  • Les files d’attente JMS prennent désormais en charge à la fois les données JSON et XML, permettant à ces deux types de messages d’être stockés dans la même file d’attente.
  • Les fonctionnalités de Reprocessing (Reprise de traitement) et de Tracking (Suivi) des messages prennent désormais en charge les données JSON.
  • Les utilitaires View/Delete Queue (Afficher/Supprimer la file d’attente) prennent en charge les messages au format JSON.
  • Les sélecteurs de tâches JMS CRON peuvent fonctionner avec des données JSON.
  • Le support JMS pour le ‘Text format’ prend désormais en charge les données JSON.
  • Une nouvelle application de Mapping JSON est fournie.
Files d’Attente JMS et Traitement Associé

Les files d’attente JMS jouent un rôle crucial dans le stockage et le traitement des messages d’intégration au format JSON. Les messages d’intégration peuvent être chargés dans une file d’attente en utilisant HTTP/HTTPS ou une mise à jour directe via JMS. Notamment, chaque file d’attente JMS peut prendre en charge à la fois les messages XML et JSON, offrant un environnement d’intégration transparent.

Les points clés concernant les files d’attente JMS et le traitement associé incluent :

  • La prise en charge du stockage et du traitement des messages d’intégration au format JSON.
  • Les tâches MDB et JMS CRON peuvent utiliser des sélecteurs sur les files d’attente contenant des données JSON.
  • Les utilitaires View Queue et Delete Queue sont étendus pour gérer les messages au format JSON.
  • Une file d’attente définie pour prendre en charge le ‘Text Format/Text Message Encoding’ prend désormais en charge les données JSON.
  • Le suivi des messages est pris en charge pour les Canaux de Publication et les Services d’Entreprise qui ont implémenté un Map JSON.
Service d’Entreprise (ES)

La fonctionnalité de Mapping JSON s’étend aux Services d’Entreprise, permettant l’acceptation de messages au format JSON dans les processus entrants. La carte JSON est mise en œuvre lorsque le SE est invoqué soit dans un modèle asynchrone (message persisté dans une file d’attente JMS entrante) soit dans un modèle synchrone.

Les points clés liés au Service d’Entreprise et à l’implémentation de la carte JSON incluent :

  • La carte JSON est identifiée en fonction du nom de la carte attribué au Service d’Entreprise.
  • La classe de traitement (external exit) pour un SE prenant en charge une carte JSON doit être com.ibm.tivoli.maximo.fdmbo.JSONMapperExit ou une classe qui l’étend.
  • Le type MIME application/json doit être fourni dans l’en-tête Content-Type lors de l’appel d’un Service d’Entreprise avec JSON.
  • Pour les messages ajoutés directement dans la file d’attente JMS, un en-tête JMS de mimetype avec une valeur ‘application/json’ est requis.
Canal de Publication (PC)

La fonctionnalité de Mapping JSON est également applicable aux Canaux de Publication pour les processus sortants. Elle permet la conversion de messages sortants du format ‘XML Maximo’ au format JSON. De manière similaire aux Services d’Entreprise, la JSON Map est invoquée lorsque la classe de traitement (external exit) du Canal de Publication est exécutée.

Les points clés liés au Canal de Publication et à l’implémentation de la JSON Map incluent :

  • La classe de traitement pour un PC prenant en charge une carte JSON doit être com.ibm.tivoli.maximo.fdmbo.JSONMapperExit ou une classe qui l’étend.
  • La carte JSON est identifiée en fonction du nom de la carte attribué au Canal de Publication.
  • Les messages du PC au format JSON peuvent être traités à partir de la file de sortie en utilisant un point d’extrémité basé sur HTTP, un point d’extrémité basé sur JMS ou un point d’extrémité basé sur un fichier XML. Le point d’extrémité basé sur le fichier XML générera un fichier au format JSON (et non XML).
Application de Mapping JSON

Une nouvelle application dédiée de Mapping JSON est introduite pour faciliter la création et la configuration de cartes JSON. Cette application prend en charge l’ensemble du cycle de vie des cartes JSON, de la création à la suppression, en passant par les tests.

1 – Création d’un mappage JSON

La création d’un mappage JSON implique de lier le mappage à un Canal de Publication ou un Service d’Entreprise en suivant une convention de nommage définie. Le processus inclut la spécification de la direction (entrant ou sortant), la sélection d’une structure d’objet et la configuration du point de terminaison ou de l’URL pour la récupération des données JSON.

Les étapes clés pour créer un mappage JSON sont les suivantes :

  1. Spécifier le Nom, la Description et la Direction (Entrant ou Sortant).
  2. Sélectionner la Structure d’Objet (type INTEGRATION ou OSLC).
  3. Entrer un point de terminaison d’intégration existant (type de gestionnaire HTTP) ou une URL pour la récupération des données JSON.
  4. Éventuellement, coller les données JSON d’exemple directement dans le champ de données JSON.

Une fois la carte sauvegardée, les intégrateurs peuvent passer à l’onglet Propriétés de l’application JSON pour commencer la cartographie des données JSON vers les structures d’objets sélectionnées.

Cartographie des Propriétés

La section de Cartographie des Propriétés de l’application de Mapping JSON permet aux intégrateurs de cartographier les données JSON vers les objets et les attributs au sein de la structure d’objet sélectionnée. Elle offre deux tables : une pour la cartographie des objets et une autre pour la cartographie des attributs.

Les fonctionnalités clés de la section de Cartographie des Propriétés incluent :

  1. La table supérieure prend en charge la cartographie des objets.
  2. La table inférieure prend en charge la cartographie des attributs pour les objets sélectionnés.
  3. Des conditions de cartographie peuvent être appliquées pour cartographier les valeurs de manière conditionnelle.
  4. L’action ‘Test’ permet aux intégrateurs de valider les cartographies en fournissant des données JSON ou XML d’exemple.
Exemples de Cartographie
Exemple 1 : Cartographie Simple

Supposons que nous ayons un message JSON comme suit :

Et que nous voulions mapper ces données vers une structure XML Maximo. La table de cartographie ressemblerait à quelque chose comme ça :

Source JSONCible Maximo
$.clientId[TARGET].ClientID
$.typeId[TARGET].TypeID
$.deviceId[TARGET].DeviceID
$.deviceInfo.serialNumber[TARGET].SerialNumber
$.deviceInfo.manufacturer[TARGET].Manufacturer
$.deviceInfo.model[TARGET].Model
$.deviceInfo.deviceClass[TARGET].DeviceClass
$.deviceInfo.description[TARGET].Description
$.deviceInfo.descriptiveLocation[TARGET].Location
Table de mapping
Exemple 2 : Cartographie Conditionnelle

Imaginons maintenant que nous voulions appliquer une condition à la cartographie. Si le typeId dans le JSON est égal à “PUMP”, alors la valeur de 47CFC1 doit être utilisée pour la description, sinon, la valeur de deviceInfo.description doit être utilisée.

La table de cartographie pourrait ressembler à ceci :

Source JSONCible MaximoCondition
$.typeId[TARGET].TypeID
$.deviceInfo.deviceClass[TARGET].Description$.typeId==”PUMP” $.deviceInfo.deviceClass
$.deviceInfo.description[TARGET].Description$.typeId!=”PUMP” $.deviceInfo.description

Dans cet exemple, si le typeId est “PUMP”, la valeur de deviceInfo.deviceClass sera utilisée pour la description, sinon, la valeur de deviceInfo.description sera utilisée.

Résultat de Test de Transformation JSON à XML

Pour tester un mapping de transformation JSON à XML, l’intégrateur peut tester des données JSON d’exemple via l’action ‘Test’ de l’application. Le résultat affichera le XML Maximo généré en fonction de la cartographie configurée. Cela permet de garantir que la transformation respecte les structures XML définies dans le cadre d’intégration de Maximo.

Pour résumé, la fonctionnalité de Mapping JSON d’IBM Maximo Integration Framework offre aux développeurs une solution flexible et efficace pour traiter les messages d’intégration en JSON et XML Maximo. Que ce soit pour cartographier les données JSON vers XML Maximo pour des processus entrants ou convertir XML Maximo en JSON pour des processus sortants, la capacité de Mapping JSON rationalise le flux de travail d’intégration. En fournissant une application dédiée de Mapping JSON, IBM s’assure que les intégrateurs peuvent facilement créer, tester et gérer des cartes JSON, contribuant ainsi à un environnement d’intégration plus agile et robuste.

#IBM Maximo #Manage #MAS8 #S3 #AWS #REST #API #XML #MAPPING #JSON

maximo4you
maximo4you

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.