A nonusercoded process is one whose USERCODE task attribute value is a null string. By default, a process runs without a usercode if you initiate it from a nonusercoded MARC session.
In addition, a process initiated from an ODT is nonusercoded by default unless one of the following conditions is true:
-
The ODT has been assigned a terminal usercode by the TERM (Terminal) system command. The terminal usercode is the default usercode for most processes initiated at that ODT.
However, processes initiated at an ODT by a primitive system command default to a null usercode, even if there is a terminal usercode associated with the ODT. ??COPY (Copy Files) and ??RUN (Run Code File) are two primitive system commands that initiate processes.
-
The process is a remote WFL job and the system has a host usercode. Host usercodes are assigned by the HU (Host Usercode) system command.
Note, however, that a remote WFL job runs nonusercoded if the job is initiated by an AT <hostname> START command and the host usercode of the initiating system is defined with SYSTEMUSER status at the host where the job runs.
Processes initiated by a nonusercoded process are, by default, also nonusercoded.
Processes initiated by usercoded processes are, by definition, always usercoded. It is possible for a process to assign a null usercode to a task variable that is not in use, and then initiate a process with that task variable. However, the null usercode value in the task variable is overridden by task attribute inheritance, and the new process runs with the usercode of its initiator.
It is possible for a usercoded process to be assigned a null usercode after initiation. However, only a privileged process can assign a null usercode to an in-use process. Thus, for example, a privileged process can change its own usercode to a null usercode. When the usercode of a privileged process is changed to a null usercode, the process retains its privileged status.
A privileged process can also initiate a task with a nonprivileged usercode, and then change the usercode of the task to a null while the task is running. The task then assumes nonusercoded security status. Processes that are nonusercoded from the time they are first initiated also have nonusercoded security status.
A process with nonusercoded status has the same capabilities as a nonprivileged process, with the following additions:
-
The ability to create nonusercoded files; that is, files whose TITLE file attributes begin with an asterisk (*) instead of a usercode, and whose OWNER file attribute is null.
-
The ability to initiate a nonusercoded process; that is, a process whose USERCODE task attribute value is a null string.
-
The ability to use the UNITNO file attribute, even on a system running with the security option NONPRIVUNITNO set.
Further, certain WFL statements are treated as privileged when submitted by a nonusercoded process. These statements, and other conditions affecting their privilege status, are shown in WFL Statements Executed with Privilege. This table refers to two concepts not discussed previously:
-
Single-statement WFL inputs. These are single WFL statements entered directly at an ODT, entered in CANDE or MARC with the WFL prefix, or submitted in array form by a ZIP statement in a program.
-
ODT status. This concept is defined under ODT Status later in this section.
Table 3. WFL Statements Executed with Privilege

