9.169 PUT_FILE_CHECK

LANSA

9.169 PUT_FILE_CHECK


Þ 注:組み込み関数の規則

指定されたフィールドのデータ・ディクショナリ(またはファイル定義)に、DICTIONARY(またはFILE)レベルの「コード/テーブル・ファイル検索」の妥当性検査を作成/修正します。

フィールドにファイル・レベルの妥当性検査を追加する場合、関連するファイルは事前に組み込み関数START_FILE_EDITで編集セッションに投入しておく必要があります。

この組み込み関数に渡されるすべての引数値は、その値がオンライン妥当性検査定義のスクリーン・パネルを通じて入力された場合と同じように有効な値です。

この組み込み関数の使用には、通常の権限とタスク追跡ルールが適用されます。

詳細については、『LANSA/AD ユーザーガイド』「フィールド妥当性検査」 を参照してください。

Þこれは、 開発環境のみで使用される特殊BIF です。

各製品の対応

LANSA/AD

使用可

IBM iのRDMLX区画では使用しないでください。

Visual LANSA for Windows

使用可

 

Visual LANSA for UNIX/Linux

未対応 

 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

妥当性検査のレベル

D = ディクショナリ・レベル

F = ファイル・レベル

1

1

 

 

2

A

必須

妥当性検査のルールを適用するディクショナリ内のフィールド名

1

10

 

 

3

N

必須

検査の順序番号

1

3

0

0

4

A

必須

検査の記述

1

30

 

 

5

A

必須

追加(ADD)時の検査を有効にする

Y = 追加(ADD)時に検査を実行する

U = 追加使用(ADDUSE)時に検査を実行する

N = 追加(ADD)時に検査を実行しない

1

1

 

 

6

A

必須

変更(CHANGE)時の検査を有効にする

Y = 変更(CHG)時に検査を実行する

U = 変更使用(CHGUSE)時に検査を実行する

N = 変更(CHG)時に検査を実行しない

1

1

 

 

7

A

必須

削除(DELETE)時の検査を有効にする

Y = 検査を有効にする

N = 検査を有効にしない

1

1

 

 

8

A

必須

検査がTRUEのときの対応

NEXT = 次の検査を実行する

ERROR = 致命的なエラーを送信する

ACCEPT = 値を受け入れ、検査を終了する

4

6

 

 

9

A

必須

検査が偽のときの対応

NEXT = 次の検査を実行する

ERROR = 致命的なエラーを送信する

ACCEPT = 値を受け入れ、検査を終了する

4

6

 

 

10

A

必須

メッセージ・ファイル詳細

メッセージ・ファイルから送信されるエラー・メッセージの詳細です。

メッセージ・ファイルの詳細は次のようなフォーマットにする必要があります。

開始 - 終了 説明

1 - 7 エラー・メッセージ番号

8 - 17 メッセージ・ファイル名

18 - 27 メッセージ・ファイル・ライブラリ

メッセージ・テキストを使用する場合は、この引数をブランクで渡します。

27

27

 

 

11

A

必須

メッセージ・テキスト

1

80

 

 

12

A

必須

検査されるファイルの名前

1

10

 

 

13

L

必須

ファイル内を検査する時に使用するキー・フィールド/値を含めるリスト

呼び出し元のRDMLファンクションは、項目の長さの合計が正確に20バイトで、かつキー・フィールド/値が最大で10エントリー指定できる作業リストを提供しなければなりません。

送信する各リスト項目は、次のような形式にする必要があります。

開始 - 終了 説明

1 - 20 キー・フィールド/値

1

20

 

 

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

戻りコード

OK = 妥当性検査が定義された

ER = 致命的なエラーが検出された

"ER" の場合は、戻りコード・エラー・メッセージが自動的に発行されます。ファイル編集セッションが関係していた場合、ファイル編集セッションはコミットメントされずに終了します。

2

2

 

 

ユーザーは、フィールド制御メニューに提供されたLANSAオプションで「コード/テーブル・ファイル検索」妥当性検査を追加できますが、これを使わずに特定のフィールドの「コード/テーブル・ファイル検索」妥当性検査を追加する場合は次のように行います。

********* Define arguments and lists
DEFINE     FIELD(#FILNAM) TYPE(*CHAR) LENGTH(10)
DEFINE     FIELD(#LIBNAM) TYPE(*CHAR) LENGTH(10)
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(#CODFIL) TYPE(*CHAR) LENGTH(10) LABEL('File name')
DEFINE     FIELD(#KEYFLD) TYPE(*CHAR) LENGTH(20) LABEL('Key field')
DEF_LIST   NAME(#KEYWRK) FIELDS((#KEYFLD)) TYPE(*WORKING) ENTRYS(10)
DEF_LIST   NAME(#KEYBRW) FIELDS((#KEYFLD)) ENTRYS(10)
GROUP_BY   NAME(#VALCHK) FIELDS((#LEVEL) (#FIELD) (#SEQNUM) (#DESCR) (#ENBADD) (#ENBCHG) (#ENBDLT) (#TRUE) (#FALSE) (#MSGDET) (#MSGTXT) (#CODFIL))
*********  Initialize Browse list
CLR_LIST   NAMED(#KEYBRW)
INZ_LIST   NAMED(#KEYBRW) NUM_ENTRYS(10) WITH_MODE(*CHANGE)
*********  Start file edit
REQUEST    FIELDS(#FILNAM #LIBNAM)
**********      
USE        BUILTIN(START_FILE_EDIT) WITH_ARGS(#FILNAM #LIBNAM 'DEM') TO_GET(#RETCOD)
*********  Clear Working lists
BEGIN_LOOP      
CLR_LIST   NAMED(#KEYWRK)
*********  Request Validation check details
REQUEST    FIELDS((#VALCHK)) BROWSELIST(#KEYBRW)
*********  Load key field working list
SELECTLIST NAMED(#KEYBRW)
ADD_ENTRY  TO_LIST(#KEYWRK)
ENDSELECT      
*********  Execute Built-In Function - PUT_FILE_CHECK
USE        BUILTIN(PUT_FILE_CHECK) WITH_ARGS(#LEVEL #FIELD #SEQNUM #DESCR #ENBADD #ENBCHG #ENBDLT #TRUE #FALSE #MSGDET #MSGTXT #CODFIL #KEYWRK) TO_GET(#RETCOD)
*********  Put "code/table file lookup" validation successful
IF         COND('#RETCOD *EQ ''OK''')
MESSAGE    MSGTXT('Put "code/table file lookup" validation check(s) was successful')
*********  Put "code/table file lookup" failed
ELSE      
IF         COND('#RETCOD *EQ ''ER''')
MESSAGE    MSGTXT('Put "code/table file lookup" validation check(s) failed')
ENDIF      
ENDIF      
END_LOOP      
USE        BUILTIN(END_FILE_EDIT) ('Y')