মূল কনটেন্টে যান
← ব্লগে ফিরে যান

এই নিবন্ধের মডিউল: টুলবক্স

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 করুন।

Service key দিয়ে SAP CPI HTTPS iFlow টেস্ট করুন, তারপর call-টি 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 করুন

  1. ডিজাইনারে iFlow খুলুন, "Kitegra টুল" বোতাম থেকে "বার্তা" খুলুন, এবং "Trace: বন্ধ" switch চালু করুন।
  2. Runner-এ "পাঠান" ক্লিক করুন, অথবা curl দিয়ে endpoint কল করুন।
  3. Message-টি TRACE চিহ্নসহ "বার্তা" panel-এ দেখা যায়। "ডায়াগ্রামে" বেছে নিন।
  4. একটি রঙিন 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-এ গোনা হয় না।

ডিজাইনার না ছেড়েই iFlows-এ কাজ করুন

Kitegra Chrome বা Microsoft Edge-এ যোগ করুন। ফ্রিতে শুরু করুন, কোনো অ্যাকাউন্ট লাগবে না।