拡張処理の働き
ユーザー提供の REXX プロシージャーは、各入力レコードに対して順次に実行されます。これは、入力データ・セットの終わりに達するか、または REXX プロシージャーが RETURN STOP (または RETURN STOP IMMEDIATE) コマンドを出すまで続きます。
FM/Db2 は 2 つの特別な REXX 変数 INREC および OUTREC を定義します。これらの変数は、 拡張処理を実行するためにユーザーが提供する REXX プロシージャーの中で使用することができます。FM/Db2 機能またはパネルが REXX プロシージャーを呼び出すと、処理するために選択された各入力レコードの内容が、INREC と OUTREC の両方でそのプロシージャーに渡されます。プロシージャーが呼び出されるときには、INREC と OUTREC の内容は同一です。
変数 INREC は参照変数として使用されるものです (FM/Db2 は INREC に対する変更をすべて無視します)。変数 OUTREC は、プロシージャーによって更新することができ、そして (以下の説明にあるように、以後の処理からレコードを
除去することがない限り) REXX プロシージャーが完了したときにインポート・ユーティリティーによって処理するために戻されます。例えば、次のコードは、出力レコードの中の 2 桁の年を 4 桁の年に変更するものです。
/* Changes a date of format MMDDYY (starting at column 1) to MMDDYYYY */
If fld(5,2,z) > 50
outrec = fld(1,4)||'19'||fld(5)
else
outrec = fld(1,4)||'20'||fld(5)