コンセプト
日々COBOL技術者として過ごしてきた中で、様々なツールを作成してきた。その中でもExcel VBAで作成したツールが数多くがある。
その中から「役に立ったなぁ」と感じるツールを思いつく限り記載してみた。
(ツールは開発環境で作成し実際に現場で役に立っているが、コンプライアンスの観点として開発環境から持ってくることができないため、現物のツールは手元にない。)
下記に記載した他にもExcel VBAを使って沢山のツールを作ってきたが、1回だけ使って不要になったモノや、かなりの時間を掛けて作ったが、数回使ってその後使わなくなったモノ等、沢山ある。
そういったツールが発掘できたらここで紹介していこうと思う。
また、このサイトでは役に立ったツールの考え方や、可能であればロジックを提示していこうと考えている。
COPY句レイアウト作成ツール
- COBOLのコピー句テキストファイルを読み込んでExcelに表として出力する。
- 出力項目は以下のとおり。
- レベル、項目名、属性・桁、OCCURS数、REDEFINES項目、桁位置
- コピー句レイアウト表のイメージは以下のとおり。
- 項目名の横に全体のレコード長を出力する。
- サーバから受け取った電文が、汎用機側電文コピー句レイアウトと合っているかどうかの判断に使用することも可能。
- 提供データのレイアウトとして、設計段階から使用することも可能。
- OCCURSを展開したレイアウトを作成することも可能。
受信電文EXCEL展開ツール
- 上記の「COPY句レイアウト作成ツール」で作成したコピー句レイアウトをもとに、平電文(テキストファイル)をコピー句レイアウトに当てはめて文字列を分割する。
- 電文展開したコピー句レイアウトは以下のとおり。
TSS自動化ツール
- 富士通の汎用機では、TSS(Terminal Systemの略らしい)という名の黒画面に緑の文字で操作するCUI画面で、コマンドを実行したりプログラムを作成したりする。私は、汎用機について富士通の汎用機しか知らないので、他社のターミナル画面がどのようなものか分からない。富士通汎用機のTSS画面には画面を操作するWindowsAPI(WSMGR ConnextXコントロール)が存在し、それを使用することである程度の自動化が可能である。
- 使い道としては、JCLで使用するパラメータをホストへ転送したり、COBOLやコピー句のソースを大量にダウンロードしたりするのに使用している。
- 最初は10個程度のJCLパラメータを転送するのに使用していたが、今では半期に一度2000~3000本のソースを仮想環境にダウンロードしたり、Windows上のExcel VBAで自動生成したCOBOLソースをホストへ転送するために使用している。
COBOLソース参照ツール
- ホストでCOBOLソースを見るのはTSS(Terminal System)でしかできない。私が主に使用している富士通の汎用機では日本語COBOLを採用している。TSSはJCL用に1行80バイトで構成されていて、日本語COBOLを扱う場合、黒背景に緑文字の画面を前後左右ファンクションキーで操作して見ないとならず、非常に見ずらい。したがって、ホストからCOBOLソースをダウンロードし、EXCELで参照のみ可能なツールを作成している。
- COBOLソース参照ツールとAccessRDBを組み合わせて、様々な形式での文字列検索を可能としたり、その他にも多様な機能を搭載したツールを作成した。これはかなり分析や障害調査に役に立っている。
データコンペアソース作成ツール
- 汎用機で、トランザクションファイルの新旧データコンペアを行うテストが必要な場合、汎用機ユーティリティとしてデータコンペア機能は準備されているが、なかなか使い勝手が悪くコピー句と照らし合わせた時にどの項目でコンペアNGとなっているのかわかりづらい。そこで、コピー句を元に新旧の項目を比較しNG箇所を出力するCOBOLソースとJCLをExcel VBAで作り出すツールを作成した。それらを汎用機へ転送しコンパイルしてJCLを実行することで項目単位のコンペアを実施し、コンペアNGの項目名を出力する。
- COBOLソースを自動で作成するため、レイアウトが変わってもコピー句テキストファイルを最新化してボタンをクリックするだけなのでメンテナンスも簡単。
ホストデータCSV化ソース作成ツール
- 汎用機で扱うデータは、ほとんどの場合COBOLで扱えるフラットデータ(PSファイル)であり、データを直接参照する機能はあるものの一見しただけだと非常に見づらい。また、大量データ調査を行う場合はCSV化し、ExcelやAccessに落として条件を変えながら調査した方が簡単な場合もある。汎用機のフラットデータをCSV化するのは意外と面倒で、JCLを駆使して桁位置を定義していくことも可能だが、項目数が多くなるとかなり面倒でメンテナンスが大変である。そこで、コピー句を元にフラットデータをカンマ区切りのデータに変換するCOBOLソースとJCLをExcel VBAで作り出すツールを作成した。それらを汎用機へ転送しコンパイルしてJCLを実行することでフラットデータのCSV化を容易にし、Windowsへ取り込むことでExcelやAccessで扱いやすくできる。
- CSVデータの項目見出しは、コピー句の項目名で作成する。
- CSV化するため、パック十進数項目や符号付数値項目も普通の数値に変換することが可能。
ホストデータコンバージョンソース作成ツール
- トランザクションファイルやNDBのデータ等、項目追加があった場合やレイアウトが変更になった場合にデータコンバージョンが必要となる。項目数の少ないデータであればコンバージョンプログラムを作成するのも難しくはないが、汎用機で扱うデータは大概項目数が多く、コンバージョンプログラムを作るのもテストするのも大変である。そこで、コピー句を元にデータコンバージョンプログラムのCOBOLソースとJCLをExcel VBAで作り出すツールを作成した。それらを汎用機へ転送しコンパイルしてJCLを実行することでコンバージョンプログラムの作成を容易にし、テスト工数もかなり削減できる。(人間が手で作るプログラムよりは信頼できることに加え、工数も少なくて済む)
- 集団項目でコンバージョンが可能な部分は、指示をすれば集団項目のMOVE文を作成することも可能。
COBOLソース新旧コンペアツール
- テキストファイルの新旧コンペアのアルゴリズムはかなり難しい。やってみると分かるが、Windowsの世界で見つけることのできるテキストファイルコンペアアプリでは、COBOLソースの新旧コンペアを行うと上手くいかない場合が多い。COBOLは同じ内容の行がいたるところに存在するからだ。そこで、(今いる現場のCOBOLソースコーディング仕様に特化してはいるが)COBOLソース向けのコンペアツールをExcel VBAで作成した。
- 元々は、汎用機内でCOBOLで作成して現在も稼働しているソース新旧コンペアツールを、Excel VBAに移植したもの。
- 普通のソース修正規則に則った修正をしていれば、修正箇所は正しく表現されるが、少しでもルールを逸脱していると上手くコンペアできないパターンがある。ソースの新旧コンペアはなかなか難しい。
ホストプロセス図検索ツール
- 現在いる現場では、汎用機で動くバッチ処理には必ずプロセス図が必要であり、プロセス図で運用部署に情報連携し本番環境を整備してもらう手順となっている。そのプロセス図は運用部署が作成したExcelツールを元に統一した図表を使って記載されている。そのプロセス図の図表を全て分解し、文字列データベースをAccess上に構築するツールをExcel VBAで作成した。
- まだ、そのAccessDBを利用してプロセス図を文字列検索するExcelツールも作成した。
- 大量にあるプロセス図をいちいち開かなくても、文字列検索して一発でプロセス図を検索することができるので非常に便利。
- ただし、プロセス図がメンテナンスされていなかったり嘘が書いてあったりすると、当然上手く検索できない。
モジュール構造図作成ツール
- 汎用機で扱うCOBOLシステムは膨大な量のソースで構築されていて、どのプログラムから何が呼ばれているのか一見では分からないことが多い。現在いる現場では、先頭モジュールからCALL文をたどっていくと10階層を超すソースが呼ばれている場合が多々ある。それらの膨大な量のCOBOLソースのCALL文を階層図にしてExcel上に展開するツールを作成した。
- システムに慣れてくれば不要な機能だが、初めて参画した人や、あまり触れたことのないシステムだったりすると、モジュール構造図があると感覚がつかみやすくなる。(経験上5階層を超すと追いかけるのが困難である)
セクション構成図作成ツール
- セクション構成図は、プログラム毎のセクションの階層を示す図である。ステップ数の小さいプログラムであれば不要だが、2000ステップを超えるとソースを追うのが困難になる。
- プログラムに慣れてくれば不要な機能だが、初めて担当する場合などあまりなじみのないステップ数の大きなプログラムは慣れるまではあった方が楽である。
COBOLソースエディタ
- 汎用機のCOBOLソースを修正する場合は、TSS(Terminal System)という黒背景に緑文字のCUI画面を使用して行う。ただ、このTSSの画面はエディタとしては非常に使いづらく職人技が必要である。今の現場ではプログラム設計書をExcelで記述することになっていて、せっかくExcelにロジックを記載しているので、そのロジックをそのままTSSに反映させる(簡単にいうとコピペのみ)ことにした。よって、実際のロジックはプログラム設計書(Excel)に記載することになるため、様々な便利機能を搭載したExcelエディタを作成した。
COBOLソース資産日付チェックツール
- 現在の現場では、開発時や統合テスト、本番直前テストで資産を格納するライブラリが細かく分かれている。また、資産移行は手作業となるため移行漏れが発生しやすく、それをチェックするためにライブラリの資産日付情報をExcelにダウンロードして、COBOLの修正日付の妥当性を機械的にチェックするようにした。
- 目検ではなく機械的にチェックするため、移行漏れはかなり防げていると思う。
ホストコピー句資産日付チェックツール
- これも上記の「COBOLソース資産日付チェックツール」と同じで、こちらはコピー句の資産日付チェックを実施するツール。
ホストコピー句ロード整合性チェックツール
- 汎用機のCOBOL資産は、コンパイルして実行資産が作られる。ある特定のライブラリの実行資産は、どのコピー句資産でコンパイルされたのか実行資産からは判断できない。したがって、コンパイル実行日時とコピー句の登録・修正日付を突き合わせて、実行資産の妥当性を機械的に判断するためのツールを作成した。
- 目検ではできないチェックであり、そのプログラムに関連するコピー句日付が機械的に抽出・チェックできるので使えるツールとなっている。