· HARUBOUYA · dataflow · 7 min read
定例レポートを自動化するときの、止まらない作り方
作ることより、1年後も動き続けることが難しいです。通知、再実行、元データの変化への備え、引き継ぎ記録の4点で組みます。

定例レポートの自動化は、作ること自体は難しくありません。ツールも手順も出そろっています。
難しいのは、止まらずに動き続けることです。1年後も同じように動いている自動化は、意外と少ないです。
止まる原因はいくつかありますが、防ぎ方はほぼ決まっています。
自動化が止まる典型パターン
実際に見てきたものを挙げます。
連携用のアカウントのパスワードが、社内規程で90日ごとに変わるようになっていました。変更した日から止まっていました。
元のシステムの画面が改修され、ダウンロードするファイルの列が1つ増えました。列の位置で処理していたため、全部ずれました。
月末の処理が重くなり、途中で時間切れになりました。前半だけ処理された中途半端なデータが残りました。
担当者が異動し、実行結果の通知先メールが誰も見ないアドレスになりました。止まっていることに3か月気づきませんでした。
どれも、技術的に高度な話ではありません。運用の設計の話です。
1:失敗したときに気づける仕組み
最優先はこれです。ほかを後回しにしても、これだけは最初に入れてください。
入れるのは2つです。処理が失敗したときの通知と、成功したときの通知です。
失敗通知だけでは不十分です。仕組みそのものが動かなくなった場合、失敗通知も飛びません。「毎朝8時に成功の通知が来る」状態にしておけば、通知が来ないこと自体が異常のサインになります。
通知先は、個人のアドレスではなく共有のものにしてください。担当が替わっても届き続けます。チャットツールを使っているなら、専用のチャンネルを作るのが確実です。
2:途中から再実行できる作り
失敗したとき、最初からやり直すしかない作りだと、復旧に時間がかかります。
工程を分けてください。データを取ってくる、整形する、集計する、配信します。この4つを別々に動かせるようにしておけば、失敗した工程だけをやり直せます。
あわせて、同じ処理を2回動かしても結果が変わらないようにしておきます。取り込んだ日付で既存のデータを消してから入れ直す、という作りにすれば、二重計上を防げます。これは復旧作業をためらわずに実行できるようにするための工夫でもあります。
3:元データが変わったときの挙動
列の位置ではなく、列の名前で処理してください。位置で処理していると、列が1つ増えただけで全部がずれます。しかも、エラーにならずに間違った値が入るため、気づきにくいです。
さらに、取り込む前の点検を入れます。確認するのは3つだけで十分です。
- 想定している列の名前がすべて存在するか
- 行数が、前回と比べて極端に増減していないか
- 必須の項目に空白が入っていないか
どれかに引っかかったら、処理を止めて通知します。間違ったデータを配るより、止まって気づかれるほうが被害は小さく済みます。
4:引き継ぎのための記録
自動化は、動いている間は誰も中身を見ません。だからこそ、止まったときに初めて開かれます。そのときに読む前提で書いておきます。
1枚にまとめるのは次の4点です。
- 何時に、何が、どの順番で動くか
- 使っているアカウントと、その管理者
- 失敗したときの復旧手順(工程ごと)
- 止まって困る期限(いつまでに直せばよいか)
4つ目が地味に効きます。今日中なのか、今週中でよいのか。これが書いてあると、復旧にあたる人が判断できます。
作る順番
全部を最初から作り込む必要はありません。次の順で足していってください。
まず手動で動くものを作ります。次に通知を入れます。それから自動実行にします。工程を分けるのはその後で構いません。
通知より先に自動実行にすると、止まったことに気づかないまま数か月が過ぎます。この順番だけは守ってください。
参考になったら、いいねを押してください。





