コンテンツへスキップ
← ブログに戻る

この記事のモジュール: ツールボックス

SAP CPI のペイロードツール:ブラウザーで比較・変換・テストデータ生成

2 つのペイロードを比較し、SAP のコンバーター規則で XML、JSON、YAML、CSV を変換し、エラー入りのテストペイロードを生成し、Groovy スニペットを挿入。すべて iFlow デザイナーの隣でオフラインで動きます。

SAP Cloud Integration(SAP CPI)の iFlow の作業の半分は、ペイロードのまわりで起こります。同じはずなのに違う 2 つのメッセージ、受信側が XML で欲しがる JSON ボディ、エラー処理のためのテストメッセージ一式、毎週書くのに覚えられない Groovy の 1 行。こうした作業は、たいていテキストエディター、オンラインの変換ツール、自作のスクリプトで片付けることになります。

Kitegra の Toolbox は、それらをブラウザーの中、iFlow デザイナーのすぐ隣にまとめます。ペイロード比較、形式コンバーター、テストペイロード生成、チートシート付きの Groovy スニペット、そして HTTP Runner です。HTTP Runner で送るリクエストを除き、どれもオフラインで動きます。貼り付けた内容はページの中にとどまり、保存も送信もされません。

Toolbox の場所

拡張機能のポップアップを開き、「ツール」を選びます。Toolbox の一覧から、各ツールがそれぞれ専用のタブで開きます:「ペイロード比較」、「形式コンバーター」、「テストペイロード生成」、「スニペットとチートシート」、HTTP Runner、iFlow Docs です。iFlow では、ダイアグラムのツールバーにある Kitegra のボックスのメニューから、「スニペット」と「メモ」をページ上のパネルとして開くこともできます。

どのコントロールにも、何をするのかを説明する小さな (i) が付いています。Toolbox はプランの iFlow をカウントしません。

ペイロード比較

2 つのペイロードを貼り付けるか、ファイルから読み込むか、ページにドロップすると、違いが行ごとにマークされます。「前へ」と「次へ」で違いから違いへ移動でき、違いの数も表示されます。

  • 空白を無視:スペース、タブ、インデントだけが違う行を同じとみなします。
  • XML を正規化:属性を並べ替え、名前空間のプレフィックスを無視し、両側をインデントするので、本当の変更だけが残ります。
  • JSON を正規化:キーを並べ替えてインデントします。
  • 差分のみ:同じ行を隠し、その場所に隠した行の数を表示します。
  • A と B を入れ替え:追加として表示されていたものが削除として表示されます。

整形式の XML や有効な JSON でないペイロードも、テキストとして比較されます。Message Monitor では、トレースしたステップのペイロードビューアーに次のステップと比較があり、そのステップの前後のボディでこのページを開きます。メッセージをステップごとにトレースするも参照してください。

形式コンバーター

XML、JSON、YAML、CSV、または任意のテキストを貼り付けるか、ファイルを読み込みます。形式は内容から判定され、それに合う変換だけが表示されます。

  • XML から JSON、JSON から XML。SAP 自身のコンバーターの規則に従います:@name のメンバーは属性、$ は要素のテキスト、配列はその要素を繰り返します。オプションは iFlow で設定するものと同じで、「XML ルート要素を追加」、「JSON ルート要素を省略」、常に配列として書く要素です。
  • CSV と JSON または XML の相互変換。区切り文字は自動判定または選択、ヘッダー行、行要素の名前を指定できます。
  • YAML から JSON、JSON から YAML。
  • XML から推定した XSD、XSD からのサンプル XML。
  • XML と JSON の整形と圧縮。
  • Base64 と URL のエンコードとデコード、XML・JSON・Groovy の文字列のエスケープとアンエスケープ。

入力に使うは結果を入力ボックスに戻すので、もう一度変換できます。「変換」の隣には、さらに 3 つのタブがあります。

  • 検証は入力が整形式かどうかを確認し、問題ごとに行と列を一覧にします。XSD を渡すと、XML の要素、その順序と数、属性、単純型もチェックします。これは軽いチェックで、名前空間、import、include、置換グループ、キーはチェックしません。
  • 検索と置換。JavaScript の正規表現とそのグループが使えます。
  • 一括は複数のファイルを同じ方法で変換し、結果を 1 つの ZIP でダウンロードします。失敗したファイルは除外され、一覧に表示されます。

テストペイロード生成

エラー処理は、iFlow の中でいちばんテストされない部分です。壊れたメッセージを誰も持っていないからです。生成ツールは、1 つの実際のサンプルからそれを作ります。

  1. 実際のメッセージを 1 つ貼り付けるかアップロードします:XML、JSON、またはヘッダー行付きの CSV。
  2. フィールドの表を確認します。各フィールドの型は値から推測されます:テキスト、整数、小数、ブール値、日付、日時、メール、通貨、国、UUID、null。
  3. フィールドごとにルールを選びます:サンプルの値を「そのまま」、「同じ型のランダム値」、「連番」、「リストから選択」。
  4. 作るペイロードの数(最大 1,000)と、エラーを入れる割合を設定します。
  5. エラーの種類を選び、「生成」をクリックします。

エラーは受信側が拒否するものばかりです:必須フィールドの欠落、空のフィールド、型の誤り、無効な日付・メール・通貨・国、負の数量、誤った名前空間、壊れた XML・JSON・CSV、重複した ID、余分なフィールド、null 値。エラー入りのペイロードには、それぞれ 1 つのエラーが入ります。

同じサンプル、ルール、シードからは、常に同じペイロードが生成されるので、同じデータでテストをやり直せます。ZIP をダウンロードはペイロードごとに 1 ファイルと、各ファイルのエラーと変更したフィールドを一覧にした manifest.json を出力します。1 つのファイルでダウンロードは JSON Lines、または空行で区切った XML や CSV を書き出します。Runner 用のデータセットとして保存はセットを HTTP Runner に渡します。HTTP Runner は各ペイロードを iFlow に送り、どの応答が期待どおりに返ってきたかを表示できます。

Groovy スニペットとチートシート

「スニペット」タブには、Cloud Integration のスクリプト用の Groovy パターンが 32 個あります。どれも processData(Message message) の中に入れる前提で書かれ、クラス名を完全に書いているので import は不要です。内容は、ボディ、ヘッダー、交換プロパティの読み取りと設定、大きなボディのストリーミング、XmlSlurper・XmlParser・MarkupBuilder、XXE に対する安全な XML 解析、JsonSlurper と JsonBuilder、モニタリングで検索できる値、メッセージログの添付ファイル、わかりやすいエラーでの失敗、例外サブプロセスでの HTTP エラー、Secure Store の認証情報、Value Mapping と Partner Directory の参照です。

名前やタグで検索できます。デザイナーでスクリプトを編集モードで開いていれば、挿入でスニペットがカーソル位置に入力されます。そうでなければコピーしてください。自分用を追加では自分のスニペットを最大 20 個保存でき、サインインしていれば Kitegra アカウントと同期されます。パスワードやキーは入れないでください。

「チートシート」タブには、毎週調べるものが並んでいます:Simple の演算子、例付きの Java の日付パターン、サンプル XML 上で実行される XPath 1.0 関数、SAP と Apache Camel のドキュメントへのリンクです。どの例もクリックするとコピーされます。式そのものの説明は SAP CPI の Camel Simple 式にあります。

iFlow にすでにあるスクリプトを読むには、iFlow Docs の「スクリプトの説明」を使います。スクリプトごとに、目的、読み取るもの、設定・変更するもの、主なロジック、使っている SAP API、リスクを一覧にします。

HTTP Runner

HTTP Runner は、Process Integration Runtime のサービスキーによる OAuth で iFlow の HTTPS エンドポイントを呼び出し、リクエストをコレクションに保存し、応答をチェックします。「iFlow 情報」では、各エンドポイントを cURL としてコピーしたり、Runner で開いたりできます。手順の全体はサービスキーで HTTPS iFlow をテストするにあります。

何を保存し、プランに何が含まれるのか

比較、コンバーター、生成ツール、チートシートはページの中で動き、何も保存しません。自分のスニペットと、認証値とシークレット変数を除いた HTTP Runner のコレクションは、サインインしていれば Kitegra アカウントと同期されます。

オフラインのツールはすべてのプランで使えます。HTTP Runner は Free と Starter では使える範囲が限られ、Pro とチームプランではすべて使えます。Kitegra のローンチ期間中は、Free プランを含め、サインインしているすべての人がすべてのツールを使えます。プランを比較する。

次の iFlow で試してみましょう

Kitegra が SAP Integration Suite のデザイナーに何を加えるのかを読むか、Toolbox でできることをすべて見てください。

よくある質問

ペイロードはどこかに送信されますか?

いいえ。比較、コンバーター、生成ツール、チートシートはブラウザーのページの中で動きます。貼り付けたり読み込んだりした内容は、保存も送信もされません。

コンバーターは SAP のコンバーターと同じ結果になりますか?

SAP の JSON から XML、XML から JSON へのコンバーターと同じ規則とオプションに従います:属性、要素のテキスト、配列、追加するルート要素、省略する JSON ルートです。結果が正確でなければならないときは、iFlow を実行してください。

生成したテストセットを再現できますか?

はい。同じサンプル、ルール、シードからは常に同じペイロードが生成されます。エラーの種類を変えても、値はそのまま変わりません。

Groovy スクリプトにスニペットを挿入するには?

デザイナーでスクリプトを編集モードで開き、入れたい位置にカーソルを置いて、スニペットの「挿入」をクリックします。そのあと、iFlow はご自身で保存してください。

Toolbox は iFlow をカウントしますか?

いいえ。iFlow をカウントするのは Helper、Message Monitor、iFlow Inspector、iFlow Docs だけです。

デザイナーを離れずに iFlow を操作

Kitegra を Chrome または Microsoft Edge に追加しましょう。アカウント不要で無料で始められます。