Aller au contenu
Kitegra
← Retour au blog

Module de cet article: Boîte à outils

Outils de payload pour SAP CPI : comparer, convertir et générer des données de test dans le navigateur

Comparez deux payloads, convertissez XML, JSON, YAML et CSV selon les règles des convertisseurs de SAP, générez des payloads de test avec erreurs et insérez des extraits Groovy, hors ligne, à côté du designer d'iFlows.

La moitié du travail sur un iFlow SAP Cloud Integration (SAP CPI) se passe autour du payload : deux messages qui devraient être identiques et ne le sont pas, un corps JSON que le récepteur veut en XML, un jeu de messages de test pour la gestion des erreurs, une ligne de Groovy que vous écrivez chaque semaine sans jamais la retenir. Ces tâches finissent d'habitude dans un éditeur de texte, un convertisseur en ligne et un script maison.

La Toolbox d'Kitegra les réunit dans le navigateur, à côté du designer d'iFlows : comparaison de payloads, un convertisseur de formats, un générateur de payloads de test, des extraits Groovy avec un aide-mémoire, et un HTTP Runner. À part les requêtes que vous envoyez avec le HTTP Runner, ils fonctionnent hors ligne. Ce que vous collez reste dans la page et n'est jamais enregistré ni envoyé.

Où trouver la Toolbox

Ouvrez la fenêtre contextuelle de l'extension et choisissez Outils. La liste de la Toolbox ouvre chaque outil dans son propre onglet : Comparaison de payloads, Convertisseur de formats, Générateur de payloads de test, Extraits et aide-mémoire, HTTP Runner et iFlow Docs. Sur un iFlow, le menu du bloc Kitegra dans la barre d'outils du diagramme ouvre aussi Extraits et Notes sous forme de panneaux sur la page.

Chaque contrôle a un petit (i) à côté qui indique ce qu'il fait. La Toolbox ne compte aucun iFlow dans votre forfait.

Comparaison de payloads

Collez deux payloads, chargez-les depuis des fichiers ou déposez-les sur la page : les différences sont marquées ligne par ligne. Différence précédente et Différence suivante passent d'une différence à l'autre, avec leur nombre.

  • Ignorer les espaces : les lignes qui ne diffèrent que par des espaces, des tabulations ou l'indentation sont considérées comme égales.
  • Normaliser le XML : trie les attributs, ignore les préfixes d'espace de noms et indente les deux côtés, pour ne laisser que les vrais changements.
  • Normaliser le JSON : trie les clés et indente.
  • Différences uniquement : masque les lignes identiques et affiche à leur place le nombre de lignes masquées.
  • Inverser A et B : ce qui apparaissait comme ajouté apparaît comme supprimé.

Un payload qui n'est pas du XML bien formé ou du JSON valide est quand même comparé, comme du texte. Dans le Message Monitor, la visionneuse de payload d'une étape tracée propose Comparer avec l’étape suivante, qui ouvre cette page avec le corps avant et après cette étape. Voir tracer un message étape par étape.

Convertisseur de formats

Collez du XML, du JSON, du YAML, du CSV ou n'importe quel texte, ou chargez un fichier. Le format est détecté d'après le contenu, et seules les conversions qui lui correspondent sont proposées :

  • XML vers JSON et JSON vers XML, selon les règles des convertisseurs de SAP : les membres @name sont des attributs, $ est le texte d'un élément, et un tableau répète son élément. Les options sont celles que vous réglez dans l'iFlow : Ajouter un élément racine XML, Supprimer l’élément racine JSON, et les éléments toujours écrits sous forme de tableaux.
  • CSV vers JSON ou XML et retour, avec le séparateur détecté ou choisi, une ligne d'en-tête et le nom de l'élément de ligne.
  • YAML vers JSON et JSON vers YAML.
  • XML vers un XSD déduit, et un XSD vers un XML d'exemple.
  • Mise en forme et minification pour XML et JSON.
  • Encodage et décodage Base64 et URL ; échappement et déséchappement de chaînes XML, JSON et Groovy.

Utiliser comme entrée remet le résultat dans la zone de saisie, pour le convertir à nouveau. Trois autres onglets se trouvent à côté de Convertir :

  • Valider vérifie que l'entrée est bien formée et liste chaque problème avec sa ligne et sa colonne. Donnez-lui un XSD, et les éléments du XML, leur ordre et leur nombre, les attributs et les types simples sont aussi vérifiés. C'est une vérification légère : les espaces de noms, imports, includes, groupes de substitution et clés ne sont pas vérifiés.
  • Rechercher et remplacer, avec les expressions régulières JavaScript et leurs groupes.
  • Lot convertit plusieurs fichiers de la même façon et télécharge les résultats dans un seul ZIP. Un fichier en échec est laissé de côté et listé.

Générateur de payloads de test

La gestion des erreurs est la partie d'un iFlow la moins testée, parce que personne n'a les messages défectueux. Le générateur les crée à partir d'un vrai échantillon.

  1. Collez ou téléversez un vrai message : XML, JSON, ou CSV avec une ligne d'en-tête.
  2. Vérifiez le tableau des champs. Le type de chaque champ est deviné à partir de sa valeur : texte, entier, décimal, booléen, date, date et heure, e-mail, devise, pays, UUID ou null.
  3. Choisissez une règle pour chaque champ : Conserver la valeur de l'échantillon, Aléatoire du même type, Séquence, ou Choisir dans une liste de valeurs.
  4. Indiquez combien de payloads créer (jusqu'à 1000) et la part qui reçoit une erreur.
  5. Choisissez les types d'erreur et cliquez sur Générer.

Les erreurs sont celles que les récepteurs rejettent : un champ obligatoire manquant, un champ vide, un mauvais type, une date, un e-mail, une devise ou un pays invalide, une quantité négative, un mauvais espace de noms, du XML, du JSON ou du CSV cassé, un ID en double, un champ en trop et une valeur null. Chaque payload défectueux reçoit une seule erreur.

Le même échantillon, les mêmes règles et la même graine donnent toujours les mêmes payloads : un test peut donc être relancé avec les mêmes données. Télécharger le ZIP fournit un fichier par payload plus un manifest.json qui indique l'erreur de chaque fichier et le champ modifié. Télécharger en un seul fichier écrit du JSON Lines, ou du XML et du CSV séparés par une ligne vide. Enregistrer comme jeu de données pour le Runner transmet le jeu au HTTP Runner, qui peut envoyer chaque payload à votre iFlow et montrer quelles réponses sont revenues comme prévu.

Extraits Groovy et aide-mémoire

L'onglet Extraits contient 32 modèles Groovy pour les scripts Cloud Integration. Chacun est écrit pour aller dans processData(Message message), avec les noms de classe complets, si bien qu'aucun import n'est nécessaire. Ils couvrent la lecture et la définition du corps, des headers et des propriétés d'exchange, le streaming d'un gros corps, XmlSlurper, XmlParser et MarkupBuilder, l'analyse XML sécurisée contre XXE, JsonSlurper et JsonBuilder, les valeurs recherchables dans le monitoring, les pièces jointes dans le journal du message, l'échec avec une erreur claire, l'erreur HTTP dans un exception subprocess, les identifiants du Secure Store, et les recherches dans Value Mapping et Partner Directory.

Recherchez-les par nom ou par étiquette. Avec un script ouvert en mode édition dans le designer, Insérer tape l'extrait au curseur ; sinon, copiez-le. Ajouter les vôtres conserve jusqu'à 20 extraits personnels, synchronisés avec votre compte Kitegra quand vous êtes connecté. N'y mettez ni mots de passe ni clés.

L'onglet Aide-mémoire liste ce que vous cherchez chaque semaine : les opérateurs Simple, les formats de date Java avec exemples, les fonctions XPath 1.0 exécutées sur un XML d'exemple, et des liens vers la documentation de SAP et d'Apache Camel. Cliquez sur un exemple pour le copier. Les expressions elles-mêmes sont expliquées dans Expressions Camel Simple dans SAP CPI.

Pour lire les scripts qu'un iFlow contient déjà, utilisez Expliquer les scripts dans iFlow Docs. Pour chaque script, il indique son objectif, ce qu'il lit, ce qu'il définit ou modifie, sa logique principale, les API SAP qu'il utilise et ses risques.

HTTP Runner

Le HTTP Runner appelle les endpoints HTTPS de votre iFlow avec OAuth à partir d'une service key Process Integration Runtime, conserve les requêtes dans des collections et vérifie les réponses. Dans Infos sur l'iFlow, chaque endpoint se copie en cURL ou s'ouvre dans le Runner. La démarche complète se trouve dans tester un iFlow HTTPS avec une service key.

Ce qu'elle conserve, et ce que comprend votre forfait

La comparaison, le convertisseur, le générateur et l'aide-mémoire s'exécutent dans la page et ne conservent rien. Vos propres extraits, et les collections du HTTP Runner sans valeurs d'authentification ni variables secrètes, se synchronisent avec votre compte Kitegra quand vous êtes connecté.

Les outils hors ligne sont inclus dans tous les forfaits. Le HTTP Runner a un usage limité avec Free et Starter, et complet avec Pro et les forfaits d'équipe. Pendant le lancement d'Kitegra, tous les outils sont ouverts à toute personne connectée, y compris avec le forfait Free. Comparez les forfaits.

Essayez-le dans votre prochain iFlow

Découvrez ce qu'Kitegra ajoute autour du designer de SAP Integration Suite, ou tout ce que fait la Toolbox.

Questions fréquentes

Mes payloads sont-ils envoyés quelque part ?

Non. La comparaison, le convertisseur, le générateur et l'aide-mémoire s'exécutent dans la page du navigateur. Ce que vous collez ou chargez n'est ni enregistré ni envoyé.

Le convertisseur donne-t-il le même résultat que les convertisseurs de SAP ?

Il suit les mêmes règles et options que les convertisseurs JSON to XML et XML to JSON de SAP : attributs, texte des éléments, tableaux, élément racine ajouté et racine JSON supprimée. Exécutez l'iFlow quand le résultat doit être exact.

Puis-je reproduire un jeu de test généré ?

Oui. Le même échantillon, les mêmes règles et la même graine donnent toujours les mêmes payloads. Changer les erreurs laisse les valeurs telles quelles.

Comment insérer un extrait dans un script Groovy ?

Ouvrez le script en mode édition dans le designer, placez le curseur à l'endroit voulu et cliquez sur Insérer sur l'extrait. Enregistrez ensuite l'iFlow vous-même.

La Toolbox compte-t-elle des iFlows ?

Non. Seuls le Helper, le Message Monitor, l'iFlow Inspector et iFlow Docs comptent des iFlows.

Travaillez sur vos iFlows sans quitter le designer

Ajoutez Kitegra à Chrome ou Microsoft Edge. Commencez gratuitement, sans compte.