はじめに
前回および前々回は、OpenCOBOLが標準で用意している機能を使い機能の確認をしました。通常の事務処理計算を行う程度は、COBOL標準で用意されている機能によりコーディングすることが可能なのですが、プラグインなどの外部機能を利用したり、ミドルウェア連携については、プログラム間連携によりパラメータの受け渡しが必要になります(商用のCOBOLでは、独自の拡張機能や連携機能が強化されている場合があります)。
OpenCOBOLでは独自の拡張機能や連携機能が強化されていることはありませんが、COBOL言語仕様による連携機能を利用して外部プラグインや他言語との連携を行うことができます。本稿では、OpenCOBOLのCOBOL言語仕様を使った、複数のOpenCOBOLソースの連携について解説します。
前回までの記事
対象読者
OpenCOBOLと連携するプログラムをC言語で解説するので、基本的なC言語について分かる読者を対象とします。また、Linux環境を前提として解説しているので、Linuxコマンドが多少分かる読者を対象とします。
必要な環境
- Linux動作環境
- OpenCOBOL開発環境
LinuxにおけるOpenCOBOL開発環境の構築は、COBOL言語をLinux環境で動かすを参照ください。
複数プログラム連携のしくみ
異なるプログラムで処理を継続させるためには、実行の制御とデータの引渡しについて考慮する必要があります。COBOLでは処理部の中に、他プログラムに制御を引き渡す命令文として、CALL文が規定されています。CALL文は、プログラムで使用しているデータ項目を他プログラムに引き渡すことができます。また、他プログラムからデータの引渡しを受け、処理を継続して呼び出し、元のプログラムに制御を返す機能も備えています。これらの仕組みは次の図のとおりです。
以後、本稿ではコンパイル後、コマンドラインから実行されるOpenCOBOLプログラムを「メイン処理プログラム」、メイン処理プログラムからCALL文により実行されるOpenCOBOLプログラムを「連携先プログラム」と呼ぶことにします。