今回はFFRPGのインターフェイス定義、プロトタイプ定義について調べていきます。
<前回の記事>
FFPRGの仕様を解説!
https://fbicenter.co.jp/2743
プログラムのつながり
プログラムを作成しているとプログラムから共通使用できる機能を呼び出して実行することがあります。例えば消費税計算や、営業日日数カウントなどがあります。プログラム間はパラメータで情報のやり取りを行いますが、自由形式構文ではPLIST(パラメータ・リストの識別)やCALL命令(プログラム呼び出し)が使用できません。


それではどのようにしてプログラムの呼び出しや情報の受け渡しを行うのでしょうか。
インターフェイス定義(呼び出される側)
呼び出される側の受取りパラメータはインターフェイス定義で記述します。定義するパラメータをdcl-pi~end-piでくくります。

例では受取りパラメータを2つ定義しています。
パラメータ名 タイプ 桁数
p#char1 文字 10
p#char2 文字 10
定義したパラメータはプログラム中で使用できます。
サンプルプログラムでは、受け取ったパラメータを連結して表示します。
※サンプルプログラムソース(TEST002)

実行

結果

プロトタイプ定義(呼び出す側)
呼び出す側はプロトタイプ定義で受け渡しを行うパラメータの定義を行います。パラメータをdcl-pr~end-prでくくり、dcl-prの後に呼び出しプログラム名を記述します。パラメータ情報は呼び出されるプログラムと合わせます。

パラメータ名 タイプ 桁数
p#char1 文字 10
p#char2 文字 10
ここで注意ですが、プロトタイプ定義で定義したパラメータ名はプログラムで使用できません。プログラムの呼び出しにはCALLP命令を使用します。

※サンプルプログラムソース(TEST001)

実行

結果

まとめ

いかがでしたでしょうか。プロトタイプ定義やプロシージャー呼び出しはRPGⅢにはなかったので面倒に感じるかもしれませんが、プログラム/プロシージャーの呼び出し前にパラメータの定義を行うのは、多くのプログラム言語で採用されている記述方法なのでこれを機会に身につけてください。
次はRPGⅢとILERPG・FFRPGの命令について調べてみます。追加された命令、使えなくなった命令、代わりに追加された関数を深堀していきます。(江口)
▼次の記事を読む
FFRPG言語徹底解説~RPG開発においてSQLを使用するメリット~