You can initiate a task from a CANDE session by using the RUN command. (EXECUTE is a synonym for the RUN command.) The RUN command can pass only a single string parameter to a program.
The CANDE RUN command is unique in that it usually specifies a program by its source file title rather than by its object code file title. CANDE takes the file title specified in the RUN command and looks for an object code file with the same title, except that the object code file title is prefixed by OBJECT/. For example, the object code file OBJECT/TEST can be initiated by the command RUN TEST.
However, if you prefix the file title with a dollar sign ($), then CANDE interprets the file title as an object code file title. You can use this form of the RUN statement to initiate programs whose object code file title does not begin with OBJECT/. An example of such a command is RUN $ACCOUNTS/INPUT, which initiates the object code file named ACCOUNTS/INPUT.
CANDE also assumes that the file title is an object code file title if the file title is nonusercoded. You can indicate that a file title is nonusercoded by including an asterisk (*) at the start of the title. For example, you can initiate an object code file titled *SYSTEM/FILEDATA with the command RUN *SYSTEM/FILEDATA.
If you omit the file title from the RUN statement, CANDE assumes the current work file is the source program. If no object code file with the related file title exists, or if the object code file does not reflect recent changes to the work file, then CANDE automatically compiles the work file and executes the resulting object code file.
The task is asynchronous. (That is, it runs in parallel with the CANDE software that initiated it.) However, the process appears to the user to be a synchronous task because most CANDE commands are not available while the task is running. Only control commands (commands, such as ?Y, that start with a question mark) can be used. It is not possible to issue file maintenance or editing commands or to initiate another task until the first task terminates.
An alternative to the RUN command is the UTILITY command. The UTILITY command behaves like the RUN command in most respects. However, the UTILITY command enables you to append to it unquoted text that is passed as a string parameter to the program. If you do not append any text, the UTILITY command passes an empty string parameter. The following are examples of UTILITY commands and the equivalent RUN commands:
U DAILY UPDATE OUTPUT = PRINTER RUN DAILY/UPDATE(“OUTPUT=PRINTER”) U DAILY UPDATE RUN DAILY/UPDATE(““)
The UTILITY command also automatically passes certain task equations and file equations to the program initiated. These equations make it possible for the program to use the unsaved work file, work source, or work object associated with the session. Certain utilities, such as the Editor, are designed to accept these task and file equations. Such programs must be initiated with the UTILITY command instead of the RUN command. For details about the task and file equations that are passed, refer to the UTILITY command discussion in the CANDE Operations Reference Manual.

