コンテンツにスキップ

debugノード

debugノード

概要

debugノードは、フローのデバッグやデータ(変数の中身)の確認を行うためのノードです。 配置しても後続の処理やデータそのものに影響を与えることはなく、前のノードから渡ってきた情報をデバッグタブやシステムコンソールに表示して確認することができます。

「思ったデータが入っていない」「判定がうまくいかない」といったときは、まずdebugノードで中身を確認しましょう。フローの作成や条件分岐の設定を行う前に、データ構造を正確に把握することがスムーズなフロー構築の第一歩です。

デバッグノードはフローの任意の場所に設置して、その時点でのデータの状態を確認できます。ノード右側のスイッチを切り替えることで、フロー上に配置したまま出力の有効/無効(ミュート)を個別に切り替えることが可能です。

メイン画像
サブ画像

具体的な活用例(メール受信データの確認と条件分岐への応用)

実務で特によくある「受信したメールの本文内容に応じて、自動で処理を振り分けるフロー」を例に、debugノードの役割を見ていきましょう。

フローのイメージ図

debugノードのフローイメージ

① データの格納場所を特定する

メール受信ノードの直後にdebugノードを繋いで一度フローを実行することで、届いたメールの情報がどのような構造(データ形式)で渡ってきているかをデバッグタブで確認できます。

確認したい内容 ロボシュタイン上での格納場所(プロパティ)
メール件名 msg.payload.subject
メール本文 msg.payload.text

debugメール受信サンプル

② 条件分岐(switchノード)へ適用する

debugノードの出力によって「メール本文は msg.payload.text に入っている」と正確に特定できたら、後続にあるswitchノードの判定対象(プロパティ)に msg.payload.text を指定します。

これにより、受け取った本文の内容(文字列)をトリガーにして、以下のような実務に沿った正確な自動振り分けが作れるようになります。

  1. 本文(msg.payload.text)に「サーバ」という文字が含まれる ➔ サーバ関連の処理へ
  2. 本文(msg.payload.text)に「ネットワーク」という文字が含まれる ➔ ネットワーク関連の処理へ
  3. どちらの文字も含まれない ➔ その他の処理へ

debugからswtchノード

このように、データの中身や通り道を「視覚的に見える化」して次のノードへ正しくバトンを繋ぐために、debugノードは不可欠です。必要に応じてプロパティを変更し、適切な条件を設定してください。

設定項目一覧

必須 項目名 説明
◯ 対象 実際に情報を表示し確認したい変数を記述します。デフォルトは msg.payload ですが、定義されている変数であればお好きな変数に書き換えることで、任意の変数情報を出力します。詳細は以下をご確認ください。
◯ 出力先 情報を表示させる出力先を選択します。デフォルトでは デバッグウィンドウ が指定されています。
名前 フローエディター上で表示されるノードの名前を任意で指定できます。

「対象」について

① msg.payload(特定のプロパティ)

debugノードの編集画面内で指定した、特定のプロパティの中身だけを出力します。デフォルトは payload ですが、表示したい任意のプロパティに変更することもできます。

  • 標準的な出力例 msg.payload にメール受信情報や障害チケット情報(JSON)が丸ごと格納されている場合、デバッグタブにはオブジェクトの全データが表示されます。
  • ドット記法によるキー指定(特定の要素を抽出する) 格納されているデータがオブジェクト(連想配列)の場合、ドット(.)で繋いで記述することで、出力するデータを特定の情報だけに絞り込めます。
    • 記述例: msg.payload.text と指定
    • 出力結果: デバッグタブには、メール本文のテキスト情報(例: "テストメールの本文")のみがピンポイントで表示されます。

② msgオブジェクト全体

msg オブジェクトに含まれているすべてのプロパティ情報をデバッグウィンドウに表示します。

  • 特徴とメリット すべての保存されている変数が表示されるうえ、デバッグノード自体の識別ID等の内部情報も網羅されて表示されます。
  • 以下のような場合に便利
    • フローの特定の時点で、どのような変数が保存されているかを一網打尽に確認したいとき。
    • 複数の変数が相互に関係しあっているため、まとめて中身を観察したいとき。

③ JSONata

「JSONata」という軽量のクエリ・データ加工言語を使用して、msg オブジェクトから特定のデータを柔軟に抽出・加工して出力します。単にデータを覗くだけでなく、簡易的な計算や文字列の結合をデバッグノード内で行いたい場合に非常に便利です。

  • 特定のデータだけを抽出する例 設定画面で J: payload.text と指定すると、複雑なオブジェクトの中からメール本文のテキストだけを直接抽出して出力できます。
  • 文字列を結合・加工する例(実務でよく使うテキスト整形) JSONata内では、アンド記号(&)を使って文字や変数を自由に繋げることができます。
    • 記述例: "【自動検知】" & payload.subject
    • 出力結果: デバッグタブには、受信したメールの件名の頭に指定した文字がくっついた "【自動検知】サーバアラート通知" という分かりやすいテキストが出力されます。
  • 数値の計算を行う例(データの単位変換など) 例えば、前のノードからデータ容量(バイト単位)が渡ってきた場合、ノード内で直接キロバイト(KB)に計算して見やすく出力することが可能です。
    • 記述例: payload.size / 1024

解説動画

サンプルフローの作成からデバッグの表示まで

この動画では、前のtempleteノードから渡ってきた情報をdebugノードを利用してデバッグしています。 injectノードを押下することでフローが動き出し、最終的にdebugノードを利用してデバッグウィンドウに情報を表示しています。