Runtime values

Runtime values defined in a production job file and used in a command syntax file simplify tasks such as running the same analysis for different data files or running the same set of commands for different sets of variables. For example, you could define the runtime value @datafile to prompt you for a data file name each time you run a production job that uses the string @datafile in place of a file name in the command syntax file.

  • Runtime value substitution uses the macro facility (DEFINE-!ENDDEFINE) to create string substitution values.
  • Runtime values in command syntax files are ignored if they are enclosed in quotation marks. If the runtime value needs to be quoted, select Quote Value. If the runtime value is only part of a quoted string, you can include the runtime value in a macro with the !UNQUOTE and !EVAL parameters.

Symbol. The string in the command syntax file that triggers the production job to prompt the user for a value. The symbol name must begin with an @ sign and must conform to variable naming rules. See the topic Variable names for more information.

Default Value. The value that the production job supplies by default if you don't enter a different value. This value is displayed when the production job prompts you for information. You can replace or modify the value at runtime. If you don't provide a default value, don't use the silent keyword when running the production job with command line switches, unless you also use the -symbol switch to specify runtime values. See the topic Running production jobs from a command line for more information.

User Prompt. The descriptive label that is displayed when the production job prompts you to enter information. For example, you could use the phrase "What data file do you want to use?" to identify a field that requires a data filename.

Quote Value. Encloses the default value or the value entered by the user in quotes. For example, file specifications should be enclosed in quotes.

Command syntax file with user prompt symbols

GET FILE @datafile. /*check the Quote value option to quote file specifications.
FREQUENCIES VARIABLES=@varlist. /*do not check the Quote value option

Using a macro to replace part of a string value

If the entire replacement string is enclosed in quotes, you can use the Quote Value option. If the replacement string is only part of a quoted string, you can include the runtime value in a macro, using the !UNQUOTE and !EVAL functions.

DEFINE !LabelSub()
VARIABLE LABELS Var1 
 !QUOTE(!concat(!UNQUOTE('First part of label - '), !UNQUOTE(!EVAL(@replace)), !UNQUOTE(' - rest of label'))).
!ENDDEFINE.
!LabelSub.