バッチ処理とは?メリットは何か? | 今更ながらのバッチ処理基礎

バッチ処理とは?メリットは何か? | 今更ながらのバッチ処理基礎

満を持してバッチの話をする理由

ExcelVBA、GAS、RPA…「業務効率化」流行りの今こそバッチでしょ

令和一発目の更新がバッチ処理。
新時代が到来したというのにえらい前時代的なテーマを選んだように見えるかもしれませんが、そうではありません。

「業務効率化」「働き方改革」のキーワードに必要なIT利活用の基礎の基礎、バッチ処理を今だからこそ振り返っていきたいと思います。

スポンサーリンク

そもそもバッチ処理とは

教えて!Wikipedia先生!

そもそもバッチ処理とは何ぞや?という方のために、用語の解説をWikipedia先生から引用します。

コンピュータで1つの流れのプログラム群(ジョブ)を順次に実行すること。
あらかじめ定めた処理を一度に行うことを示すコンピュータ用語
対義語は対話処理・インタラクティブ処理、またはリアルタイム処理。
wikipedia 「バッチ処理」

バッチ処理=ルーチンワーク

バッチ処理は予め決められた順番にA→B→Cという処理だけをします。
準備するものはInputのファイルだけで、後は処理を開始すれば途中のファイルやデータを含めて全て作成してくれます。
必ず決まった処理を行うルーチンワーク的な動きをします。

ただし、これしかできません。
例えばInputに入っているデータに誤りがあっても、誤っているまま全ての処理を行ってしまいます。
順番をB→A→Cに変えることもありませんし、A→BだけやってCをやらないということもありません。
そこに判断や変更の無い、決められた通りの流れで処理を行うのがバッチ処理です。

プログラムというものは基本的に書かれたとおりに動くものなので、バッチ処理に限ったことでは無いとも言えます。
途中で条件分岐等を作って一致しなければ処理を行わないとすることもできますが、基本的な考え方としては上記の通りです。

洗剤を入れてスイッチを押せば後はやってくれる全自動洗濯機のようなものです。
もし傷みやすい服があればネットに入れておかなければいけないし、しつこいシミには直接洗剤をかけておく必要があるでしょう。
ネットや直接かける洗剤が条件分岐なのです。

一方の対話処理は、都度人間が処理を指示してその結果を確認します。
システム画面に向かって検索や入力を行う操作などがこれにあたります。
Inputは毎回必ず同じではありません。
なのでOutputも同様に同じとは限りません。
そこに人間の判断が入った上で、次に行うことを決定する必要があります。

得意分野はファイルやデータの加工、受渡

バッチ処理が主に使われる場面は上記の図の例の通りで、Inputデータを元にOutputが必要とする形にデータを加工し、それを次の処理に受け渡すことです。
主にデータ登録、連携ファイル作成、他バッチのためのデータ作成などです。

例えば毎日100件のデータを、システムの画面から入力しつつ、他のシステムに渡すためにレイアウトを加工しつつ、別のExcel帳票に張り付けて報告書を作成する、というようなことをバッチ処理は自動で行うことができるのです。

苦手分野は画面操作と想定外データ

逆に苦手なことはシステムなどの画面操作です。
バッチはどのような言語で書かれているとしても基本的にコマンドで操作を行います。
システム画面に向かってキーボードを叩くようなことはできません。
※それを克服したのがRPAであるとも言えます。

また、Inputデータに想定とは異なる値やデータ形式があると、エラーになってそこで処理が終了してしまい、先に進まなくなります。
Aだけ更新されてBが更新されない状態だとデータの整合がとれずに業務に支障をきたすようなシステムの場合、処理の順序を考慮するなど工夫が必要です。
この場合の工夫は「エラーにならない工夫」というより「エラーになった時にできるだけ影響を小さくする工夫」ですが。

バッチ処理のメリットは何か?

ルーチンワークならプログラムにやらせたほうが楽だし早いし正確

プログラムが最も得意とすることは「同じ動きを大量に素早く正確に行うこと」です。
プログラムは記述されたとおりの結果しか返さないので抜け・漏れ・入力誤りはありません。
処理速度は人間の数十倍、数百倍早いので、大量の情報を短時間で処理できます。

できるだけ判断(条件分岐)が少ないほど早くなりますが、その分判断する人間の手を煩わせます。
少しでも多くの判断をプログラムにやらせたほうが人間が楽になります。
AIのディープラーニングなども、広義に見ればプログラムに判断させる範囲を広げて人間が楽になるための方法です。

人が操作しなくても、人がいなくても処理してくれる

先述の通り、バッチ処理は開始さえすれば最後まで自動で処理を行います。
開始させること自体をスケジュールで自動化することができれば、人間が行うのはバッチの開始時間までにInputを準備しておくだけになります。

つまり人間の業務時間外に処理を行っておくことができるのです。
広義の意味ではRPAもバッチ処理と呼んでよいと考えます。

スポンサーリンク

バッチ処理こそ働き方改革に必要

効率化の効果を正しく認識しなければもったいない

他のITツールによる勤務時間中の効率化とバッチ処理による退社後の自動化で業務量を圧縮できれば、働き方改革につなげることができます。

業務量の圧縮は売上と同じで、一つ一つの小さな成果を積上げることで大きくなります。
しかし時短や効率化の恩恵をなかなか感じられないのは、売上などの経営数値と違って、そもそも業務時間がきちんと測定がなされていないからです。

何の作業に何時間費やしたかを把握しないと、全く違う理由で作業時間が増えているのに「ちっとも時間が減っていない」としか感じられなくなります。

「判断しなくてもいい仕事」と「判断を要する仕事」を仕分けるスキル

バッチ処理にすることにより、人間の作業はツールが読み込むデータを作り、ツールの実行結果を確認するだけになります。
事務・経理系の部門の場合、このイメージは多少しっくりくるかもしれませんが、営業やクリエイティブ系の職種にはピンとこないことも多いかもしれません。

しかし本当にそうでしょうか。
例えば営業の場合、毎日わざわざ帰社して日報を書いたり、毎週の会議資料の作成に時間を取られたり、似たようなプレゼン資料の作成に毎回長い時間がかけたりしていないでしょうか。

バッチ処理にしても、SFAやBI、ファイル共有にしても、現在の業務のやりかたを変える前提で考えなければ効率化の効果は出てきません。

上記の日報を例に挙げると、SFAを導入したとしても社外からのアクセスインフラが不十分だったり、そもそも上長がSFAの情報を見ずに担当者に直接確認するような状況で効率化の成果が出るはずがありません。

バッチ処理も、バッチで行える「判断しなくてもいい仕事」とバッチで行えない「判断を要する仕事」の切り分けを行えるかどうかが重要です。
こうして書くとRPAがバッチ処理であるということもしっくりくるのではないでしょうか。

システム・サービス・ソフトカテゴリの最新記事