現在地: LANSA テクニカル リファレンスガイド > 7. RDML コマンド > 7.27 DEF_MAP_EX > 7.27.3 DEF_MAP_EX とサービス・プログラム内でのプロシージャ呼び出し

7.27.3 DEF_MAP_EX とサービス・プログラム内でのプロシージャ呼び出し

DEF_MTH_EX で ENTRYPOINT が指定される場合、呼び出される外部メソッドはサービス・プログラム内のプロシージャです。

DEF_MAP_EX は、最大でも 1 つのみで FOR(*RESULT) を指定することができます。これは、サービス・プログラムのプロシージャに対し 1 つの戻り値しか許可されていないからです。ただし、サービス・プログラムのプロシージャすべてに戻り値がある訳ではないので、戻り値がまったく無い場合もあります。

関連付けられた DEF_MTH_EX などと共に DEF_MAP_EX を使用する場合、次の規則が適用されます。

重要な注意点:

TYPE(*SIGNED) FOR(*INPUT) はサポートされません。IBM i オペレーティング・システムは C をサポートせず、これに相当する、符号付き (Signed) の RPG が使用されます。これは値によって符号付きの RPG パラメータに引き渡されたものです。

例1:値によってプロシージャに *USA 形式で引き渡される時間引数を定義

Def_Map_Ex Name(CloseTime) For(*INPUT) Type(*TIME) Format(*USA)

 

例2:プロシージャに対する最大長が 999 文字の Null 値終了の文字列を、Null ターミネータは考慮せずに定義

Def_Map_Ex Name(Conditions) For(*RESULT) Type(*VARCHAR) Length(999) Format(*NTS)

 

例3:プロシージャから戻される浮動の引数を定義

Def_Map_Ex Name(Tolerance) For(*OUTPUT) Type(*FLOAT) Length(4)