Modul in diesem Artikel: Werkzeugkasten
SAP CPI HTTPS-iFlow mit Service Key testen und den Aufruf anschließend tracen
Einen HTTPS-Endpunkt in SAP CPI mit OAuth Client Credentials aus einem Service Key von Process Integration Runtime aufrufen, die erzeugte Nachricht finden und Schritt für Schritt tracen.

Ein iFlow mit HTTPS-Sender ist schnell deployt und überraschend umständlich aufzurufen: Sie brauchen den richtigen Endpunkt, ein Token vom richtigen Service Key, manchmal ein CSRF-Token, und danach müssen Sie die Nachricht, die Ihr Aufruf erzeugt hat, noch im Monitor finden.
Dieser Artikel geht den ganzen Kreislauf für SAP Cloud Integration (SAP CPI) durch: was Sie brauchen, wie Sie ein Token holen und den Endpunkt aufrufen, wie Sie die entstandene Nachricht finden und wie Sie sie tracen.
Was Sie brauchen
- Einen bereitgestellten iFlow mit einem HTTPS-Sender-Kanal. Seine Adresse, zum Beispiel
/orders/create, wird Teil des Endpunkts. - Die Endpunkt-URL: der Laufzeit-Host, gefolgt von
/httpund der Adresse. Manage Integration Content im Monitor listet sie für den bereitgestellten iFlow auf. - Eine Service-Instanz von Process Integration Runtime mit dem Service-Plan
integration-flowund einer Rolle, die Nachrichten senden darf, sowie einen Service Key dieser Instanz mit Client-ID und Secret. - Eine Test-Payload, die der iFlow akzeptiert.
Ein Token holen und den Endpunkt aufrufen
Der Service Key enthält, was der Aufruf braucht: Client-ID und Secret, die URL des Token-Service und den Laufzeit-Host:
{
"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"
}
}Behandeln Sie das Client-Secret wie ein Passwort: Halten Sie den Key aus geteilten Dateien, Tickets und Chats heraus.
Den Endpunkt aufrufen und die Antwort lesen
Der Aufruf besteht aus zwei Anfragen: einem Token mit dem Grant Client Credentials, dann dem eigentlichen Aufruf mit diesem Token:
# 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: Das Token fehlt, ist abgelaufen oder stammt aus einem anderen Subaccount.
- 403: Die Rolle des Service Keys darf keine Nachrichten senden, oder der HTTPS-Sender verlangt ein CSRF-Token. Für einen Test-Endpunkt können Sie den CSRF-Schutz im Kanal abschalten oder vorher ein Token holen.
- 404: Die Adresse ist falsch, oder der iFlow ist nicht bereitgestellt.
- 500: Der iFlow ist fehlgeschlagen; das Message Processing Log sagt, wo.
Unabhängig vom Status liefert der Response-Header SAP_MessageProcessingLogID die Message ID des Aufrufs, und damit können Sie die Nachricht öffnen: siehe eine Nachricht per Message ID finden.
Im Browser mit dem HTTP Runner
Die Toolbox des Kitegra enthält einen HTTP Runner für die Endpunkte Ihrer iFlows. Öffnen Sie ihn über die Ansicht Werkzeuge im Popup der Erweiterung.
- „Neue Sammlung“ und „Neue Anfrage“ legen eine Sammlung von Anfragen an, mit GET, POST, PUT, PATCH, DELETE oder HEAD, Query-Parametern, Headern und einem JSON-, XML- oder Text-Body oder einer Datei.
{{variables}}und Umgebungen (dev, test, prod): Legen Sie eine mit „Neue Umgebung“ an, oder senden Sie mit „Keine Umgebung“. Eine als „Geheim“ markierte Variable behält ihren Wert in diesem Browser.- Auth: „Aus der Sammlung“, „Keins“, „Basic“, „Bearer-Token“ oder „OAuth2 Client Credentials (Service Key)“, wofür Sie das JSON eines „Service Key (Process Integration Runtime)“ einfügen; das Token wird für Sie geholt. Nötig ist ein Key mit Client-Secret; ein zertifikatsbasierter Key wird nicht unterstützt.
- „Tests“ prüfen die Antwort („Status gleich“, „Body enthält“, „JSONPath gleich“, „XPath gleich“), „Extrahieren“ speichert Werte daraus in Variablen, und „Sammlung ausführen“ sendet die ganze Sammlung der Reihe nach.
- „Importieren“ → „Postman-Sammlung“ übernimmt eine Postman-Sammlung, wie in von Postman oder OpenAPI zum HTTP Receiver, und auf dem Tab „Datensatz“ sendet „Jeden Payload senden“ jeden Payload eines Datensatzes aus dem Testpayload-Generator.
Nichts wird gesendet, bevor Sie auf „Senden“ klicken, und Ihre SAP-Cookies werden nie mitgeschickt. Der Runner ruft nur Hosts unter *.hana.ondemand.com auf. Nach einem Aufruf öffnet „Im Monitor öffnen“ die Nachricht anhand ihrer SAP_MessageProcessingLogID im Log-Viewer; lässt sich der Designer-Host nicht aus dem Endpunkt ableiten, tragen Sie in der Umgebung den Tenant (Designer-Host) für „Im Monitor öffnen“ ein.
Den Aufruf tracen
- Öffnen Sie den iFlow im Designer, öffnen Sie Nachrichten über „Kitegra-Werkzeuge“ und schalten Sie „Trace: aus“ auf an.
- Klicken Sie im Runner auf „Senden“, oder rufen Sie den Endpunkt mit curl auf.
- Die Nachricht erscheint im Panel Nachrichten mit einer TRACE-Markierung. Wählen Sie „Im Diagramm“.
- Klicken Sie auf einen eingefärbten Schritt, um Body, Header und Exchange Properties davor zu sehen.
Eine Nachricht Schritt für Schritt tracen behandelt das Trace-Panel im Detail.
Wie der Kitegra hilft
Im Kitegra bleiben Service Key, Auth-Werte und geheime Variablen in Ihrem Browser. Wenn Sie angemeldet sind, werden die Sammlungen und Umgebungen des Runners mit Ihrem Kitegra-Konto synchronisiert, wobei jeder Auth-Wert und jede geheime Variable entfernt wird. Der Runner gehört zur Toolbox, die kostenlos ist; Tracing und Protokoll-Viewer gehören zum Message Monitor.
Helper, Message Monitor, iFlow Inspector und iFlow Docs zählen jeweils die iFlows, für die Sie sie nutzen: 5 je Modul ohne Kitegra-Konto, 50 im Tarif Free, 100 mit Starter und 300 mit Pro; Business hat kein Limit. Die Toolbox und die Extras für den Arbeitsbereich sind kostenlos. Tarife vergleichen.
Probieren Sie ihn im nächsten iFlow aus
Lesen Sie, was der Kitegra rund um den Designer der SAP Integration Suite ergänzt, oder sehen Sie ihn neben den anderen Chrome-Erweiterungen von Kitegra.
Häufige Fragen
Wie rufe ich einen HTTPS-Endpunkt in SAP CPI mit OAuth auf?
Holen Sie mit dem Grant Client Credentials ein Token von der Token-URL des Service Keys und rufen Sie dann den Endpunkt mit dem Header Authorization: Bearer und dem Token auf.
Welchen Service Key brauche ich?
Einen Service Key einer Instanz von Process Integration Runtime mit dem Service-Plan integration-flow und einer Rolle, die Nachrichten senden darf.
Warum bekomme ich von meinem HTTPS-iFlow einen 403?
Meist darf die Rolle des Keys keine Nachrichten senden, oder der HTTPS-Sender verlangt ein CSRF-Token.
Wie finde ich die Nachricht, die mein Aufruf erzeugt hat?
Lesen Sie den Response-Header SAP_MessageProcessingLogID: Er enthält die Message ID des Aufrufs.
Wo bewahrt der HTTP Runner meinen Service Key auf?
In Ihrem Browser. Synchronisierte Sammlungen enthalten nie Auth-Werte oder geheime Variablen.
Ist der HTTP Runner kostenlos?
Ja. Er gehört zur Toolbox, die nicht zu den iFlows Ihres Tarifs zählt.