190-40 | データチェック
krewDataの実行処理では、外部ファイル出力を行っている場合に、出力レコードが0件でもヘッダ行だけの空ファイルが出力されます。
今回は、データチェックコマンドで出力レコードが0件の時には処理を中止して、ファイルを出力しない方法を紹介します。
※なお、この方法では、ファイル出力コマンドが1つだけのときに有効です。ファイル出力が複数あったり、ファイル出力以外に出力アプリがあるフローで同じ設定をすると、エラーが検出された時点ですべての出力が行われなくなります。
この演習は下記のシチュエーションを前提に構成されています。
- 毎週末にスケジュール実行し自動でその週に購入した物品のレコードデータを外部ストレージのCSVファイルに出力
- 出力ファイルは、毎回新しいファイルが作成される
入力アプリ「購入品」
- 「購入日」フィールドに日付データを登録しています。
入力アプリコマンド
- 標準フィルタで、処理対象レコードの絞り込みをしています。
「購入日」「=(等しい)」「今週」「すべての曜日」
- 今週のCSVファイルに出力するレコードがないことを想定します。
ファイル出力コマンド
- ファイル名は数式で実行した日付設定し、毎週新規ファイルを作成しています。
ファイル名:”購入品報告週ごと_”&TEXT(TODAY(),”yyyy-mm-dd”)
- 入力レコードがないため出力レコードも0件です。
1.データチェックコマンドを追加する
- ファイル出力コマンドの直前にデータチェックコマンドを配置します。
2.データチェックコマンドの設定
- チェックエラーを検出した場合の動作:「データ編集フローの実行を中止する」を選択
- データチェックエラーアプリを設定する
- チェック内容:「レコード存在チェック」を選択し、「処理レコードが存在しない場合は、チェック結果をエラーにする。」にチェックを入れます。
3.出力結果を確認する
実行ログ
krewdata専用アプリの実行ログには、実行結果は「成功」、ログメッセージに「データチェックエラーを検出したため、データ編集フローの実行を停止しました。」と表示されます。
データチェックエラーアプリ
データチェックエラーアプリにもレコードが作成されます。
ファイル出力
外部ストレージの出力先フォルダにはCSVファイルが作成されません。
サンプルファイルのダウンロードはこちら
https://download.krew.mescius.jp/study/krewdata-drill/basic/dt190-40nofileoutput.zip