Page History
7.121.2 SUBROUTINE についてのコメント/警告
EXECUTEコマンドでサブルーチンに渡すパラメータとして、フィールド名、英数字リテラル、数値リテラル、システム変数、またはプロセス・パラメータを使用できます。
EXECUTEコマンドでサブルーチンに渡すパラメータとして、フィールド名、英数字リテラル、数値リテラル、システム変数、またはプロセス・パラメータを使用できます。
サブルーチン内で定義するサブルーチン内で定義する(すなわち、PARMSパラメータで指定する)パラメータは、フィールド名でなければなりません。また、PARMSパラメータで指定するすべてのフィールドは、LANSAデータ・ディクショナリ、またはファンクション内でDEFINEコマンドによって定義されていなければなりません。
...
サブルーチンの実行が完了すると、SUBROUTINEコマンドのPARMSパラメータで指定したフィールドが、EXECUTEコマンドのWITH_PARMSパラメータで指定された値にマッピングされます。ただし、WITH_PARMS値がリテラル値(英数字または数値)、システム変数、プロセス・パラメータである場合、またはパラメータに属性*RECEIVEDが指定されている場合、フィールドはマッピングされません。 RECEIVEDが指定されている場合、フィールドはマッピングされません。
パラメータのデフォルトのマッピング値は*BOTHです。ただし、多少の手間はかかっても、RECEIVEDまたは*RETURNEDを指定すると、パラメータのマッピングに要する時間を短縮することができます。
サブルーチンは、ファンクション内の任意の場所にコーディングできます。また、以下のように、相互にネストすることも可能です。 サブルーチンは、ファンクション内の任意の場所にコーディングできます。また、以下のように、相互にネストすることも可能です。
SUBROUTINE NAME(SUB01)
..........
DISPLAY .. etc, etc
SUBROUTINE NAME(SUB02)
..........
..........
..........
ENDROUTINE (subroutine SUB02)
CHANGE .. etc,etc
..........
SUBROUTINE NAME(SUB03)
..........
..........
..........
ENDROUTINE (subroutine SUB03)
..........
GOTO .....
..........
..........
ENDROUTINE (subroutine SUB01)
...