COBOLのCLIツールと運用スクリプトの総合活用事例!初心者でもわかる業務自動化の実践テクニック
生徒
「COBOLのプログラムと自動化用の運用スクリプトを組み合わせると、実際の現場ではどのようなことができるのでしょうか?具体的なイメージが湧かなくて。」
先生
「文字だけの画面で動くCLIツールとスクリプトを連動させると、毎日のデータの集計やファイルのコピーといった面倒な仕事を、ボタン一つで全自動で行うことができるようになりますよ。」
生徒
「全自動ですか!それはすごく便利そうですね。パソコン初心者でも理解できるような、実際の業務でよく使われる活用事例を教えてください。」
先生
「分かりました。日常の事務作業やデータの加工を想定した便利な活用事例を、いくつかの段階に分けて分かりやすく解説していきますね!」
1. 総合活用事例を学ぶ目的と自動化の価値
企業の大規模なシステムで長年使われ続けているCOBOLですが、ただ古いデータを保存しているだけではありません。文字だけで操作を行うCLIツールと、一連の作業手順をあらかじめ書き記した運用スクリプトを上手に組み合わせることで、人間の手作業をなくし、仕事を高速化する仕組みを作ることができます。これを学ぶ目的は、パソコンの前に張り付いて同じ作業を繰り返す無駄な時間をなくし、人間がよりクリエイティブな仕事に集中できるようにすることにあります。
プログラミングを全く触ったことがない方に簡単な例えでお話しすると、これは工場の自動組み立てロボットのようなものです。材料をベルトコンベアーに乗せれば、ロボットが自動で形を整え、箱に詰め、ラベルを貼って出荷場まで運んでくれます。COBOLプログラムという個別のロボットたちを、運用スクリプトという見えない工場長が指示を出して連動させる、そんな実践的な活用事例を見ていきましょう。
2. 事例一:売上データを自動で計算して集計する仕組み
最初の活用事例は、毎日の店舗の売上データを自動で読み込んで、その日の合計金額を計算するシステムです。事務員さんが電卓を叩いて計算すると、どうしても打ち間違いなどのミスが起きてしまいますが、COBOLのCLIツールに任せれば、一瞬で正確な答えを出してくれます。
以下のプログラムは、お店の売上金額を順番に入力していき、最後にその合計金額を計算して画面に分かりやすく表示するシンプルなCOBOLコードです。未経験の方でも全体のデータの流れが追いやすいように、分かりやすい言葉を配置しています。
IDENTIFICATION DIVISION.
PROGRAM-ID. CASE-SALES.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 W-PRICE PIC 9(6) VALUE 0.
01 W-TOTAL PIC 9(8) VALUE 0.
PROCEDURE DIVISION.
DISPLAY "売上データの集計処理を開始します。"
MOVE 1500 TO W-PRICE
ADD W-PRICE TO W-TOTAL
MOVE 3200 TO W-PRICE
ADD W-PRICE TO W-TOTAL
DISPLAY "【集計結果】本日の合計売上金額: " W-TOTAL " 円"
STOP RUN.
このプログラムを実行すると、あらかじめ決められた計算が裏側で正確に行われ、画面には以下のような親切な計算結果が出力されます。これが自動集計の基本の形です。
売上データの集計処理を開始します。
【集計結果】本日の合計売上金額: 00004700 円
3. 事例二:会員の年齢から引き継ぎ用データを自動判定する仕掛け
二つ目の活用事例は、顧客名簿のデータを確認して、特定の条件に当てはまる人だけを自動的に判別するシステムです。例えば、会員の年齢をチェックして、「大人」なのか「子供」なのかを自動で振り分け、その結果を次のシステムへと引き継ぐための準備を行います。
以下のコードは、入力された年齢データを判定用の条件式にかけて、それぞれの区分に応じたメッセージを出力するプログラムです。このように条件によって道を分ける処理をプログラムの世界では分岐処理と呼びます。
IDENTIFICATION DIVISION.
PROGRAM-ID. CASE-CHECK.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 W-USER-AGE PIC 9(3) VALUE 25.
PROCEDURE DIVISION.
DISPLAY "会員データの年齢判定を行います。"
IF W-USER-AGE >= 20 THEN
DISPLAY "判定区分: [ADULT] 成人会員様です。"
ELSE
DISPLAY "判定区分: [CHILD] 未成年会員様です。"
END-IF
STOP RUN.
このCLIツールを動かすと、設定された年齢の数字をパソコンが瞬時に読み取り、正しいグループのラベルを以下のように画面に吐き出します。
会員データの年齢判定を行います。
判定区分: [ADULT] 成人会員様です。
4. 事例三:処理結果を日付付きのファイルへ自動で保存する連携
三つ目の活用事例は、COBOLプログラムが処理した結果のメッセージを、ただ画面に表示して終わりにするのではなく、後から見返せるようにパソコンの中に書類として自動保存する連携技です。ここで運用スクリプトの力が活躍します。
以下のCOBOLプログラムは、システムの稼働状態が正常であることをお知らせするテキストを出力する役割を持っています。まずはシンプルな出力を出すことに特化させます。
IDENTIFICATION DIVISION.
PROGRAM-ID. CASE-LOG.
PROCEDURE DIVISION.
DISPLAY "--- システム稼働報告 ---"
DISPLAY "本日もシステムは問題なく正常に作動しました。"
STOP RUN.
このCOBOLの出力を受け取って、今日の日付がついた名前のメモ帳ファイルへと自動で書き込ませる運用スクリプトの命令文を記述します。ファイルを作る手間を人間が省くための設定です。
# COBOLプログラムを起動して、その結果を「report.txt」というファイルに流し込む
./CASE-LOG > report.txt
# 画面にファイルが完成したことをお知らせする
echo "ファイルを自動保存しました。"
このスクリプトを実行すると、画面に文字が出る代わりに、新しく作成されたファイルの中にCOBOLのメッセージが以下のようにきっちり記録されます。
--- システム稼働報告 ---
本日もシステムは問題なく正常に作動しました。
5. 事例四:連続する複数の処理を順番に繋ぐバッチ処理の構築
四つ目の活用事例は、実際の会社の業務で最もよく使われる、複数のプログラムを順番に途切れなく連続実行させる仕組みです。このように、溜まったデータをまとめて一気に処理する形式をバッチ処理と呼びます。一つの作業が終わったら、人間の指示を待つことなく、すぐに次の作業のスタートボタンをパソコンが勝手に押してくれる仕組みです。
例えば、先ほどご紹介した「事例一の売上集計プログラム」が正常に終わったことを確認してから、間髪入れずに「事例二の会員判定プログラム」を起動する、といった流れを運用スクリプトの中に台本のように書き込んでおきます。これにより、夜中の誰もいないオフィスのパソコンの中で、明日の朝までにすべてのデータ加工を終わらせておくといった、スケジュールの自動化が可能になります。
6. 事例五:トラブル発生時に管理人に異常を知らせる防犯システム
五つ目の活用事例は、自動処理の途中で万が一、何かおかしなエラーやデータの不具合が発生したときに、それをいち早く検知して人間にSOSのサインを出す防犯カメラのようなシステムです。運用スクリプトは、COBOLプログラムが最後まで無事に走りきったかどうかを、数字のサインで見張る機能を持っています。
もし、データが途中で途切れているなどの原因でCOBOLプログラムが異常終了した場合、スクリプトはその危険を即座に察知して、処理を安全に緊急停止させます。さらに、画面に目立つ警告文を表示したり、エラーの発生を記録した特別なファイルを作成したりして、翌朝に出社した人間の管理者がどこで処理が躓いてしまったのかをすぐに確認できるように段取りを整えてくれます。これにより、大きなトラブルを未然に防ぐことができます。
7. パイプラインを使った高度なデータバケツリレーの概念
六つ目の活用事例として、複数の小さなプログラムの間で、データを直接手渡ししていくパイプラインという高度な活用法をご紹介します。これは、一つのプログラムが計算して吐き出した結果の文字を、いったんファイルに保存することなく、そのまま次のプログラムの入り口へと土管のように直接流し込むパソコンの魔法のような仕掛けです。
この仕組みを使うと、COBOLが弾き出した膨大な計算結果の中から、特定のキーワードが含まれる行だけを別の外部ツールで抜き出し、さらに別のツールで文字を綺麗に整えてから最終的な報告書を完成させる、といったバケツリレーがわずか一行の命令で実現できます。無駄な一時ファイルがパソコンの中に増えないため、機械のメモリにも優しく、非常にスマートで高速なデータ処理環境を作ることができます。
8. 未経験者が自動化事例を導入するためのステップと注意点
パソコンをこれまであまり触ったことがない方が、こうした便利な自動化の事例を自分の作業に取り入れるための最初のアドバイスです。まずは、欲張って最初から大きな仕組みを作ろうとしないことが成功の秘訣です。日常生活と同じで、まずは「一つのファイルを決まった場所にコピーするだけ」といった、5分で終わる小さな作業の自動化から試してみるのがおすすめです。
注意点としては、自動化の台本である運用スクリプトの中に、パスと呼ばれる「ファイルの正確な住所」を省略せずにしっかりと書いておくことです。パソコンは融通が利かない真面目な機械ですので、住所が少しでも曖昧だと「そんなファイルは見つかりません」とヘソを曲げて止まってしまいます。部屋の名前やファイルの名前を正確に指定する丁寧さを意識するだけで、誰でも失敗することなく安全で頑丈な自動化ツールを運用できるようになります。