今週から数回に渡ってエラー検知のTipsを紹介します。
繰り返し使うワークフローでは、チェックポイントがあったりします。ただ、そのチェックしなければならないことを忘れてしまう、ということもよくあるかと思います。
ユースケース
例えば、商品マスターが更新されているかどうか、マスターにヌケモレがないかどうか、などつい見逃してしまうと計算結果があわない、ということがあると思います。今回はこのようなチェックポイントを自動的にチェックさせる方法をご紹介します。
インプットとしては以下のようなTransactionと、

以下のようなProductマスターを考えてみましょう。

Transactionの集計を行うにはマスターをProductIDで結合し、Unit PriceとQtyを掛け算して集計を行う必要があります。

エラー検知の考え方
ワークフロー内でのチェックポイントは結合ツールのL出力です。Product Masterに登録されていないデータがあると、結合ツールのL側に出てきます。

ここをチェックするようにします。
テストツールによるエラー検知
まずはテストツールを使ってみましょう。このツールは「開発者」カテゴリにあります。これは、レコード数が特定の値であったときにエラーを発生させるツールです。

テストツールの設定は、一見わかりにくいです。

追加ボタンからテストケースを作成していきます。

今回のようなケースでは、レコードカウントが0と一致するかどうかをテストしたいので、以下のように入力します。テスト名がそのままエラー結果出力の際に使われるため、わかりやすい名称をつけましょう。

それではマスターを欠落した状態で実行してみましょう。


無事にエラーとして検知されました。
テストツールの検知ロジック
テストツールのエラー検知ロジックは複数から選択できます。

レコードカウントを取って値と比較するだけではなく、設定した式がすべてTrueになるかどうかなどの検査も可能です。また、テストツールは複数のツールから接続することができ、別々のデータストリームのカウントを比較することも可能ですし、ワークフロー上に一つおいておくだけで複数のチェックを一つのツールで行うことができます。
ただし、エラー内容に対して自由にメッセージを出したりすることはできません。
まとめ
- テストツールを使ってエラー検知を行う方法を紹介しました
- テストツール1つで複数のテストを賄うことができます
- 以下のようなテストが可能です
- 指定したレコードカウントと一致するか?
- 複数接続間のカウントが一致するか?
- 指定した式がすべてTrueになるか?
- 式が最初のレコードに対してTrueになるか?
- このようなエラーの自動検知は、ワークフロー実行後に各ツールの出力のチェックなど余計な気を回さなくても自動的にやってくれるのでぜひ活用したい手法です
- テストツールは、いくつかのテストケースが組み込まれているもの、と考えることができます。より複雑なチェックを行いたい場合はメッセージを使うことでさらに柔軟なテストを構築することができます
サンプルワークフローダウンロード
次回
次回もエラー検知の話です。
コメント