デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - バグ取り支援 わざとエラーを起こす ~ Breakpoint ~

f:id:makkynm:20210116101315p:plain

 

はじめに

今回はあまり使うことがないかもしれないNodeですが、ワークフローを作る際にデバッグ作業(バグ取り作業、ワークフローのミスを取り除く作業)で使えるNode について解説します。特にLoopのあるワークフローで使いやすいです。

 

 今回のテーマ ~Breakpoint~

f:id:makkynm:20210115081645p:plain

今回のテーマ ~Breakpoint~

Workflowは下記からダウンロードできます。

hub.knime.com

 

覚えてほしいこと

BreakpointはLoopのデバッグ作業に使える

 

やりたいこと

Loopで100回繰り返すワークフローがあったとします。この時、何らかのエラーが発生したため、その原因を調べたい。そのためには60回目の繰り返しの結果を確認したいとします。

 

こんな時、どうしますか?

今まで紹介してきた方法で達成するには、ステップ実行を60回押さないといけないことになります。面倒ですよね、、

f:id:makkynm:20210115083314p:plain

方法1:Step Execution を何回も押して指定回数まで到達

 

 

Breakpointの使い方

Breakpointは指定条件になったら自動的にエラーを発生させてワークフローを強制的に止めることができます。これにより、Loopのあるワークフローのデバッグ作業がやりやすくなります。

Workflow

100回繰り返す単純なワークフローを作ります。全実行を行うと、60回目でエラーが発生するようにします。

f:id:makkynm:20210115084003p:plain

Workflow - Breakpoint

Confirm - Breakpoint

今回のOutputは少し特殊です。エラーが発生しているのでBreakpointのNodeのOutputはありません。

f:id:makkynm:20210115085208p:plain

エラーを起こすのでTableはない

 

しかし、コンソールやポップアップでどこで止まったかを確認することができます。

元々わざとこのエラーを起こしているので確認のために使えます。またログが残るので、わざとエラーを起こしてコメント残すにも使えるでしょう。

デバッグに使う場合はここでエラーを起こしてその前までのNodeでどんなOutputが出力されているかを確認するために使えます。

f:id:makkynm:20210115084707p:plain

Confirm - Breakpoint - console

 

また、エラーが発生していてもFlow variableは確認できます。

f:id:makkynm:20210115085316p:plain

Confirm - Breakpoint - Flow variable

 

Configure - Breakpoint

いくつか設定があります。

f:id:makkynm:20210117091645p:plain

Configure - Breakpoint
Step1 - On/Off スイッチ - Breakpoint Enabled 

まずここからです。これにチェックすることでこのNodeが機能します。もしチェックを外したら、このNodeの機能はスキップされます。

 

Step2 - ストップさせる条件の種類 - Breakpoint active for

エラーを発生させる条件として、4種類あります。

  1. empty table:空テーブルの場合
  2. active branch:実行可能なInputの場合
  3. inactive branch:実行不可のInputの場合
  4. 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」という表現が入ります。

f:id:makkynm:20210115223611p:plain

empty table 空テーブルの場合

active / inactive branch:実行可能 / 実行不可 なInputの場合

Active branchは、通常の黒い矢印がInputとして入ってきた場合、

Inactive branchは下のように、赤バツが入っている場合

にエラーを起こすオプションです。

f:id:makkynm:20210115232126p:plain

active branch / inactive branch

 

 

おわりに

さて今回はサラッとBreakpointというNodeについて解説しました。私はあまり使っていませんが、バグ取り作業やエラー検知には使えるかもしれません。

緊急事態宣言がまたもや出てしまいましたね。どうしても家に籠っていると全てにやる気が出なくなることが多いですが、こんな中でもモチベーション保っていきたいですね。

ではまた!

 

 

 

余談 

Amazonアソシエイト、いつの間にかまた機能してませんでした。軽く調べると審査通るの難しいんですかね。 結構リンク作るの楽しかったのですが、、

他の楽しみ見つけたいと思いますー

ところで、先日楽天モバイルに変えましたが、どうも楽天回線が入っていないようなんですよね、、楽天回線エリアガッツリ入っているのですが、、不自由は今のところ全くしてないですけどね!一年無料ですし、テザリングできますし。

iphone楽天回線か見れるような機能、作って欲しい、、(作れるのかな、、)

楽天モバイルのレビューをちょいちょいつぶやいて行こうかなーと思います。

 

 

参考リンク