プロシージャーのパラメータ定義で CONST という定義をする必要がある場合がある。
一体、CONSTとはどのような意味を持つのだろうか?
_
[例] QMHSNDPM のプロトタイプの定義
0053.00 *( QMHSNDPM : プログラム・メッセージの送信 )
0054.00 D QMHSNDPM PR ExtPgm('QMHSNDPM')
0055.00 D MSGID 7A CONST
0056.00 D MSGFILE 20A CONST
0057.00 D MSGDATA 6000A CONST OPTIONS(*VARSIZE)
0058.00 D MSGDATALEN 10I 0 CONST
0059.00 D MSGTYPE 10A CONST
0060.00 D CALLSTACKE 10A CONST
0061.00 D CALLSTACKC 10I 0 CONST
0062.00 D RTNMSGKEY 4A
0063.00 D APIERR LIKEDS(APIERR)
0064.00 D OPTIONS(*VARSIZE)
[解説]
API: QMHSNDPM は SNDPGMMSG の機能を実行するAPIである。
ILE-RPGの中からもこのAPIを呼出してプログラム・メッセージを
送信することができる。
上記では各パラメータに CONST という機能を定義している。
このCONST というのは
変更できないパラメータである
ことを示している。
呼出し側のAPIでも CONSTが定義されている場合
呼び出す側でも CONST を定義しないとコンパイル・エラーに
なるからである。
APIを呼び出すときにプロトタイプで不明なエラーが出たときは
CONST の定義が漏れている場合が多い。
このことを意識して CONSTを定義してやると
コンパイル・エラーは解決される。
_
