COBOLコンソーシアム利用技術分科会
清水 真 (東京システムハウス株式会社 ビジネスイノベーション事業部)
単純移行では、システムの利用者が直接触れる、画面と帳票について仕様や見た目を保ったまま移行できるのが理想的です。しかしCOBOL85規格では画面も帳票も標準化されていません。
あらためて画面と帳票を考えてみると、表示項目や計算など変わらない情報と、数値や名称など処理結果に応じて値を変える情報に分けられます。そこで前者を定義体として処理プログラムとは別個に定義しておく手法が浮かび上がります。以下、画面と帳票を移行する手法を説明していきます。
ホスト・コンピュータのCOBOLアプリケーションの画面表示は、数値と文字だけでやり取りを行うCUIが基本です。ただし、画面の仕様はベンダーによりさまざまです。
画面移行の説明の前に、COBOLプログラムの作り方と通信方法をおさらいしましょう。
まず、メインフレームのオンライン・システムでは、COBOLプログラムに入出力データの処理を記述し、別ファイルの画面定義体に画面フォーマットを記述している場合が多いです。
また、オフコンのCOBOLの中には、画面はSCREEN SECTION(画面節)で画面情報を、PROCEDURE DIVISION(手続き部)で入出力処理を記述する場合が多いです。このように、画面節を使っていて、かつTPモニターが無いシステムは、オープン系COBOLへの移行が比較的容易です。なぜなら、画面節はCOBOL85規格の拡張機能であるためベンダー間の互換性は比較的高く、しかもオープン系COBOLの通信形態も対話型を前提としているからです。
一方、メインフレームのオンライン・システムをオープン化する場合、オープン系COBOLが対話型をベースにしているため、①メインフレームのTPモニターをオープン系のTPモニターで代替する方法、②メインフレームのTPモニターの機能を代替するCOBOLプログラムを追加する方法──などを検討する必要があります。
なお、オープン系COBOLの画面設計ツールを使用して、画面をGUIで再構築する方法もあります。
COBOLでの帳票作成は、①プログラムには出力用データ作成処理を記述し、外部に帳票書式(フォーム)を定義しているケースと、②1つのプログラムのなかで、報告書作成機能のREPORT SECTION(報告書節)で帳票フォーマットを定義し、手続き部で出力用データ作成処理を記述するケースに分類されます。
また、外部に帳票定義体を持つバリエーションとして、(前述のオンライン・システムの画面のように)帳票を出力画面と見立てて利用している場合があります。外部定義対の内容をフォームで再作成し、印刷データはテキスト・ファイルなどに出力するロジックに変更します。
また、プログラムは修正できても、プリンタの能力に限界があり、帳票の見た目が異なる場合があります。オープン環境のプリンタが従来の仕様を引き継げないことがあるためです。プリンタが対応できない以上、ユーザーに事前に説明して納得してもらい帳票のサイズを変更するか、専用帳票印刷のみアウトソーシングを利用するなどの手段をとる必要があるでしょう。