STACK - Place Data/Commands on the Stack

#### Search Results

Search

# STACK - Place Data/Commands on the Stack

This Natural profile parameter is used to place data/commands on the Natural stack.

Note

Possible settings | any character string | See below.
Default setting | `HELLO` |
Dynamic specification | yes |
Specification within session | no |

Notes:

1. If `STACK` is used, a colon (:) must be specified with the profile (or session) parameters `DC`, `HI`, `IA`, `ID` and `STACKD`.
2. The stack can contain a sequence of Natural commands and/or user-specified commands, together with their data, for execution at the beginning of the Natural session.
3. The command stack is processed before the user is prompted for input on the screen (TP mode) or data are read from `CMSYNIN`/`CMOBJIN` files; see Natural in Batch Mode in the Operations documentation.
4. If an `INPUT` statement is encountered during stack processing, the corresponding input screen is generated only if the required input data were not supplied with the command when the stack was created. Any reports generated during stack processing are displayed as usual.
5. Each system or user-defined command can be optionally followed by data which are used to satisfy requests for information required during the processing of the command. The character string provided as data for the `STACK` parameter must be enclosed in parentheses. If the command is a user command (that is, the name of a user program), any data provided resolve the data requirements of `INPUT` statements within the user program.

#### Conventions:

- Multiple settings for one `INPUT` statement are separated by a comma (,).

- Data for multiple `INPUT` statements are separated by a colon (:).

- Commands are separated by the stack delimiter character defined by profile parameter `STACKD`. The default setting is a semicolon (;).

#### Examples:

    STACK=(LOGON USER1;UCMD1 A,B;UCMD2 C,D:E;FIN)
    STACK=OFF                                     No STACK data.
    STACK=UCMND Execute command UCMND             No embedded blanks.
    STACK=(CMD DATA:DATA;CMD...)                  Place commands/data on stack.

Note
Since some commands (for example, `GLOBALS`) do not read parameters by `INPUT`, a blank character should be used rather than a colon to delimit a command from the first parameter data element.

    STACK='LOGON SYSTEM'

Note
Because the macro assembler does not allow embedded blanks within parentheses, the character string must be enclosed in apostrophes when specified as static parameter.