7.10.1 CALLCHECK のパラメータ

ADD_PARMS

BAD_RET

BY_CALLING

GOOD_RET

MSGDTA

MSGF

MSGID

MSGTXT

PROG_TYPE

FIELD

妥当性検査対象のフィールドの名前を指定します。

BY_CALLING

FIELD パラメータに入力されたフィールドの妥当性検査を実行するために呼び出されるプログラムの名前を指定します。このパラメータは修飾名です。プログラム名を指定する必要があります。

必要に応じて、プログラムが存在するライブラリを指定することもできます。ライブラリ名を指定しない場合、ファンクションの実行時ライブラリ・リストでプログラムを検索するよう指定する特別な値 *LIBL が使用されます。

PROG_TYPE

呼び出されるプログラムが 3GL プログラムかファンクションかを指定します。プログラム・タイプとしてファンクションを指定した場合、追加のパラメータは使用できず、ファンクションではオプション *DIRECT を使用する必要があります。詳細については、FUNCTION コマンドのセクションを参照してください。

移植性に関する考慮事項

現行リリースのVisual LANSAでは、3GL プログラムの呼び出しはサポートされていませんが、将来的なリリースでサポートされる予定です。

Visual LANSA コード内で使用すると、ビルド警告が生成され、実行時にエラーが発生します。この機能を使用するコードは、この環境で実行されないように条件付けすることができます。

詳細については、『LANSA アプリケーション設計ガイド』「3GL プログラム/DLL/共用オブジェクトの呼び出し」を参照してください。

ADD_PARMS

プログラムに渡す追加のパラメータを指定します。詳細については、コメントのセクションを参照してください。

GOOD_RET

BY_CALLING パラメータで指定されたユーザー・プログラムが「良好な」戻りコードを返した場合に実行するアクションを指定します。戻りコードの詳細については、コメントのセクションを参照してください。

*NEXT を指定すると、フィールドは、妥当性検査に合格したものとみなされ、次の RDML コマンドで処理が続行されます。

*ERROR を指定した場合、フィールドは、妥当性検査に失敗したものとみなされ、MSGTXT で指定されたメッセージ・テキストまたは MSGID および MSGF パラメータで指定されたメッセージが、ユーザーに表示される次の画面形式の 22/24 行目に表示されます。また、FIELD パラメータで指定されたフィールドが反転表示され、画面カーソルが、画面上でエラーのある最初のフィールドに配置されます。処理は、次の RDML コマンドで続行されます。

*ACCEPT を指定した場合、戻りコードが受け入れられ、この妥当性検査ブロックでは、FIELD パラメータで指定されたフィールドに対してこれ以上の妥当性検査は実行されません。処理は、次の RDML コマンドで続行されます。ただし、これが同じフィールドに対する別の妥当性検査である場合は、事実上この処理が「無効」になり、実行されません。

BAD_RET

BY_CALLING パラメータで指定されたユーザー・プログラムが「不良な」戻りコードを返した場合に実行するアクションを指定します。戻りコードの詳細については、コメントのセクションを参照してください。

*NEXT を指定すると、フィールドは、妥当性検査に合格したものとみなされ、次の RDML コマンドで処理が続行されます。

*ERROR を指定した場合、フィールドは、妥当性検査に失敗したものとみなされ、MSGTXT で指定されたメッセージ・テキストまたは MSGID および MSGF パラメータで指定されたメッセージが、ユーザーに表示される次の画面形式の 22/24 行目に表示されます。また、FIELD パラメータで指定されたフィールドが反転表示され、画面カーソルが、画面上でエラーのある最初のフィールドに配置されます。処理は、次の RDML コマンドで続行されます。

*ACCEPT を指定した場合、戻りコードが受け入れられ、この妥当性検査ブロックでは、FIELD パラメータで指定されたフィールドに対してこれ以上の妥当性検査は実行されません。処理は、次の RDML コマンドで続行されます。ただし、これが同じフィールドに対する別の妥当性検査である場合は、事実上この処理が「無効」になり、実行されません。

MSGTXT

最大 80 文字のメッセージ・テキストを指定できます。メッセージ・テキストを指定するときは、引用符で囲んでください。MSGTXT パラメータまたは MSGID/MSGF パラメータのいずれかを使用してください。両方は使用できません。

MSGID

使用するメッセージとして、標準メッセージ識別子を指定できます。メッセージ識別子は 7 文字である必要があります。このパラメータは、MSGF パラメータと組み合わせて使用してください。

MSGF

MSGID パラメータで指定されたメッセージが記述されているメッセージ・ファイルを指定します。このパラメータは修飾名です。メッセージ・ファイル名を指定する必要があります。必要に応じて、メッセージ・ファイルが存在するライブラリを指定することもできます。ライブラリ名を指定しない場合は、ライブラリ *LIBL が使用されます。

MSGDTA

このパラメータは、必ず MSGID および MSGF パラメータと組み合わせて使用してください。MSGID パラメータに指定されたメッセージ内の "&n" 代替変数を置き換えるために使用される 1~20 個の値を指定します。

このパラメータの値として、フィールド名、拡張可能なグループ式、英数字リテラル、または数値リテラルを指定できます。これらの値は、メッセージに定義されている代替変数のタイプ、長さ、および指定順序と一致している必要があります。

このパラメータで指定するフィールドのタイプが符号付き (ゾーンとも言う) 10 進数の場合、メッセージ内でそれに対応する "&n" 変数のタイプは *CHAR (文字) である必要があります。これは、負の値を処理するときに問題になる場合があります。この場合は、代わりにパック 10 進数形式を使用してください。

メッセージ内の "&n" 変数のタイプが *DEC (パック10進数) の場合、このメッセージ内で指定されるフィールドのタイプもパック 10 進数である必要があります。

このパラメータで英数字リテラルを使用するときは、末尾ブランクが重要になる場合があることを覚えておいてください。例えば、メッセージが以下のように定義されているとします。

"&1 are out of stock ... reorder &2"
 

ここで、&1 が (*CHAR 10) として、&2 が (*DEC 7 0) として定義されている場合、以下のように指定すると、メッセージが正しく発行されません。

MSGDTA('BOLTS' #ORDQTY)
 

あるいは次のように記述することも可能です。

MSGDTA('BOLTS     ' #ORDQTY)
 

LANSAに末尾ブランクを認識させるには、このパラメータを以下のように指定する必要があります。

MSGDTA('''BOLTS     ''' #ORDQTY)

拡張可能な式を使用する場合、拡張フィールド・リストが、パラメータで許容される代替変数の最大数を超えないようにしてください。