はじめに
今回はあまり使うことがないかもしれないNodeですが、ワークフローを作る際にデバッグ作業(バグ取り作業、ワークフローのミスを取り除く作業)で使えるNode について解説します。特にLoopのあるワークフローで使いやすいです。
今回のテーマ ~Breakpoint~
Workflowは下記からダウンロードできます。
覚えてほしいこと
BreakpointはLoopのデバッグ作業に使える
やりたいこと
Loopで100回繰り返すワークフローがあったとします。この時、何らかのエラーが発生したため、その原因を調べたい。そのためには60回目の繰り返しの結果を確認したいとします。
こんな時、どうしますか?
今まで紹介してきた方法で達成するには、ステップ実行を60回押さないといけないことになります。面倒ですよね、、
Breakpointの使い方
Breakpointは指定条件になったら自動的にエラーを発生させてワークフローを強制的に止めることができます。これにより、Loopのあるワークフローのデバッグ作業がやりやすくなります。
Workflow
100回繰り返す単純なワークフローを作ります。全実行を行うと、60回目でエラーが発生するようにします。
Confirm - Breakpoint
今回のOutputは少し特殊です。エラーが発生しているのでBreakpointのNodeのOutputはありません。
しかし、コンソールやポップアップでどこで止まったかを確認することができます。
元々わざとこのエラーを起こしているので確認のために使えます。またログが残るので、わざとエラーを起こしてコメント残すにも使えるでしょう。
デバッグに使う場合はここでエラーを起こしてその前までのNodeでどんなOutputが出力されているかを確認するために使えます。
また、エラーが発生していてもFlow variableは確認できます。
Configure - Breakpoint
いくつか設定があります。
Step1 - On/Off スイッチ - Breakpoint Enabled
まずここからです。これにチェックすることでこのNodeが機能します。もしチェックを外したら、このNodeの機能はスキップされます。
Step2 - ストップさせる条件の種類 - Breakpoint active for
エラーを発生させる条件として、4種類あります。
- empty table:空テーブルの場合
- active branch:実行可能なInputの場合
- inactive branch:実行不可のInputの場合
- variable matches value:変数を使用して値を指定
今回は指定回数でエラーを発生させたいので4番目の「variable matches value」を選択します。
今回は、Loopの回数が60回の時にStopしたいので、
Select valueにはcurrentInterationを選んで、Enter Variable valueには59を入れます。(ループのカウントは、0から始まります。)
Step3 - エラーメッセージを任意に変更する - Custom message
この項目は任意です。Consoleで出てくるエラーメッセージを任意で変更することができます。デフォルトで設定されているのは、
「Breakpoint halted execution」
という文章になっていると思います。
ちょっと一言
その他のストップさせる条件の場合も簡単に紹介したいと思います。
empty table:空テーブルの場合
空テーブルがあった場合にエラーを起こすオプションです。任意のコメントの後に、「table is empty」という表現が入ります。
active / inactive branch:実行可能 / 実行不可 なInputの場合
Active branchは、通常の黒い矢印がInputとして入ってきた場合、
Inactive branchは下のように、赤バツが入っている場合
にエラーを起こすオプションです。
おわりに
さて今回はサラッとBreakpointというNodeについて解説しました。私はあまり使っていませんが、バグ取り作業やエラー検知には使えるかもしれません。
緊急事態宣言がまたもや出てしまいましたね。どうしても家に籠っていると全てにやる気が出なくなることが多いですが、こんな中でもモチベーション保っていきたいですね。
ではまた!
余談
Amazonアソシエイト、いつの間にかまた機能してませんでした。軽く調べると審査通るの難しいんですかね。 結構リンク作るの楽しかったのですが、、
他の楽しみ見つけたいと思いますー
ところで、先日楽天モバイルに変えましたが、どうも楽天回線が入っていないようなんですよね、、楽天回線エリアガッツリ入っているのですが、、不自由は今のところ全くしてないですけどね!一年無料ですし、テザリングできますし。
iphoneで楽天回線か見れるような機能、作って欲しい、、(作れるのかな、、)
楽天モバイルのレビューをちょいちょいつぶやいて行こうかなーと思います。
参考リンク
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):