The DEFINE command allows you to assign the same logical name to more than one equivalence name. For example, you can use the same logical name to access different directories on different disks or to access different files in different directories.
When you specify more than one equivalence name for a logical name, you create a search list. See the OpenVMS User's Manual for more information on search lists.
The DEFINE command creates an entry in a logical name table by defining a logical name to stand for one or more equivalence names. An equivalence name can be a device name, another logical name, a file specification, or any other string.To specify the logical name table where you want to enter a logical name, use the /PROCESS, the /GROUP, the /SYSTEM, the /JOB, or the /TABLE qualifier. If you enter more than one of these qualifiers, only the last one entered is accepted. If you do not specify a table, the default is the /TABLE=LNM$PROCESS qualifier.
To specify the access mode of the logical name you are creating, use the /USER_MODE, the /SUPERVISOR_MODE, or the /EXECUTIVE_MODE qualifier. If you enter more than one of these qualifiers, only the last one entered is accepted. If you do not specify an access mode, a supervisor-mode name is created. You can create a logical name in the same mode as the table in which you are placing the name, or in an outer mode. (User mode is the outermost mode; executive mode is the innermost mode.)
You can enter more than one logical name with the same name in the same table, as long as each name has a different access mode. (However, if an existing logical name within a table has the NO_ALIAS attribute, you cannot use the same name to create a logical name in an outer mode in this table.)
If you create a logical name with the same name, in the same table, and in the same mode as an existing name, the new logical name assignment replaces the existing assignment.
You can also use the ASSIGN command to create logical names. To delete a logical name from a table, use the DEASSIGN command.
Note
Avoid assigning a logical name that matches the file name of an executable image in SYS$SYSTEM:. Such an assignment prohibits you from invoking that image.
For additional information on how to create and use logical names, see the OpenVMS User's Manual.
/EXECUTIVE_MODE
Requires SYSNAM (system logical name) privilege to create an executive-mode logical name.Creates an executive-mode logical name in the specified table.
If you specify the /EXECUTIVE_MODE qualifier and you do not have SYSNAM privilege, the DEFINE command ignores the qualifier and creates a supervisor-mode logical name. The mode of the logical name must be the same or less privileged than the mode of the table in which you are placing the name.
/GROUP
Requires GRPNAM (group logical name) or SYSNAM (system logical name) privilege to place a name in the group logical name table.Places the logical name in the group logical name table. Other users who have the same group number in their user identification codes (UICs) can access the logical name. The /GROUP qualifier is synonymous with the /TABLE=LNM$GROUP qualifier.
/JOB
Places the logical name in the jobwide logical name table. All processes in the same job tree as the process that created the logical name can access the logical name. The /JOB qualifier is synonymous with the /TABLE=LNM$JOB qualifier./LOG (default)
/NOLOG
Displays a message when a new logical name supersedes an existing name./NAME_ATTRIBUTES[=(keyword[,...])]
Specifies attributes for a logical name. By default, no attributes are set. Possible keywords are as follows:
CONFINE The logical name is not copied into a spawned subprocess. This qualifier is relevant only for logical names in a private table. The logical name inherits the CONFINE attribute from the logical name table where it is entered; if the logical name table is "confined," then all names in the table are "confined."
NO_ALIAS A logical name cannot be duplicated in the specified table in a less privileged access mode; any previously created identical names in an outer (less privileged) access mode within the specified table are deleted. If you specify only one keyword, you can omit the parentheses. Only the attributes you specify are set.
/PROCESS (default)
Places the logical name in the process logical name table. The /PROCESS qualifier is synonymous with the /TABLE=LNM$PROCESS qualifier./SUPERVISOR_MODE (default)
Creates a supervisor-mode logical name in the specified table. The mode of the logical name must be the same as or less privileged than the mode of the table in which you are placing the name./SYSTEM
Requires write (W) access or SYSNAM (system logical name) privilege to place a name in the system logical name table.Places the logical name in the system logical name table. All system users can access the logical name. The /SYSTEM qualifier is synonymous with the /TABLE=LNM$SYSTEM qualifier.
/TABLE=name
Requires write (W) access to the table to specify the name of a shareable logical name table.Specifies the name of the logical name table in which the logical name is to be entered. You can use the /TABLE qualifier to specify a user-defined logical name table (created with the CREATE/NAME_TABLE command); to specify the process, job, group, or system logical name tables; or to specify the process or system logical name directory tables.
If you specify the table name using a logical name that has more than one translation, the logical name is placed in the first table found. For example, if you specify DEFINE/TABLE=LNM$FILE_DEV and LNM$FILE_DEV is equated to LNM$PROCESS, LNM$JOB, LNM$GROUP, and LNM$SYSTEM, then the logical name is placed in LNM$PROCESS.
The default is the /TABLE=LNM$PROCESS qualifier.
/TRANSLATION_ATTRIBUTES[=(keyword[,...])]
Equivalence-name qualifier.Specifies one or more attributes that modify an equivalence string of the logical name. Possible keywords are as follows:
CONCEALED Indicates that the equivalence string is the name of a concealed device. When a concealed device name is defined, the system displays the logical name, rather than the equivalence string, in messages that refer to the device. TERMINAL Logical name translation should terminate with the current equivalence string; indicates that the equivalence string should not be translated iteratively. If you specify only one keyword, you can omit the parentheses. Only the attributes you specify are set.
Note that different equivalence strings of a logical name can have different translation attributes.
/USER_MODE
Creates a user-mode logical name in the specified table.User-mode logical names created within the process logical name tables are used for the execution of a single image; for example, you can create a user-mode logical name to allow an image executing in a command procedure to redefine SYS$INPUT. User-mode entries are deleted from the process logical name table when any image executing in the process exits (that is, after a DCL command or user program that executes an image completes execution). Also, user-mode logical names are automatically deleted when invoking and exiting a command procedure.
#1
$ DEFINE/USER_MODE TM1 $DISK1:[ACCOUNTS.MEMOS]WATER.TXT
#2In this example, the DEFINE command defines TM1 as equivalent to a file specification. After the next image runs, the logical name TM1 is automatically deassigned.
$ DEFINE CHARLIE XXX1:[CHARLES] $ PRINT CHARLIE:TEST.DAT Job 274 entered on queue SYS$PRINT
#3In this example, the DEFINE command associates the logical name CHARLIE with the directory name [CHARLES] on the disk XXX1. The PRINT command queues a copy of the file XXX1:[CHARLES]TEST.DAT to the system printer.
$ DEFINE PROCESS_NAME LIBRA $ RUN WAKE
#4In this example, the DEFINE command places the logical name PROCESS_NAME in the process logical name table with an equivalence name of LIBRA. The logical name is created in supervisor mode. The program WAKE translates the logical name PROCESS_NAME to perform some special action on the process named LIBRA.
$ DEFINE TEMP: XXX1: . . . $ DEASSIGN TEMP::
#5In this example, the DEFINE command creates an equivalence name for the logical name TEMP: and places the name in the process logical name table. The colon is retained as part of the logical name. The DEASSIGN command deletes the logical name. Note that two colons are required on the logical name in the DEASSIGN command. One colon is deleted by the DEASSIGN command. The other colon is kept as part of the logical name.
$ DEFINE PORTLAND PRTLND::YYY0:[DECNET.DEMO.COM]
#6In this example, the DEFINE command places the logical name PORTLAND in the process logical name table with an equivalence name of PRTLND::YYY0:[DECNET.DEMO.COM]. Subsequent references to the logical name PORTLAND result in the correspondence between the logical name PORTLAND and the node, disk, and subdirectory specified.
$ DEFINE LOCAL "BOSTON""JOHN_SMITH JKS""::"
#7In this example, the DEFINE command places the logical name LOCAL in the process logical name table with a remote node equivalence name of BOSTON"JOHN_SMITH JKS"::. To satisfy conventions for local DCL command string processing, you must use three sets of quotation marks. The quotation marks ensure that access control information is enclosed in one set of quotation marks in the equivalence name.
$ DEFINE MYDISK XXX0:[MYDIR], YYY0:[TESTDIR]
#8In this example, the DEFINE command places the logical name MYDISK in the process logical name table with two equivalence names: XXX0:[MYDIR] and YYY0:[TESTDIR].
$ CREATE/NAME_TABLE TABLE1 $ DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV - _$ TABLE1,LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM $ DEFINE/TABLE=TABLE1 - _$ /TRANSLATION_ATTRIBUTES=CONCEALED WORK_DISK DBA1:
#9In this example, the CREATE/NAME_TABLE command creates the process private logical name table TABLE1.
The first DEFINE command ensures that TABLE1 is searched first in any logical name translation of a device or file specification (because TABLE1 is the first item in the equivalence string for the logical name LNM$FILE_DEV, which determines the default search sequence of logical name tables whenever a device or file specification is translated).
The second DEFINE command assigns the logical name WORK_DISK to the physical device DBA1 and places the name in TABLE1. The logical name has the concealed attribute. Therefore, the logical name WORK_DISK is displayed in system messages.
$ CREATE/NAME_TABLE SPECIAL $ DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV - _$ SPECIAL,LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM $ DEFINE/TABLE=LNM$PROCESS_DIRECTORY TAB SPECIAL $ DEFINE/TABLE=TAB REPORT [CHELSEA]STORES $ SHOW LOGICAL/TABLE=SPECIAL REPORT "REPORT" = "[CHELSEA]STORES" (SPECIAL)
In this example, the CREATE/NAME_TABLE command is used to create a new logical name table called SPECIAL. This table is defined in the process directory, LNM$PROCESS_DIRECTORY.
The first DEFINE command ensures that SPECIAL is searched first in any logical name translation of a device or file specification (because SPECIAL is the first item in the equivalence string for the logical name LNM$FILE_DEV, which determines the default search sequence of logical name tables whenever a device or file specification is translated). The logical name LNM$FILE_DEV is placed in the process directory, LNM$PROCESS_DIRECTORY.
With the next DEFINE command, a new logical name, TAB, is defined. TAB translates to the string SPECIAL, which identifies a logical name table. You must define TAB in the process directory because it translates iteratively to a logical name table.
Next, the logical name REPORT is placed into the logical name table TAB. Because TAB translates to the table SPECIAL, the name REPORT is entered into SPECIAL table. The SHOW LOGICAL command verifies that the name REPORT has been entered into the table SPECIAL.
Note that you can redefine TAB so it translates to a different table. Therefore, if you run different programs that use the name TAB as a table name, you can change the actual tables where the names are entered or referenced.
Assigns a numeric value to a queue characteristic. The /CHARACTERISTIC qualifier is required. If a value has been assigned to the characteristic, you must delete and redefine the characteristic to alter the assignment of the existing characteristic.Requires OPER (operator) privilege.
Note
You cannot define more than one characteristic name to a number.
DEFINE/CHARACTERISTIC characteristic-name characteristic-number
characteristic-name
Assigns a name to the characteristic being defined. The characteristic name can be the name of an existing characteristic or a string of 1 to 31 characters that defines a new characteristic. The character string can include any uppercase and lowercase letters, digits, the dollar sign ($), and the underscore (_), and must include at least one alphabetic character. Only one characteristic name can be defined to each number.characteristic-number
Assigns a number in the range 0 to 127 to the characteristic being defined.
The system manager or operator uses the DEFINE/CHARACTERISTIC command to assign a name and number to a particular characteristic for queues in the system. Characteristics can refer to any attribute of a print or batch job that is meaningful for your environment. The name and number of a characteristic are arbitrary, but they must be unique for that characteristic.
Note
Prior to OpenVMS Version 6.0, the DEFINE/CHARACTERISTIC command allowed you to define more than one characteristic name to a number, although this capability was unsupported.The DEFINE/CHARACTERISTIC command no longer allows you to define more than one characteristic name to a number. However, if your queue configuration requires you to have more than one characteristic name for a single number, you can define logical names to achieve the same result. For example, you might enter the following commands:
$ DEFINE/CHARACTERISTIC SECOND_FLOOR 2 $ DEFINE/SYSTEM/EXECUTIVE_MODE SALES_FLOOR SECOND_FLOOR $ DEFINE/SYSTEM/EXECUTIVE_MODE SALES_DEPT SECOND_FLOORIn this example, the characteristic name SECOND_FLOOR is assigned to the characteristic number 2. The logical names SALES_FLOOR and SALES_DEPT are then defined as equivalent to the characteristic name SECOND_FLOOR. As a result, the logical names SALES_FLOOR and SALES_DEPT are each equivalent to the characteristic name SECOND_FLOOR and the characteristic number 2. These logical names can be specified as the characteristic-name value for any /CHARACTERISTIC=characteristic-name qualifier.
In an OpenVMS Cluster environment, you must define the logical names on every node that requires them.
After characteristics have been defined, they can be associated with print or batch jobs and execution queues. For information on specifying characteristics with jobs, see the description of the /CHARACTERISTICS qualifier of the PRINT and SUBMIT commands.
To find out what characteristics are currently defined for the system, use the SHOW QUEUE/CHARACTERISTICS command. To find out which characteristics have been specified for a particular queue, use the SHOW QUEUE/FULL command. For information on associating characteristics with queues, see the descriptions of the /CHARACTERISTICS qualifier of the INITIALIZE/QUEUE, SET QUEUE, and START/QUEUE commands.
The DELETE/CHARACTERISTIC command deletes a previously defined characteristic.
For more information on specifying queue characteristics, see the OpenVMS System Manager's Manual.
$ DEFINE/CHARACTERISTIC REDINK 3
The DEFINE/CHARACTERISTIC command in this example defines the characteristic REDINK with the number 3. When a user enters the command PRINT/CHARACTERISTICS=REDINK (or PRINT /CHARACTERISTICS=3), the job is printed only if the printer queue has been established with the REDINK or 3 characteristic.
Assigns a numeric value and attributes to a print form name. The /FORM qualifier is required. To modify a form's name or number, you must delete and redefine the form. Values for any DEFINE/FORM qualifier can be modified by re-entering the DEFINE/FORM command with different values, as long as the form name and number remain the same.Requires OPER (operator) privilege.
DEFINE/FORM form-name form-number
form-name
Assigns a name to the form being defined. The form name can be the name of an existing form type or a string of 1 to 31 characters that defines a new form type. The character string can include any uppercase and lowercase letters, digits, the dollar sign ($), and the underscore (_), and must include at least one alphabetic character.form-number
Assigns a number in the range 0 to 9999 to the form being defined. The DEFAULT form, which is defined automatically when the system is bootstrapped, is assigned number zero.
The system manager or operator uses the DEFINE/FORM command to assign a name and number to a type of paper stock and printing area for use with printer or terminal queues. When a new queue file is created, the system defines a form named DEFAULT with a form number of zero and all the default attributes.Some DEFINE/FORM qualifiers specify the area for printing. The LEFT and RIGHT options of the /MARGIN qualifier and the /WIDTH qualifier determine the number of characters per line. Using the RIGHT option of the MARGIN qualifier and the /WIDTH qualifier, you can affect the point at which lines of text wrap. (You cannot use the LEFT and RIGHT options of the /MARGIN qualifier and the /WIDTH qualifier for filling or formatting the text, however.)
You also can use the DEFINE/FORM command to specify different types of paper stock. The /DESCRIPTION qualifier enables you to describe more fully the form name.
After forms have been defined, they can be associated with print jobs and output execution queues. For information on specifying forms with jobs, see the description of the PRINT/FORM command.
To find out what forms have been defined for the system, use the SHOW QUEUE/FORM command. To find out which form is mounted currently on a particular queue and which form is specified as that queue's default form, use the SHOW QUEUE/FULL command. For information on associating forms with queues, see the descriptions of the /DEFAULT and /FORM_MOUNTED qualifiers of the INITIALIZE/QUEUE, SET QUEUE, and START/QUEUE commands.
For more information on how to use forms to control print jobs, see the OpenVMS System Manager's Manual.
/DESCRIPTION=string
A string of up to 255 characters used to provide operator information about the form. The default string is the specified form name.The string can be used to define the form type more specifically. For example, if you have form names such as LETTER1, LETTER2, and LETTER3, the /DESCRIPTION qualifier could be used to let the users and operators know that LETTER1 refers to the standard corporate letterhead paper (8.5 inches x 11 inches), LETTER2 refers to the smaller corporate letterhead paper (6 inches x 9 inches), and LETTER3 refers to the president's personalized letterhead paper.
Enclose strings containing lowercase letters, blanks, or other nonalphanumeric characters (including spaces) in quotation marks (" ").
/LENGTH=n
Specifies the physical length of a form page in lines. The default page length is 66 lines, which assumes a standard page length of 11 inches with 6 lines of print per inch. The parameter n must be a positive integer greater than zero and not more than 255.The print symbiont sets the page length of the device equal to the form length. This enables the driver to compute the number of line feeds for devices lacking mechanical form feed.
/MARGIN=(option[,...])
Specifies one or more of the four margin options: BOTTOM, LEFT, RIGHT, and TOP.
BOTTOM=n Specifies the number of blank lines between the end of the print image area and the end of the physical page; the value of n must be between 0 and the value of the /LENGTH qualifier. The default value is 6, which generally means a 1-inch bottom margin. LEFT=n Specifies the number of blank columns between the leftmost printing position and the print image area; the value of n must be between 0 and the value of the /WIDTH qualifier. The default is 0, which means that the print image area starts as far to the left of the paper as the printer can go. RIGHT=n Specifies the number of blank columns between the /WIDTH qualifier and the image area; the value of n must be between 0 and the value of the /WIDTH qualifier. When determining the value of the RIGHT option, start at the /WIDTH value and count to the left. The default value is 0, which means that the print image extends as far to the right as the /WIDTH value. TOP=n Specifies the number of blank lines between the top of the physical page and the top of the print image; the value of n must be between 0 and the value of the /LENGTH qualifier. The default value is 0, which generally means that there is no top margin. /PAGE_SETUP=(module[,...])
/NOPAGE_SETUP (default)
Specifies one or more modules that set up the device at the start of each page. The modules are located in the device control library. While the form is mounted, the system extracts the specified module and copies it to the printer before each page is printed./SETUP=(module[,...])
Specifies one or more modules that set up the device at the start of each file. The modules are located in the device control library. While the form is mounted, the system extracts the specified module and copies it to the printer before each file is printed.For more information on device control modules, see the chapter on Batch and Print Operations in the OpenVMS System Manager's Manual.
/SHEET_FEED
/NOSHEET_FEED (default)
Specifies that print jobs pause at the end of every physical page so that a new sheet of paper can be inserted./STOCK=string
Specifies the type of paper stock to be associated with the form. The string parameter can be a string of 1 to 31 characters, including the dollar sign, underscore, and all alphanumeric characters. If you specify the /STOCK qualifier you must specify the name of the stock to be associated with the form. If you do not specify the /STOCK qualifier, the name of the stock will be the same as the name of the form.You can create any string that you want. However, when you are creating forms with the same stock, be sure that the /STOCK string is identical in all the DEFINE/FORM commands that refer to the same type of paper.
If you are defining a number of forms to provide different formatting options, specify the same stock type for each form. Jobs that request any of these forms will print on the same queue. If you want to modify the stock string associated with a form, you can do this only if the form is not referenced by any job or queue.
/TRUNCATE (default)
/NOTRUNCATE
Discards any characters that exceed the current line length (specified by the /WIDTH and /MARGIN=RIGHT qualifiers). The /TRUNCATE qualifier is incompatible with the /WRAP qualifier. If you specify both the /NOTRUNCATE and /NOWRAP qualifiers, the printer prints as many characters on a line as possible. This combination of qualifiers is useful for some types of graphics output./WIDTH=n
Specifies the physical width of the paper in terms of columns or character positions. The parameter n must be an integer from 0 to 65,535; the default value is 132.Any lines exceeding this value wrap if the /WRAP qualifier is in effect or are truncated if the /TRUNCATE qualifier is in effect. (If both the /NOTRUNCATE and /NOWRAP qualifiers are in effect, lines print as far as possible.)
The /MARGIN=RIGHT qualifier overrides the /WIDTH qualifier when determining when to wrap lines of text.
/WRAP
/NOWRAP (default)
Causes lines that exceed the current line length (specified by the /WIDTH and /MARGIN=RIGHT qualifiers) to wrap onto the next line. The /WRAP qualifier is incompatible with the /TRUNCATE qualifier. If you specify both the /NOWRAP and /NOTRUNCATE qualifiers, the printer prints as many characters on a line as possible. This combination of qualifiers is useful for some types of graphics output.
$ DEFINE/FORM /MARGIN=(TOP=6,LEFT=10) CENTER 3
The DEFINE/FORM command in this example defines the form CENTER to have a top margin of 6 and a left margin of 10. The defaults remain in effect for both bottom margin (6) and right margin (0). The form is assigned the number 3.
Associates an equivalence string and a set of attributes with a key on the terminal keyboard.
DEFINE/KEY key-name equivalence-string
key-name
Specifies the name of the key that you are defining. All definable keys on VT52 terminals are located on the numeric keypad. On VT100-series terminals, you can define the left and right arrow keys as well as all the keys on the numeric keypad. On terminals with LK201 keyboards, the following three types of keys can be defined:
- Keys on the numeric keypad
- Keys on the editing keypad (except the up and down arrow keys)
- Keys on the function key row across the top of the keyboard (except keys F1 to F5)
The following table lists the key names in column one. The remaining three columns indicate the key designations on the keyboards of the three different types of terminals that allow key definitions.
Key Name LK201 VT100-Series VT52 PF1 PF1 PF1 [blue] PF2 PF2 PF2 [red] PF3 PF3 PF3 [gray] PF4 PF4 PF4 - - KP0, KP1, ..., KP9 0, 1, ..., 9 0, 1, ..., 9 0, 1, ..., 9 Period . . . Comma , , n/a Minus - - n/a Enter Enter ENTER ENTER Left <- <- <- Right -> -> -> Find (E1) Find --- --- Insert Here (E2) Insert Here --- --- Remove (E3) Remove --- --- Select (E4) Select --- --- Prev Screen (E5) Prev Screen --- --- Next Screen (E6) Next Screen --- --- Help Help --- --- Do Do --- --- F6, F7, ..., F20 F6, F7, ..., F20 --- ---
Previous | Next | Contents | [Home] | [Comments] | [Ordering info] | [Help]
![]()
9996P009.HTM OSSG Documentation 26-NOV-1996 11:17:05.47Copyright © Digital Equipment Corporation 1996. All Rights Reserved.