この記事のモジュール: Integration Flow Helper
SAP CPI で Externalize Parameters、ステップ設定のコピー、SAP Business Accelerator Hub からの API インポート
固定のアドレスをワンステップで {{parameters}} に変え、ステップの設定を別の iFlow にコピーし、OData クエリをテンプレートとして保存し、Hub から API をインポートし、サンプルで XPath を確認し、マッピングの式を整列します。
SAP Cloud Integration(SAP CPI)の iFlow づくりで時間がかかるのは、ロジックそのものとは限りません。同じレシーバーのアドレスを 3 つの tenant で打ち込む、10 行の Content Modifier を別の iFlow へ手で写す、先月書いた OData クエリを組み直す、エンティティセットのフィールドを知りたいだけで API 仕様をダウンロードする。そうした作業です。
Kitegra の Helper には、SAP Integration Suite のデザイナーのすぐ横に、こうした作業のためのツールが加わりました:Externalize Parameters、OData クエリテンプレート付きのステップ設定のコピー&ペースト、SAP Business Accelerator Hub からのインポート、サンプルペイロードによる XPath の確認、そして Message Mapping の式の整列です。この記事では、それぞれが何をするのか、いつ iFlow を変更するのか、何を保存するのかを説明します。
Externalize Parameters をワンステップで
レシーバーチャネルにアドレスを直接書いていると、DEV から QA、PROD へ移すたびに iFlow 自体を編集することになります。SAP の答えは外部化パラメーターです:フィールドには {{Receiver_OData_Address}} を書き、値は tenant ごとに Configure で設定します。Externalize Parameters は、その入力をあなたの代わりに行います。
iFlow を開いて SAP で Edit を押し、Kitegra メニューで Externalize Parameters を選びます。パネルには、tenant ごとに変わることの多い固定値が一覧表示されます。
- アドレス:URL、ホスト、エンドポイント、パス、ディレクトリ、WSDL。プロキシのアドレスと ProcessDirect や JMS のアドレスを除き、最初からチェックが入っています。
- その他の値:キューと Data Store の名前、OData のパスとクエリ、タイムアウト、認証情報の名前とエイリアス、ポート。
- Content Modifier と Write Variables のテーブルにある定数。
各値には、参加者とフィールドから作った Receiver_OData_Address のような名前が提案され、自由に変更できます。すでに {{…}} や ${…} になっている値は、そのように表示されます。外部化をクリックすると、チェックしたフィールドが開いている iFlow のパラメーターになります。SAP で iFlow を保存するまで、何も保存されません。
実行後は、元に戻すで以前の値に戻せます。現在の値をコピーは、各パラメーターを置き換えた値と一緒にコピーします:デプロイ後、SAP は Configure で各値を求めるので、そこに貼り付けてください。元に戻すために、iFlow ごとに直近 10 回の実行が保存されます。レシーバーのアドレスが iFlow に直接書かれていると、iFlow Inspector の設計チェックがこのツールを案内します。
ステップの設定を別のステップや iFlow にコピーする
Kitegra メニューでステップ設定のコピー&ペーストを選び、ダイアグラム上でステップを選択して(またはパネルで選んで)、設定をコピーをクリックします。コピーには、そのステップのヘッダー、交換プロパティ、アダプターのフィールドが含まれます。パネルは、このブラウザーのすべての tenant と iFlow をまたいで、直近 10 件のコピーを新しい順に保持します。
貼り付けるには、SAP で Edit を押し、対象のステップを選んで…に貼り付けをクリックします。書き込む前に、パネルは変更されるフィールドを一覧表示します。テーブルごとに、そのまま、行を追加(コピーした行のうち足りないものだけを追加)、行を置換のいずれかを選びます。コピーは同じ種類のステップにしか貼り付けられませんが、別の iFlow にも貼り付けられます。ただし EDMX のパスとスクリプトのフィールドは、元の iFlow のファイルを指しているので除外されます。元に戻すと、最後の貼り付けで変わった内容が戻ります。
OData クエリテンプレート
同じパネルには OData クエリテンプレートもあります。クエリを組み立て済みの OData レシーバーチャネルを選び、クエリをテンプレートとして保存をクリックして名前を付けます。テンプレートには、操作、リソースパス、そして $select、$filter、$expand などのクエリオプションが保存されます。あとで編集モードのときに別の OData レシーバーを選び、適用をクリックします。既存の名前で保存すると、そのテンプレートが置き換わります。オプション自体については OData レシーバーのクエリオプションをご覧ください。
コピーとテンプレートは、このブラウザーの拡張機能ストレージに保存されます。Kitegra アカウントと同期されることも、どこかへ送信されることもありません。
SAP Business Accelerator Hub から API をインポートする
Helper は、EDMX から OData のエンティティセットとフィールドを、OpenAPI ファイルから HTTP のパスを候補として表示します。Hub からのインポートを使えば、そのファイルを先にダウンロードする必要はもうありません。拡張機能のポップアップで、サンプルペイロードと API 仕様のある iFlow のページを開き、SAP Business Accelerator Hub からインポートを探してください。
- 初回はアクセスを許可をクリックします:ブラウザーが一度だけ api.sap.com へのアクセスを求めます。あなたが同意するまで、Kitegra にそのアクセス権はありません。
- API を検索します。例:
API_PRODUCT_SRV。検索にサインインは不要です。 - インポートをクリックします。仕様のダウンロードには、このブラウザーで api.sap.com にサインインしている必要があります。サインインしていなければ、パネルがそれを知らせて Hub を開きます。
すると、OData API のエンティティセットとフィールドが、その iFlow の中で自前の EDMX を持たない OData レシーバーに候補として表示されます。REST API のパスは、OpenAPI と Postman の記事で説明しているように、ファイルを読み込んだときと同じく HTTP のフィールドに候補として表示されます。仕様は iFlow ごとに、このブラウザーだけに最大 8 MB まで保存され、削除で消せます。
サンプルペイロードで確認される XPath
iFlow にサンプルペイロードを保存していれば、Helper はすでにそこから XPath の候補を表示します。これからは、入力した XPath の確認もします。サンプルのどのノードにも一致しないときは、フィールドの下に「サンプルペイロードにこの XPath に一致するノードはありません。」という警告が出ます。一致するときは、見つかった値が情報行に表示されます。
確認の対象は、Content Modifier のヘッダーとプロパティ、Write Variables の XPath の行、XML Router の条件、XPath のスプリッターです。保存したサンプルが本当にそのステップに届くものである場合にだけ実行されます:XML のサンプルで、その前にボディを変えないステップしかない場合か、JSON to XML Converter を 1 つ通った JSON のサンプルの場合です。Local Integration Process、Exception Subprocess、${…} や {{…}} で組み立てた XPath では何も表示しないので、警告が出たら本当に一致していないということです。
Message Mapping の式を整列する
関数が十数個ある Message Mapping の式は、すぐに線が交差して絡み合います。式のキャンバスには、SAP 自身のボタンの隣に整列ボタンが加わりました。ノードをソースのフィールドからターゲットへ向かって並べ直します。編集モードでは、保存するとレイアウトが残り、隣の元に戻すボタンで元に戻せます。表示モードでは読みやすくするだけで、SAP が式を描き直すとレイアウトは消えます。SAP に保存や送信されるものは何もありません。iFlow のダイアグラムにも、編集モードで使える独自の整列ボタンがあり、元に戻すこともできます。
iFlow の何が変わるのか
Externalize Parameters、貼り付け、テンプレートの適用は、デザイナーで開いている iFlow に書き込みます。編集モードのときだけで、デザイナーは iFlow を変更ありとして表示します。保存やデプロイは決して行いません:SAP で保存するか、Discard で変更を取り消してください。どのツールも、オプションページの「ツール」で個別にオフにでき、デザイナーからすぐに消えます。Externalize、ステップのコピー&ペースト、Hub からのインポートは有料プランに含まれ、Free でも数回使えます。XPath の確認と整列は無料です。Kitegra のローンチ期間中は、サインインしているすべての人がすべてのツールを使えます。プランを比較する。
次の iFlow で試してみましょう
Kitegra が SAP Integration Suite のデザイナーに何を加えるのか、または Deploy を押したあとに何をするのかを読んでみてください。
よくある質問
SAP CPI でレシーバーのアドレスを外部化するには?
SAP で Edit を押し、Kitegra メニューから Externalize Parameters を開き、アドレスにチェックを入れたまま名前を確認して「外部化」をクリックします。iFlow を保存したら、tenant ごとに Configure で値を設定します。「現在の値をコピー」で、貼り付ける元の値が手に入ります。
Content Modifier の行を別の iFlow にコピーできますか?
はい。ステップの設定をコピーし、もう一方の iFlow を編集モードで開いて Content Modifier を選び、貼り付けます。足りない行だけを加えるなら「行を追加」を、すべて入れ替えるなら「行を置換」を選んでください。
Hub からのインポートに api.sap.com のアカウントは必要ですか?
検索はアカウントなしで使えます。仕様のダウンロードには、同じブラウザーで api.sap.com にサインインしている必要があります。
ステップのコピーとテンプレートは同期されますか?
いいえ。このブラウザーの拡張機能ストレージに残り、どこにも送信されません。
これらのツールが iFlow を保存したりデプロイしたりしますか?
いいえ。ツールは編集モードで開いている iFlow に書き込むだけです。保存は SAP で行い、不要なら変更を取り消してください。