9 177 PUT_DATE_CHECK

LANSA Technical

9.177 PUT_DATE_CHECK

Þ Note: Built-In Function Rules.

Creates/amends a "date range / date format" DICTIONARY or FILE level validation check into the data dictionary or file definition of the nominated field. When adding a FILE level validation check to a field, the file involved must have been previously placed into an edit session by the START_FILE_EDIT Built-In Function.

All argument values passed to this Built-In Function are validated exactly as if they had been entered through the online validation check definition screen panels.

Normal authority and task tracking rules apply to the use of this Built-In Function.

For more information refer to Field Rules and Triggers in the LANSA for i User Guide.

Þ This is a Specialized Built-In Function for use in a Development Environment only.

For use with

LANSA for i

YES

Do not use on IBM i in an RDMLX partition.

Visual LANSA for Windows

YES

 

Visual LANSA for Linux

NO

 

 

 

Arguments

No

Type

Req/ Opt

Description

Min Len

Max Len

Min Dec

Max Dec

1

A

Req

Level of validation check.

D = Dictionary level

F = File level

1

1

 

 

2

A

Req

Name of field in dictionary to which validation rule is to be applied.

1

10

 

 

3

N

Req

Sequence number of check.

1

3

0

0

4

A

Req

Description of check.

1

30

 

 

5

A

Req

Enable check for ADD.

Y = Check performed on ADD

U = Check performed on ADDUSE

N = Check not performed on ADD

1

1

 

 

6

A

Req

Enable check for CHANGE.

Y = Check performed on CHG

U = Check performed on CHGUSE

N = Check not performed on CHG

1

1

 

 

7

A

Req

Enable check for DELETE.

Y = Enable check.

N = Do not enable check.

1

1

 

 

8

A

Req

Action if check is true.

NEXT = Perform next check

ERROR  = Issue fatal error

ACCEPT = Accept value and do no more checking.

4

6

 

 

9

A

Req

Action if check is false.

NEXT = Perform next check

ERROR  = Issue fatal error

ACCEPT = Accept value and do no more checking.

4

6

 

 

10

A

Req

Message file details.

Details of error message to be issued from a message file. Message file details should be formatted as follows:

From - To   Description

1 - 7    Error Message Number

8 - 17   Message File Name

18 - 27   Message File Library
If message text is used, pass this argument as blanks.

27

27

 

 

11

A

Req

Message text.

1

80

 

 

12

A

Req

Format that date is to be validated in.

1

8

 

 

13

N

Opt

Number of days allowed into the past for specified date. If not specified, a value of 9999999 is assumed.

1

7

0

0

14

N

Opt

Number of days allowed into the future for specified date. If not specified, a value of 9999999 is assumed.

1

7

0

0

 

 

Return Values

No

Type

Req/ Opt

Description

Min Len

Max Len

Min Dec

Max Dec

1

A

Req

Return code

OK = validation check defined

ER = fatal error detected

In case of "ER" return code error message(s) are issued automatically. When a file edit session is involved it is ended automatically without commitment.

2

2

 

 

 

 

Example

A user wants to put a "date range / date format" validation check for a specific field, without going through the LANSA options provided on the "Field Control Menu", that enables the user to put a "date range / date format" validation check.

********* 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