Page History
[ |../../index.htm#lansa/put_program_check.htm]
現在地:
...
9.170 PUT_PROGRAM_CHECK
| Note |
|---|
注意 |
...
: 9.1 |
...
指定されたフィールドのデータ・ディクショナリ(またはファイル定義)に、DICTIONARY(またはFILE)レベルの「ユーザー・プログラム呼び出し」の妥当性検査を作成/修正します。 修正します。
フィールドにファイル・レベルの妥当性検査を追加する場合、関連するファイルは事前に組み込み関数START_FILE_EDITで編集セッションに投入しておく必要があります。 EDITで編集セッションに投入しておく必要があります。 この組み込み関数に渡されるすべての引数値は、その値がオンライン妥当性検査定義のスクリーン・パネルを通じて入力された場合と同じように有効な値です。
この組み込み関数に渡されるすべての引数値は、その値がオンライン妥当性検査定義のスクリーン・パネルを通じて入力された場合と同じように有効な値です。
この組み込み関数の使用には、通常の権限とタスク追跡ルールが適用されます。 この組み込み関数の使用には、通常の権限とタスク追跡ルールが適用されます。 詳細については、『LANSA
詳細については、『LANSA/AD ユーザーガイド』の「フィールド妥当性検査」 を参照してください。 ユーザーガイド』の「フィールド妥当性検査/トリガー」を参照してください。
この BIF は、9.2 開発環境のみで使用される組み込み関数です。
です。
引数
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | 妥当性検査のレベル D = |
ディクショナリ・レベル | 1 | 1 |
2 | A | 必須 | 妥当性検査のルールを適用するディクショナリ内のフィールド名 | 1 | 10 |
3 | N | 必須 | 検査の順序番号 | 1 | 3 | 0 | 0 |
4 | A | 必須 | 検査の記述 | 1 | 30 |
5 | A | 必須 | 追加(ADD)時の検査を有効にする Y = 追加(ADD) |
時に検査を実行する | 1 | 1 |
6 | A | 必須 | 変更(CHANGE)時の検査を有効にする Y = 変更(CHG) |
時に検査を実行する | 1 | 1 |
7 | A | 必須 | 削除(DELETE)時の検査を有効にする Y = |
検査を有効にする | 1 | 1 |
8 | A | 必須 | 検査がTRUEのときの対応 NEXT = |
次の検査を実行する | 4 | 6 |
9 | A | 必須 | 検査が偽のときの対応 NEXT = |
次の検査を実行する | 4 | 6 |
10 | A | 必須 | メッセージ・ファイル詳細 |
メッセージ・ファイルから送信されるエラー・メッセージの詳細です。 |
メッセージ・ファイルの詳細は次のようなフォーマットにする必要があります。 開始 - |
終了 説明 |
7 エラー・メッセージ番号 |
17 メッセージ・ファイル名 |
27 メッセージ・ファイル・ライブラリ メッセージ・テキストを使用する場合は、この引数をブランクで渡します。 | 27 | 27 |
11 | A | 必須 | メッセージ・テキスト | 1 | 80 |
12 | A | 必須 | この検査を実行するために呼び出されるプログラムの名前。ファンクションを呼び出す場合は、名前の前に"LF="を付けます。
|
| 1 | 10 |
13 | L | 必須 | 指定されたプログラムに渡される追加のパラメータを含める作業リスト |
呼び出し元のRDMLファンクションは、項目の長さの合計が正確に20バイトで、かつ10個のパラメータ・エントリーを持つ作業リストを提供しなければなりません。 |
送信する各リスト項目は、次のような形式にする必要があります。 開始 - |
終了 説明 |
20 追加のパラメータ | 1 | 20 |
戻り値
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | 戻りコード OK = |
妥当性検査が定義された ER = |
致命的なエラーが検出された "ER" の場合は、戻りコード・エラー・メッセージが自動的に発行されます。ファイル編集セッションが関係していた場合、ファイル編集セッションはコミットメントされずに終了します。 | 2 | 2 |
例
ユーザーは、フィールド制御メニューに提供されたLANSAオプションで「ユーザー・プログラム呼び出し」妥当性検査を追加できますが、これを使わずに特定のフィールドの「ユーザー・プログラム呼び出し」妥当性検査を追加する場合は次のように行います。 ユーザーは、フィールド制御メニューに提供されたLANSAオプションで「ユーザー・プログラム呼び出し」妥当性検査を追加できますが、これを使わずに特定のフィールドの「ユーザー・プログラム呼び出し」妥当性検査を追加する場合は次のように行います。
*********
...
Define arguments and lists
DEFINE FIELD(#LEVEL)
...
TYPE(*CHAR)
...
LENGTH(1)
...
LABEL('Level')
...
DEFINE FIELD(#FIELD)
...
TYPE(*CHAR)
...
LENGTH(10)
...
LABEL('Field')
...
DEFINE FIELD(#SEQNUM)
...
TYPE(*DEC)
...
LENGTH(3)
...
DECIMALS(0)
...
LABEL('Sequence #')
DEFINE FIELD(#DESCR) TYPE(*CHAR)
...
LENGTH(30)
...
LABEL('Description')
...
DEFINE FIELD(#RETCOD)
...
TYPE(*CHAR)
...
LENGTH(2)
...
LABEL('
...
Return code')
...
DEFINE FIELD(#ENBADD)
...
TYPE(*CHAR)
...
LENGTH(1)
...
LABEL('
...
Enable ADD')
...
DEFINE FIELD(#ENBCHG)
...
TYPE(*CHAR)
...
LENGTH(1)
...
LABEL('
...
Enable CHG')
...
DEFINE FIELD(#ENBDLT)
...
TYPE(*CHAR)
...
LENGTH(1)
...
LABEL('
...
Enable DLT')
...
DEFINE FIELD(#TRUE)
...
TYPE(*CHAR)
...
LENGTH(6)
...
LABEL('
...
Action if True')
...
DEFINE FIELD(#FALSE)
...
TYPE(*CHAR)
...
LENGTH(6)
...
LABEL('
...
Action if False' )
DEFINE FIELD(#MSGDET)
...
TYPE(*CHAR)
...
LENGTH(27)
...
LABEL('
...
Message Detail')
...
DEFINE FIELD(#MSGTXT)
...
TYPE(*CHAR)
...
LENGTH(80)
...
LABEL('
...
Message Text')
...
DEFINE FIELD(#USRPGM)
...
TYPE(*CHAR)
...
LENGTH(10)
...
LABEL('
...
User program')
...
DEFINE FIELD(#PGMPRM)
...
TYPE(*CHAR)
...
LENGTH(20)
...
LABEL('
...
program parms')
DEF_
...
LIST NAME(#PRMWRK)
...
FIELDS((#PGMPRM))
...
TYPE(*WORKING)
...
ENTRYS(10)
DEF_
...
LIST NAME(#PRMBRW)
...
FIELDS((#PGMPRM))
...
ENTRYS(10)
GROUP_
...
BY NAME(#VALCHK)
...
FIELDS((#LEVEL)
...
(#FIELD)
...
(#SEQNUM)
...
(#DESCR)
...
(#ENBADD)
...
(#ENBCHG)
...
(#ENBDLT)
...
(#TRUE)
...
(#FALSE)
...
(#MSGDET)
...
(#MSGTXT)
...
(#USRPGM))
*********
...
Initialize Browse list
CLR_
...
LIST NAMED(#PRMBRW)
INZ_
...
LIST NAMED(#PRMBRW)
...
NUM_ENTRYS(10)
...
WITH_MODE(*CHANGE)
*********
...
Clear Working lists
BEGIN_LOOP
CLR_LIST NAMED(#PRMWRK)
*********
...
Request Validation check details
REQUEST FIELDS((#VALCHK))
...
BROWSELIST(#PRMBRW)
*********
...
Load key field working list
SELECTLIST NAMED(#PRMBRW)
ADD_
...
ENTRY TO_LIST(#PRMWRK)
...
ENDSELECT
*********
...
Execute Built-In Function - PUT_PROGRAM_CHECK
...
USE BUILTIN(PUT_PROGRAM_CHECK)
...
WITH_ARGS(
...
#LEVEL #FIELD #SEQNUM #DESCR #ENBADD #ENBCHG #ENBDLT #TRUE #FALSE #MSGDET #MSGTXT #USRPGM #PRMWRK) TO_GET(#RETCOD)
*********
...
Put "call user program" validation successful
IF COND('#RETCOD *EQ ''OK''')
...
MESSAGE MSGTXT('
...
Put "call user program" validation check(s)
...
was successful')
*********
...
Put "call user program" failed
ELSE
IF COND('#RETCOD *EQ ''ER''')
...
MESSAGE MSGTXT('
...
Put "call user program" validation check(s)
...
failed')
ENDIF
ENDIF
END_LOOP