7.13.1 CHECK_FOR のパラメータ

IN_FILE

IO_ERROR

IO_STATUS

ISSUE_MSG

NOT_FOUND

VAL_ERROR

WITH_KEY

IN_FILE

「I/O コマンドでのファイル名の指定」を参照してください。

WITH_KEY

「I/O コマンドでのファイル・キー・リストの指定」を参照してください。

IO_STATUS

I/O 操作の結果の「戻りコード」を受け取るフィールドの名前を指定します。

デフォルト値 *STATUS を指定すると、戻りコードは、#IO$STS という特別なフィールドに保管されます。このフィールドは、他のフィールドと同様に RDML プログラムで参照できます。

戻りコードを受け取るフィールドとしてユーザー・フィールドを指定する場合、そのフィールドは、長さ 2 文字の英数字フィールドである必要があります。ユーザー・フィールドを指定した場合も、特別なフィールド #IO$STS は更新されます。

値については、「RDML I/O 戻りコード」を参照してください。

IO_ERROR

このコマンドの実行時に I/O エラーが発生した場合に実行するアクションを指定します。

I/O エラーは、「致命的」エラーと見なされ、ファイルが見つからなかった、ファイルが壊れている、ファイルを割り当てることができない、などがこれに該当します。これらのタイプのエラーが発生すると、ファンクションにおいて、そのファイルが関与しているすべての処理が停止します。

デフォルト値 *ABORT を指定すると、ファンクションが打ち切られ、I/O エラーの性質を示すエラー・メッセージが発行されます。

*NEXT を指定すると、制御が次のコマンドに渡されます。*NEXT は、デフォルトの ABORT を使用するのではなく、エラー・メッセージを RDML で処理し、次に ABORT で処理できるようにすることを目的としています(LANSA/AD および Visual LANSA の処理を続行することもできますが、この方法で LANSA を使用することはお勧めしません)。
データベース操作から返されるERは致命的エラーです。この場合、LANSA は、処理が続行されないものと想定します。IO モジュールがリセットされ、以降の IO は、そのファイルでこれまでに IO が行われなかったかのように実行されます。そのため、ファイルの状態について推定を行わないでください。例えば、最後に読み取られたレコードは設定されません。IO_ERROR の特別なケースとして、TRIG_RETC で ER を返すようトリガー・ファンクションがコード化されている場合があります。上記の説明は、このケースにも当てはまります。
したがって、LANSA では、さらに IO を実行する前に ABORT または EXIT 以外の何らかの処理を実行する目的で、トリガー・ファンクションから返された戻りコードERを使用しないことをお勧めします。

*RETURN を指定すると、プログラム・メインラインでは制御が呼び出し元に戻され、サブルーチンでは制御が呼び出し元ルーチンまたはプログラム・メインラインに戻されます。

上記の値をどれも使用しない場合は、制御を渡す先の有効なコマンド・ラベルを指定してください。

VAL_ERROR

このコマンドで妥当性検査エラーが検出された場合に実行するアクションを指定します。

妥当性検査エラーは、ファイルに対して追加、更新、または削除を行う情報が、そのファイル内のフィールドに関連付けられた FILE または DICTIONARY レベルの妥当性検査に合格しなかった場合に発生します。

デフォルト値 *LASTDIS を指定すると、直前の表示画面に制御が戻されます。この画面では、関連付けられた妥当性検査に失敗したフィールドが反転表示され、エラーのある最初のフィールドにカーソルが配置されます。

*NEXT を指定すると、制御が次のコマンドに渡されます。

*RETURN を指定すると、プログラム・メインラインでは制御が呼び出し元に戻され、サブルーチンでは制御が呼び出し元ルーチンまたはプログラム・メインラインに戻されます。

上記の値をどれも使用しない場合は、制御を渡す先の有効なコマンド・ラベルを指定してください。

*LASTDIS は、「直前の表示画面」がない場合(バッチ・ファンクション内など)でも有効です。この場合、ファンクションが打ち切られ、該当するエラー・メッセージが発行されます。

*LASTDIS を使用する場合、「直前の表示画面」は、データベース・コマンド (INSERT、UPDATE、DELETE、FETCH、およびSELECT) と同じレベルでなければなりません。データベース・コマンドがSUBROUTINE 内で指定され、「直前の表示画面」が呼び出し元ルーチンまたはメインラインの場合など、レベルが異なるとこのファンクションは打ち切られ、該当するエラー・メッセージが発行されます。

これは、Visual LANSA でイベント・ルーチンとメソッド・ルーチンを使用する場合には当てはまりません。これらの場合、制御は呼び出しルーチンに戻されます。フィールドには、エラーがあることと、フォームの親階層で見つかった最初のステータス・パーに返されたメッセージが表示されます。または、メッセージがない場合は、実行スタック内で見つかったステータス・バーを持つ最初のフォーム (PRIM_OBJTから継承した再利用可能パーツなど) が表示されます。

NOT_FOUND

WITH_KEY パラメータで指定されたキーと一致するキーを持つレコードがファイルで見つからなかった場合に実行する処理を指定します。

*NEXT を指定すると、制御が次のコマンドに渡されます。

*RETURN を指定すると、制御が呼び出しルーチンに戻されます (RETURN コマンドを実行した場合と同じです)。

上記の値をどれも使用しない場合は、制御を渡す先の有効なコマンド・ラベルを指定してください。

ISSUE_MSG

「見つからない」メッセージを自動的に発行するかどうかを指定します。

デフォルト値 *NO を指定すると、メッセージは発行されません。

*NO 以外に指定できる値は *YES のみです。この値を指定すると、メッセージが自動的に発行されます。メッセージは、ユーザーに表示される次の画面形式の 22/24 行目、またはバッチ・ジョブのジョブ・ログに表示されます。