7.75.2 INCLUDE についてのコメント/警告

以下の注意点はIBM iにのみ適用されます。

PROCESS(*DIRECT) が指定され、ファンクション名が区画内で固有でない場合、RDMLコードは、指定のファンクションが見つかった、通常の参照順序で最も上位にあるプロセス内のファンクションから取り込まれます。例えば、ファンクションFがプロセスBおよびプロセスCの両方にある場合、INCLUDE PROCESS(*DIRECT) FUNCTION(F) を実行すると、プロセスB内のファンクションFからRDMLが取り込まれます。後でファンクションFがプロセスA内に作成された場合、以降のコンパイルでは、プロセスA内のファンクションFからRDMLが取り込まれます。

以下の注意点はVisual LANSAにのみ適用されます。

PROCESS(*DIRECT) を指定する場合、ファンクション名は区画内で固有でなければなりません。
プロセスBおよびプロセスCの両方にファンクションFという同じ名前のファンクションがある場合、ファンクションFプロセスはプロセスBおよびプロセスCの両方でコンパイルされません。この場合、以下のエラー・メッセージが表示されます。
Function name must be unique within the partition to use OPTIONS(*DIRECT).

ただし、OPTIONS(*DIRECT)を使用しない場合は、以下のメッセージが表示されます。
To generate C code you must use FUNCTION OPTIONS(*DIRECT) in this function.

すなわち、1つの区画内で同じファンクション名を使用することはできません。

INCLUDEについてのコメント/警告 (すべてのLANSA)