RPG

96. プロシージャーのパラメータ値を戻すには?

サービス・プログラムのプロシージャーで何らかのメソッド(プロシージャー)を呼び出して
実行するようにしたとする。
戻り値には TRUE または FALSE などによってプロシージャーの実行が成功か失敗かを
戻すようにしたい。
ただし成功のときには値も取得したものとする。

例えば

EVAL   RESULT = GETXLVALUE(ROW : COL : VALUE)

というプロシージャーの実行があるとする。
このプロシージャー GETXLVALUE は 行 ROW , 列 COL を指定して実行する。
RESULT「TRUE」が戻ったときには VALUE に取得した値が入っていて、
これを取得したいものとする。

しかしこのプロシージャーの記述ではそれはできない。
取得値のフィールド VALUE には値をパラメータとして値が戻らないからである。
値 を取得しようと希望するのであれば

EVAL   RESULT = GETXLVALUE(ROW : COL : %ADDR(VALUE))

として %ADDR によって VALUE のポインターを指定する。
サービス・プログラムのほうでもポインターを戻すようにする。
このようにすればプロシージャーのパラメータ値を戻すことができるようになる。