Note: Built-In Function Rules Usage Options
Creates/amends a "code/table file lookup" 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.
Arguments
|
Return Values
|
Example
A user wants to put a "code/table file lookup" 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 "code / table file lookup" validation check.
********* 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')