AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
実行可能変数を使用すると、 実行可能変数フィーチャーを使って変数参照から他のプログラムを呼び出せます。 実行可能変数は Net.Data マクロで、EXEC 言語要素を使って定義します。 EXEC 言語要素についての詳細は、EXEC ブロックまたはステートメント を参照してください。
Net.Data がマクロ内で実行可能変数を見つけると、 参照された実行可能プログラムを以下の方法で探します。
例 1: 実行可能変数の定義
%DEFINE runit=%exec "testProg"
変数 runit は、実行可能プログラム testProg を実行するために定義されます。 runit は実行可能変数になります。
Net.Data は、Net.Data マクロ内で実行可能変数の参照が見つかったときに、 実行可能プログラムを実行します。 たとえば、プログラム testProg は、 Net.Data マクロ内で変数 runit に対して実行可能変数の参照が行われたときに実行されます。
簡単な方法は、別の変数定義から実行変数を参照することです。 例 2 はこの方法を示します。 変数 date が実行可能変数として定義され、 さらにその実行可能変数を含む dateRpt が変数参照として定義されています。
例 2: 変数参照としての実行可能変数
%DEFINE date=%exec "date" %DEFINE dateRpt="Today is $(date)"
Net.Data が変数参照 $(dateRpt) を解決すると、 Net.Data は実行可能な date を検索し、プログラムを実行し、以下のものを戻します。
Today is Tue 11-07-1995
実行可能変数は、自分が呼び出した実行可能プログラムの出力値に設定されることはありません。 前の例を使うと、date の値は NULL です。 実行可能変数の値を別の変数に割り当てるために、 DTW_ASSIGN 関数呼び出しで実行可能変数を使用した場合、 割り当て後の新しい変数値も NULL です。 実行可能変数の唯一の目的は、定義したプログラムを呼び出すことです。
変数定義でプログラム名と一緒にパラメーターを指定することによって、 実行されるプログラムにパラメーターを渡すこともできます。
例 3: パラメーターを指定した実行可能変数
%DEFINE mph=%exec "calcMPH $(distance) $(time)"
distance と time の値がプログラム calcMPH に渡されます。