7.92.2 SUBMITについてのコメント/警告
SUBMITコマンドでのフィールド(変数)の使用
SUBMITコマンドのパラメータPGM、PROCESS、FUNCTION、JOB、JOBD、JOBQ、およびOUTQには、英数字リテラル(GLR001など)またはLANSAフィールド名(#PGMNAMEなど)を指定できます。
そのため、1つのSUBMITコマンド内で非常に柔軟にコーディングすることができます。以下のRDMLプログラムについて考えます。
REQUEST FIELDS(#OPTION)
CASE OF_FIELD(#OPTION)
WHEN VALUE_IS('= 1')
CHANGE FIELD(#FUNCTION) TO(PRINT)
WHEN VALUE_IS('= 2')
CHANGE FIELD(#FUNCTION) TO(BATCH)
WHEN VALUE_IS('= 3')
CHANGE FIELD(#FUNCTION) TO(PURGE)
WHEN VALUE_IS('= 4')
CHANGE FIELD(#FUNCTION) TO(BACKUP)
ENDCASE
SUBMIT PROCESS(ORDERS) FUNCTION(#FUNCTION) JOB(#FUNCTION)
このプログラムでは、ユーザーが1、2、3、または4のオプションを指定することにより、それぞれファンクションPRINT、BATCH、PURGE、またはBACKUP (すべてプロセスORDERSに属する)を送信することができます。送信されるジョブの名前は、ファンクションと同じになります。
プロセスまたはファンクションの送信
· プロセス/ファンクションを送信するときは、渡すパラメータの数およびタイプ(数値か文字か)が、プロセスで要求されるものと正確に一致していなければなりません。
· バッチ・プロセスまたはファンクションに渡すパラメータとして、フィールド名、英数字リテラル、数値リテラル、システム変数、またはプロセス・パラメータを使用できます。
· プロセスに数値パラメータが定義されている場合、これらのパラメータは常にパック10進数であることに注意してください。すなわち、LANSAプロセスに渡す数値パラメータも、長さおよび小数点以下桁数が同じパック10進数でなければなりません。この規則に従わないと、予期しない結果になる可能性があります。
ユーザー・プログラムの呼び出し
· バッチ・プログラムに渡すパラメータとして、フィールド名、英数字リテラル、数値リテラル、システム変数、またはプロセス・パラメータを使用できます。
· バッチ方式で呼び出すプログラムが保持されているライブラリとして特別な値*LIBLを指定した場合、そのプログラムは、このコマンドのJOBD (ジョブ記述)パラメータで指定するジョブ記述のINLLIBL (初期ライブラリ・リスト)パラメータで指定されているいずれかのライブラリに含まれていなければなりません。
フォームの送信
· フォームを送信するときは、SUBMITコマンドのFUNCTIONパラメータに値*FORMを指定しなければなりません。例えば、以下のようになります。
CHANGE FIELD(#FORM) TO ('''*FORM''')
SUBMIT PROCESS(ORDERFRM) FUNCTION (#FORM)