Module de cet article: Boîte à outils
Tester un iFlow HTTPS SAP CPI avec une service key, puis tracer l'appel
Appelez un endpoint HTTPS SAP CPI en OAuth client credentials depuis une service key Process Integration Runtime, retrouvez le message créé par l'appel et tracez-le étape par étape.

Un iFlow avec un émetteur HTTPS se déploie facilement mais s'appelle étonnamment mal : il faut le bon endpoint, un jeton issu de la bonne service key, parfois un jeton CSRF, et ensuite encore retrouver dans le moniteur le message créé par votre appel.
Cet article parcourt toute la boucle pour SAP Cloud Integration (SAP CPI) : ce qu'il vous faut, comment obtenir un jeton et appeler l'endpoint, comment retrouver le message qui en résulte, et comment le tracer.
Ce qu'il vous faut
- Un iFlow déployé avec un canal émetteur HTTPS. Son Address, par exemple
/orders/create, fait partie de l'endpoint. - L'URL de l'endpoint : l'hôte du runtime suivi de
/httpet de l'adresse. Manage Integration Content, dans le moniteur, l'affiche pour l'iFlow déployé. - Une instance de service Process Integration Runtime avec le plan
integration-flowet un rôle autorisé à envoyer des messages, et une service key de cette instance avec un client ID et un secret. - Un payload de test que l'iFlow accepte.
Obtenir un jeton et appeler l'endpoint
La service key contient ce dont l'appel a besoin : le client ID et le secret, l'URL du service de jetons, et l'hôte du runtime :
{
"oauth": {
"clientid": "<client id>",
"clientsecret": "<secret>",
"url": "https://<subaccount>.it-cpi<nn>-rt.cfapps.<region>.hana.ondemand.com",
"tokenurl": "https://<subaccount>.authentication.<region>.hana.ondemand.com/oauth/token"
}
}Traitez le client secret comme un mot de passe : gardez la key hors des fichiers partagés, des tickets et des discussions.
Appeler l'endpoint et lire la réponse
L'appel se fait en deux requêtes : un jeton avec le grant client credentials, puis l'appel lui-même avec ce jeton :
# 1. Get an access token with the client credentials of the service key
curl -X POST "<tokenurl>" \
-u "<clientid>:<clientsecret>" \
-d "grant_type=client_credentials"
# 2. Call the iFlow's HTTPS endpoint with the token
curl -i -X POST "<url>/http/orders/create" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d @order.json
# The response headers include SAP_MessageProcessingLogID: the Message ID of this call.- 401 : le jeton est absent, expiré ou provient d'un autre sous-compte.
- 403 : le rôle de la service key n'est pas autorisé à envoyer des messages, ou l'émetteur HTTPS exige un jeton CSRF. Pour un endpoint de test, vous pouvez désactiver la protection CSRF dans le canal, ou récupérer d'abord un jeton.
- 404 : l'adresse est fausse, ou l'iFlow n'est pas déployé.
- 500 : l'iFlow a échoué ; le journal de traitement du message indique où.
Quel que soit le statut, le header de réponse SAP_MessageProcessingLogID fournit le Message ID de l'appel, et il vous permet d'ouvrir le message : voir retrouver un message par Message ID.
Le faire dans le navigateur avec le HTTP Runner
La Toolbox de Kitegra comprend un HTTP Runner pour les endpoints de vos iFlows. Ouvrez-le depuis la vue « Outils » de la fenêtre contextuelle de l'extension.
- « Nouvelle collection » et « Nouvelle requête » créent une collection de requêtes en GET, POST, PUT, PATCH, DELETE ou HEAD, avec paramètres de requête, en-têtes et un corps JSON, XML ou texte, ou un fichier.
{{variables}}et environnements (dev, test, prod) : ajoutez-en un avec « Nouvel environnement », ou envoyez avec « Aucun environnement ». Une variable marquée « Secrète » garde sa valeur dans ce navigateur.- Auth : « De la collection », « Aucun », « Basic », « Jeton Bearer » ou « OAuth2 client credentials (service key) », pour lequel vous collez le JSON d'une « Service key (Process Integration Runtime) » ; le jeton est obtenu pour vous. Il faut une clé avec client secret ; une clé à certificat n'est pas prise en charge.
- « Tests » vérifie la réponse (« Statut égal à », « Le corps contient », « JSONPath égal à », « XPath égal à »), « Extraire » en enregistre des valeurs dans des variables, et « Exécuter la collection » envoie toute la collection dans l'ordre.
- « Importer » → « Collection Postman » reprend une collection Postman, comme dans de Postman ou OpenAPI à un récepteur HTTP, et dans l'onglet « Jeu de données », « Envoyer chaque payload » envoie chaque payload d'un jeu de données du générateur de payloads de test.
Rien ne part avant que vous cliquiez sur « Envoyer », et vos cookies SAP ne sont jamais envoyés. Le Runner n'appelle que des hôtes sous *.hana.ondemand.com. Après un appel, « Ouvrir dans le moniteur » ouvre le message à partir de son SAP_MessageProcessingLogID dans la visionneuse de journaux ; si l'hôte du concepteur ne peut pas être déduit de l'endpoint, renseignez « Tenant (hôte du concepteur) pour Ouvrir dans le moniteur » dans l'environnement.
Tracer l'appel
- Ouvrez l'iFlow dans le designer, ouvrez « Messages » depuis le bouton « Outils Kitegra » et faites passer « Trace : désactivé » à activé.
- Cliquez sur « Envoyer » dans le Runner, ou appelez l'endpoint avec curl.
- Le message apparaît dans le panneau « Messages » avec une marque TRACE. Choisissez « Sur le diagramme ».
- Cliquez sur une étape colorée pour voir le body, les headers et les exchange properties juste avant elle.
Tracer un message étape par étape décrit en détail le panneau de trace.
Comment Kitegra vous aide
Dans Kitegra, la service key, les valeurs d'authentification et les variables secrètes restent dans votre navigateur. Une fois connecté, les collections et environnements du Runner se synchronisent avec votre compte Kitegra, débarrassés de toute valeur d'authentification et de toute variable secrète. Le Runner fait partie de la Toolbox, qui est gratuite ; la trace et la visionneuse de journaux appartiennent au Message Monitor.
Le Helper, le Message Monitor, l'iFlow Inspector et iFlow Docs comptent chacun les iFlows sur lesquels vous les utilisez : 5 par module sans compte Kitegra, 50 avec le forfait Free, 100 avec Starter et 300 avec Pro ; Business n'a pas de limite. La Toolbox et les extras de l'espace de travail sont gratuits. Comparez les forfaits.
Essayez-le dans votre prochain iFlow
Découvrez ce que Kitegra ajoute autour du designer de SAP Integration Suite, ou voyez-le aux côtés des autres extensions Chrome de Kitegra.
Questions fréquentes
Comment appeler un endpoint HTTPS SAP CPI avec OAuth ?
Obtenez un jeton depuis l'URL de jetons de la service key avec le grant client credentials, puis appelez l'endpoint avec le header Authorization: Bearer suivi du jeton.
De quelle service key ai-je besoin ?
D'une service key d'une instance Process Integration Runtime avec le plan integration-flow et un rôle autorisé à envoyer des messages.
Pourquoi mon iFlow HTTPS renvoie-t-il 403 ?
Le plus souvent, le rôle de la key n'est pas autorisé à envoyer des messages, ou l'émetteur HTTPS exige un jeton CSRF.
Comment retrouver le message créé par mon appel ?
Lisez le header de réponse SAP_MessageProcessingLogID : c'est le Message ID de l'appel.
Où le HTTP Runner conserve-t-il ma service key ?
Dans votre navigateur. Les collections synchronisées n'incluent jamais de valeurs d'authentification ni de variables secrètes.
Le HTTP Runner est-il gratuit ?
Oui. Il fait partie de la Toolbox, qui ne compte pas dans les iFlows de votre forfait.