Bu makaledeki modül: Araç kutusu
SAP CPI HTTPS iFlow'unu Service Key ile Test Etme ve Çağrıyı Trace Etme
Bir SAP CPI HTTPS uç noktasını Process Integration Runtime service key'inden OAuth client credentials ile çağırma, oluşan mesajı bulma ve adım adım trace etme.

HTTPS sender'lı bir iFlow'u dağıtmak kolaydır, çağırmak ise şaşırtıcı derecede zahmetlidir: doğru uç noktaya, doğru service key'den bir token'a, bazen bir CSRF token'ına ihtiyacınız olur; ardından çağrınızın oluşturduğu mesajı yine de izleyicide bulmanız gerekir.
Bu makale SAP Cloud Integration (SAP CPI) için döngünün tamamını ele alıyor: neye ihtiyacınız olduğu, nasıl token alıp uç noktayı çağıracağınız, ortaya çıkan mesajı nasıl bulacağınız ve onu nasıl trace edeceğiniz.
Neye ihtiyacınız var
- HTTPS sender kanalı olan dağıtılmış bir iFlow. Kanalın Address değeri, örneğin
/orders/create, uç noktanın bir parçası olur. - Uç nokta URL'si: çalışma zamanı host'u, ardından
/httpve adres. İzleyicideki Manage Integration Content, dağıtılmış iFlow için bunu listeler. integration-flowservice plan'ına ve mesaj gönderebilen bir role sahip bir Process Integration Runtime hizmet örneği ve bu örneğin client ID ve secret içeren bir service key'i.- iFlow'un kabul ettiği bir test payload'ı.
Token alın ve uç noktayı çağırın
Service key çağrının ihtiyaç duyduklarını içerir: client ID ve secret, token hizmetinin URL'si ve çalışma zamanı host'u:
{
"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"
}
}Client secret'a bir parola gibi davranın: anahtarı paylaşılan dosyaların, destek kayıtlarının ve sohbetlerin dışında tutun.
Uç noktayı çağırın ve yanıtı okuyun
Çağrı iki istekten oluşur: client credentials grant ile bir token, ardından bu token ile asıl çağrı:
# 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: token eksik, süresi dolmuş veya başka bir subaccount'a ait.
- 403: service key'in rolü mesaj gönderemiyor veya HTTPS sender bir CSRF token'ı gerektiriyor. Bir test uç noktası için kanalda CSRF korumasını kapatabilir veya önce bir token alabilirsiniz.
- 404: adres yanlış veya iFlow dağıtılmamış.
- 500: iFlow başarısız oldu; message processing log nerede olduğunu söyler.
Durum ne olursa olsun SAP_MessageProcessingLogID yanıt header'ı çağrının Message ID'sini verir ve onunla mesajı açabilirsiniz: bir mesajı Message ID ile bulma makalesine bakın.
HTTP Runner ile tarayıcıda yapın
Kitegra'ın Toolbox'ında iFlow uç noktalarınız için bir HTTP Runner vardır. Onu uzantının açılır penceresindeki Araçlar görünümünden açın.
- “Yeni koleksiyon” ve “Yeni istek” ile GET, POST, PUT, PATCH, DELETE veya HEAD isteklerinden bir koleksiyon oluşturulur; sorgu parametreleri, header'lar ve JSON, XML ya da metin gövdesi veya bir dosya eklenebilir.
{{variables}}ve ortamlar (dev, test, prod): “Yeni ortam” ile ekleyin ya da “Ortam yok” ile gönderin. “Gizli” olarak işaretlenen bir değişkenin değeri bu tarayıcıda kalır.- Auth: “Koleksiyondan”, “Yok”, “Basic”, “Bearer token” veya “OAuth2 client credentials (service key)”; sonuncusunda bir “Service key (Process Integration Runtime)” JSON'unu yapıştırırsınız ve token sizin için alınır. Client secret içeren bir anahtar gerekir; sertifika tabanlı anahtar desteklenmez.
- “Testler” yanıtı denetler (“Durum eşittir”, “Gövde içerir”, “JSONPath eşittir”, “XPath eşittir”), “Çıkar” yanıttaki değerleri değişkenlere kaydeder ve “Koleksiyonu çalıştır” tüm koleksiyonu sırayla gönderir.
- Postman veya OpenAPI'den HTTP receiver'a makalesindeki gibi “İçe aktar” → “Postman koleksiyonu” bir Postman koleksiyonunu getirir; “Veri kümesi” sekmesindeki “Her mesajı gönder” ise test mesajı oluşturucusundaki bir veri kümesinin her mesajını gönderir.
“Gönder”e tıklayana kadar hiçbir şey gönderilmez ve SAP çerezleriniz asla gönderilmez. Runner yalnızca *.hana.ondemand.com altındaki host'ları çağırır. Bir çağrıdan sonra “İzleyicide aç”, mesajı SAP_MessageProcessingLogID değerinden log görüntüleyicide açar; tasarımcı host'u endpoint'ten tahmin edilemiyorsa ortamda “İzleyicide aç için tenant (tasarımcı host'u)” alanını doldurun.
Çağrıyı trace edin
- iFlow'u tasarımcıda açın, “Kitegra araçları” düğmesinden Mesajlar'ı açın ve “Trace: kapalı” anahtarını açık konuma getirin.
- Runner'da “Gönder”e tıklayın veya endpoint'i curl ile çağırın.
- Mesaj, Mesajlar panelinde bir TRACE işaretiyle görünür. “Diyagramda” seçeneğini seçin.
- Öncesindeki body'yi, header'ları ve exchange property'leri görmek için renkli bir adıma tıklayın.
Bir mesajı adım adım trace etme makalesi trace panelini ayrıntılı olarak ele alıyor.
Kitegra nasıl yardımcı olur
Kitegra uzantısında service key, kimlik doğrulama değerleri ve gizli değişkenler tarayıcınızda kalır. Oturum açtığınızda Runner'ın koleksiyonları ve ortamları, her kimlik doğrulama değeri ve gizli değişken çıkarılarak Kitegra hesabınızla eşitlenir. Runner ücretsiz olan Toolbox'ın bir parçasıdır; trace ve log görüntüleyici Message Monitor'e aittir.
Helper, Message Monitor, iFlow Inspector ve iFlow Docs, kullandığınız iFlow'ları her biri ayrı sayar: Kitegra hesabı olmadan modül başına 5, Free planında 50, Starter'da 100 ve Pro'da 300; Business'ta sınır yoktur. Toolbox ve çalışma alanı ekstraları ücretsizdir. Planları karşılaştırın.
Bir sonraki iFlow'unuzda deneyin
Kitegra'ın SAP Integration Suite tasarımcısının çevresine neler eklediğini okuyun veya onu Kitegra'in diğer Chrome uzantılarıyla birlikte görün.
Sık sorulan sorular
Bir SAP CPI HTTPS uç noktasını OAuth ile nasıl çağırırım?
Service key'in token URL'sinden client credentials grant ile bir token alın, ardından uç noktayı Authorization: Bearer header'ı ve token ile çağırın.
Hangi service key'e ihtiyacım var?
integration-flow service plan'ına ve mesaj gönderebilen bir role sahip bir Process Integration Runtime örneğinin service key'i.
HTTPS iFlow'umdan neden 403 alıyorum?
Genellikle anahtarın rolü mesaj gönderemiyordur veya HTTPS sender bir CSRF token'ı gerektiriyordur.
Çağrımın oluşturduğu mesajı nasıl bulurum?
SAP_MessageProcessingLogID yanıt header'ını okuyun: bu, çağrının Message ID'sidir.
HTTP Runner service key'imi nerede tutar?
Tarayıcınızda. Eşitlenen koleksiyonlar asla kimlik doğrulama değerleri veya gizli değişkenler içermez.
HTTP Runner ücretsiz mi?
Evet. Planınızın iFlow'larına sayılmayan Toolbox'ın bir parçasıdır.