9.155 PUT_DATE_CHECK

注意 9.1 組み込み関数の規則     利用オプション

指定されたフィールドのデータ・ディクショナリ(またはファイル定義)に、DICTIONARY(またはFILE)レベルの「日付範囲/日付形式」の妥当性検査を作成/修正します。フィールドにファイル・レベルの妥当性検査を追加する場合、関連するファイルは事前に組み込み関数 START_FILE_EDITで編集セッションに投入しておく必要があります。 

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

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

詳細については、『LANSA/AD ユーザーガイド』フィールドのルールとトリガーを参照してください。

この BIF は、9.2 開発環境のみで使用される組み込み関数 です。

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

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

8



13

N

任意

指定の日付から過去に向かって許容される日数

指定がない場合、値は9999999が仮定されます。

1

7

0

0

14

N

任意

指定の日付から未来に向かって許容される日数

指定がない場合、値は9999999が仮定されます。

1

7

0

0

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

戻りコード

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

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

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

2

2



ユーザーは、フィールド制御メニューに提供された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(#DATFMT) TYPE(*CHAR) LENGTH(8) LABEL('Date format')
DEFINE    FIELD(#DAYPST) TYPE(*DEC) LENGTH(7) DECIMALS(0) LABEL('Days Past')
DEFINE    FIELD(#DAYFUT) TYPE(*DEC) LENGTH(7) DECIMALS(0) LABEL('Days Future')
GROUP_BY  NAME(#VALCHK) FIELDS((#LEVEL) (#FIELD) (#SEQNUM) (#DESCR) (#ENBADD) (#ENBCHG) (#ENBDLT) (#TRUE) (#FALSE) (#MSGDET) (#MSGTXT) (#DATFMT) (#DAYPST) (#DAYFUT))
********* Request Validation check details
BEGIN_LOOP              
REQUEST   FIELDS((#VALCHK))
********* Execute Built-In Function - PUT_DATE_CHECK
USE       BUILTIN(PUT_DATE_CHECK) WITH_ARGS(#LEVEL #FIELD #SEQNUM #DESCR #ENBADD #ENBCHG #ENBDLT #TRUE #FALSE #MSGDET #MSGTXT #DATFMT #DAYPST #DAYFUT) TO_GET(#RETCOD)
********* Put "date range/format" validation check was successful
IF        COND('#RETCOD *EQ ''OK''')
MESSAGE   MSGTXT('Put "date range/format" validation check(s) was successful')
********* Put "date range/format" failed
ELSE             
IF        COND('#RETCOD *EQ ''ER''')
MESSAGE   MSGTXT('Put "date range/format" validation check(s) failed')
ENDIF              
ENDIF              
END_LOOP