Overriding files (printer files, display files, diskette files, database files, and tape files) can be done by commands, from CL programs, or from high-level language programs. Overrides can be called from different levels (programs calling another program). This page discusses overriding printer files.
Overrides are used to temporarily specify a different printer file or temporarily change some of the attributes of a file. An override is only active for the current sign on session. As soon as you end your session or use the Delete Override (DLTOVR) command, the override is no longer active.
Override commands can be entered interactively from a display station or as part of a batch job. They might be included in a control language (CL) program, or they might be issued from other programs through a call to the program QCMDEXC. Regardless of how they are issued, overrides remain in effect only for the job, program, or sign on session in which they are issued. Overrides have no effect on other jobs that might be running at the same time.
Overrides are particularly useful for making minor changes to the way a program functions or for selecting the data on which it operates, without having to recompile the program. Their principal value is in allowing you to use general purpose programs in a wider variety of circumstances. Examples of items where overrides can be used are:
It is also possible to use overrides to direct data input or data that is sent to a device of a different type. For example, sending data that is intended for a diskette to a printer instead. This use of overrides requires somewhat more foresight than the override applications listed above. The program must be able to accommodate the different characteristics of the two devices involved. For information about the special considerations that are required for overrides that change the file type or redirect files, see the Distributed Data Management topic.
Files are associated with an application program by the file names specified in the program when it is created. You can override these file names or attributes of a specified file when you compile a program or run a program. The system supplies three override functions: applying overrides, deleting overrides, and displaying overrides. You can process override functions for files using the following CL commands:
You can use overrides to change most, but not all, of the file attributes that are specified when the file is created. In some cases, you can specify attributes in overrides that are not part of the original file definition. Refer to the command descriptions for more information.
Overriding a file is different from changing a file in that an override does not permanently change the attributes of a file. For example, if you override the number of copies specified in a printer file by requesting six copies instead of two, the file description for the printer file still specifies two copies, but six copies are printed. The override command tells the system which file to open and what its file attributes are.
CL program override considerations
If a CL program overrides a file and then calls a high-level language program, the override remains in effect for the high-level language program. However, if a high-level language program calls a CL program that overrides a file, the override is deleted automatically when control returns to the high-level language program.High-level language program:
CALL CLPGM1CL program:
OVRPRTF FILE(PRTF1) TOFILE(MSTOUT) . . . ENDPGMHigh-level language program:
OPEN PRTF1The file opened is PRTF1, not MSTOUT. This is because the override in the CL program is deleted when the CL program ends.
Securing printer files
You might want to prevent the person or program that calls your program from changing the printer file names or parameters you have specified.You can prevent additional printer file overrides by specifying SECURE(*YES) on the printer file override command for each printer file you want to protect from overrides.