The IF EXIST statement determines the existence of a specified file.
••••• IF EXIST ••• •••••••• FAIL
• CACHE? •
(1) (2) (3) (4) (5)
(2) Application ID
(3) File name
(4) Fail action (0=nothing, 1=warning, 2=error, 3=cancel)
(5) Cache? (Y=cache version, N=disk version)
The next true/false status indicator is set to T if the file exists, and to F if it does not. If the file does not currently exist, the FAIL parameter determines what additional action to take. In addition, on a false condition, the predefined field STATUS CODE returns a token indicating the reason for an I/O command failure. This token can be used as a key to read the system message file to obtain a descriptive I/O error message (see STATUS CODE for details).
The application ID and file name to locate are specified in the statement. Additional information that can affect the location of the file may be contained in the predefined fields DATABASE or NEXT DATABASE.
The file name references a file that is defined in the data dictionary of the specified application ID. You can set the NEXT DATABASE predefined field to the database ID of the database in which the file should be located.
If NEXT DATABASE is blank, the DATABASE predefined field is used. The NEXT DATABASE field is set to blank by the IF EXIST statement, regardless of whether or not the file was successfully located.
Serious problems encountered while trying to open the file, such as a file structure/data dictionary mismatch, cause a non-recoverable runtime error to occur, regardless of the FAIL parameter.
DATABASE, NEXT DATABASE
CLOSE, CREATE, OPEN, SCRATCH
In the example below, the General Ledger Parameters file is accessed to determine if it exists. If it does not exist, an error is displayed or printed; if it does exist, the record is read; and if the record does not exist, an error is displayed or printed.
PARAM KEEP HIST CALEND EQ 0
T IF EXIST TGL PARAM FAIL 0 CACHE? N
TF ERROR General Ledger Parameters File Does Not Exist
TT READ TGL PARAM HOLD 0 FT 0 BY
TTF ERROR General Ledger Parameters Record Not on File