Service key দিয়ে SAP CPI HTTPS iFlow টেস্ট করুন, তারপর call-টি trace করুন
Process Integration Runtime service key-এর OAuth client credentials দিয়ে SAP CPI HTTPS endpoint call করুন, call-এ তৈরি message খুঁজুন, এবং সেটি step by step trace করুন।

HTTPS sender-ওয়ালা iFlow ডিপ্লয় করা সহজ, কিন্তু call করা আশ্চর্য রকম ঝামেলার: আপনার দরকার সঠিক endpoint, সঠিক service key থেকে একটি token, কখনো কখনো একটি CSRF token, আর তারপরও monitor-এ খুঁজতে হয় আপনার call কোন message তৈরি করল।
এই নিবন্ধ SAP Cloud Integration (SAP CPI)-এর জন্য পুরো loop-টি দেখায়: আপনার কী দরকার, কীভাবে token নেবেন ও endpoint call করবেন, তৈরি হওয়া message কীভাবে খুঁজবেন, এবং কীভাবে সেটি trace করবেন।
আপনার কী দরকার
- HTTPS sender channel-সহ একটি ডিপ্লয় করা iFlow। এর Address, যেমন
/orders/create, endpoint-এর অংশ হয়। - Endpoint URL: runtime host, তারপর
/httpও address। Monitor-এর Manage Integration Content ডিপ্লয় করা iFlow-এর জন্য এটি দেখায়। - Plan
integration-flowও message পাঠানোর অনুমতিসহ একটি role নিয়ে Process Integration Runtime-এর একটি service instance, এবং সেই instance-এর একটি service key যাতে client ID ও secret আছে। - iFlow গ্রহণ করে এমন একটি test payload।
Token নিন ও endpoint call করুন
Call-এর জন্য যা দরকার তা service key-তেই থাকে: client ID ও secret, token service-এর URL, এবং runtime 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"
}
}Client secret-কে password-এর মতো সামলান: key-টি শেয়ার করা ফাইল, tickets ও chats থেকে দূরে রাখুন।
Endpoint call করুন ও উত্তর পড়ুন
Call-এ দুটি request লাগে: client credentials grant দিয়ে একটি token, তারপর সেই token দিয়ে আসল call:
# 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 নেই, মেয়াদ শেষ, অথবা অন্য কোনো subaccount-এর।
- 403: service key-এর role-এর message পাঠানোর অনুমতি নেই, অথবা HTTPS sender একটি CSRF token চায়। Test endpoint-এর জন্য আপনি channel-এ CSRF protection বন্ধ করতে পারেন, অথবা আগে একটি token নিতে পারেন।
- 404: address ভুল, অথবা iFlow ডিপ্লয় করা নেই।
- 500: iFlow ব্যর্থ হয়েছে; message processing log জানায় কোথায়।
Status যা-ই হোক, response header SAP_MessageProcessingLogID call-এর Message ID দেয়, আর তা দিয়ে আপনি message খুলতে পারেন: দেখুন Message ID দিয়ে message খোঁজা।
HTTP Runner দিয়ে browser-এই কাজটি করুন
Kitegra-এর Toolbox-এ আপনার iFlow endpoints-এর জন্য একটি HTTP Runner আছে। এক্সটেনশনের popup-এর "টুলস" view থেকে এটি খুলুন।
- "নতুন কালেকশন" ও "নতুন রিকোয়েস্ট" দিয়ে GET, POST, PUT, PATCH, DELETE বা HEAD রিকোয়েস্টের একটি কালেকশন শুরু হয়, সঙ্গে query parameter, header, এবং JSON, XML বা টেক্সট body অথবা একটি ফাইল।
{{variables}}ও এনভায়রনমেন্ট (dev, test, prod): "নতুন এনভায়রনমেন্ট" দিয়ে একটি যোগ করুন, অথবা "কোনো এনভায়রনমেন্ট নয়" দিয়ে পাঠান। "গোপন" চিহ্নিত ভ্যারিয়েবলের মান এই ব্রাউজারেই থাকে।- Auth: "কালেকশন থেকে", "নেই", "Basic", "Bearer টোকেন" বা "OAuth2 client credentials (সার্ভিস কী)", যেখানে আপনি "সার্ভিস কী (Process Integration Runtime)"-এর JSON পেস্ট করেন; টোকেন আপনার হয়ে আনা হয়। client secret সহ কী লাগবে; সার্টিফিকেট-ভিত্তিক কী সমর্থিত নয়।
- "টেস্ট" response যাচাই করে ("স্ট্যাটাস সমান", "বডিতে আছে", "JSONPath সমান", "XPath সমান"), "এক্সট্র্যাক্ট" তা থেকে মান ভ্যারিয়েবলে রাখে, আর "কালেকশন চালান" পুরো কালেকশন ক্রমানুসারে পাঠায়।
- "ইমপোর্ট" → "Postman কালেকশন" একটি Postman কালেকশন নিয়ে আসে, যেমন Postman বা OpenAPI থেকে HTTP receiver-এ দেখানো হয়েছে, এবং "ডেটা সেট" ট্যাবে "প্রতিটি পেলোড পাঠান" "টেস্ট পেলোড জেনারেটর"-এর একটি ডেটা সেটের প্রতিটি পেলোড পাঠায়।
আপনি "পাঠান" ক্লিক না করা পর্যন্ত কিছুই পাঠানো হয় না, এবং আপনার SAP কুকি কখনো পাঠানো হয় না। Runner শুধু *.hana.ondemand.com-এর অধীন হোস্টে কল করে। কলের পরে "মনিটরে খুলুন" বার্তাটি তার SAP_MessageProcessingLogID থেকে লগ ভিউয়ারে খোলে; endpoint থেকে ডিজাইনার হোস্ট বোঝা না গেলে, এনভায়রনমেন্টে "Open in monitor-এর জন্য টেন্যান্ট (ডিজাইনার হোস্ট)" সেট করুন।
Call-টি trace করুন
- ডিজাইনারে iFlow খুলুন, "Kitegra টুল" বোতাম থেকে "বার্তা" খুলুন, এবং "Trace: বন্ধ" switch চালু করুন।
- Runner-এ "পাঠান" ক্লিক করুন, অথবা curl দিয়ে endpoint কল করুন।
- Message-টি TRACE চিহ্নসহ "বার্তা" panel-এ দেখা যায়। "ডায়াগ্রামে" বেছে নিন।
- একটি রঙিন step-এ ক্লিক করে তার আগের body, headers ও exchange properties দেখুন।
Message step by step trace করা trace panel বিস্তারিতভাবে ব্যাখ্যা করে।
Kitegra কীভাবে সাহায্য করে
Kitegra-এ service key, auth values ও secret variables আপনার browser-এই থাকে। সাইন ইন থাকলে, Runner-এর collections ও environments প্রতিটি auth value ও secret variable সরিয়ে আপনার Kitegra অ্যাকাউন্টের সঙ্গে sync হয়। Runner হলো Toolbox-এর অংশ, যা ফ্রি; tracing ও log viewer Message Monitor-এর অংশ।
Helper, Message Monitor, iFlow Inspector ও iFlow Docs প্রত্যেকে সেই iFlow-গুলো গণনা করে যেগুলোতে আপনি এগুলো ব্যবহার করেন: Kitegra অ্যাকাউন্ট ছাড়া প্রতি মডিউলে 5টি, Free প্ল্যানে 50, Starter-এ 100 এবং Pro-তে 300; Business-এ কোনো সীমা নেই। Toolbox ও workspace-এর বাড়তি সুবিধাগুলো ফ্রি। প্ল্যানগুলো তুলনা করুন।
আপনার পরবর্তী iFlow-এ চেষ্টা করুন
Kitegra, SAP Integration Suite ডিজাইনারের চারপাশে কী কী যোগ করে তা পড়ুন, অথবা Kitegra-এর অন্য Chrome এক্সটেনশনগুলোর পাশে এটি দেখুন।
সাধারণ জিজ্ঞাসা
OAuth দিয়ে SAP CPI HTTPS endpoint কীভাবে call করব?
Client credentials grant দিয়ে service key-এর token URL থেকে একটি token নিন, তারপর header Authorization: Bearer ও token দিয়ে endpoint call করুন।
আমার কোন service key দরকার?
Plan integration-flow ও message পাঠানোর অনুমতিসহ একটি role নিয়ে Process Integration Runtime instance-এর একটি service key।
আমার HTTPS iFlow থেকে কেন 403 আসে?
সাধারণত key-এর role-এর message পাঠানোর অনুমতি নেই, অথবা HTTPS sender একটি CSRF token চায়।
আমার call যে message তৈরি করেছে তা কীভাবে খুঁজব?
Response header SAP_MessageProcessingLogID পড়ুন: এটিই call-এর Message ID।
HTTP Runner আমার service key কোথায় রাখে?
আপনার browser-এ। Sync করা collections-এ কখনো auth values বা secret variables থাকে না।
HTTP Runner কি ফ্রি?
হ্যাঁ। এটি Toolbox-এর অংশ, যা আপনার প্ল্যানের iFlow-এ গোনা হয় না।