On EBCDIC systems, such as z/OS, and VSE, this program causes the following to
be written to the SAS log:
*** 1 is greater than a ***
But on ASCII systems (such as UNIX or Windows), the following is written to the
SAS log:
*** 1 is less than a ***
MSYMTABMAX=
The MSYMTABMAX system option specifies the maximum amount of memory
available to the macro variable symbol tables. If this value is exceeded, the symbol
tables are stored in a Work file on disk.
MVARSIZE=
The MVARSIZE system option specifies the maximum number of bytes for any
macro variable stored in memory. If this value is exceeded, the macro variable is
stored in a Work file on disk.
%SCAN and %QSCAN
The default delimiters that the %SCAN and %QSCAN functions use to search for
words in a string are different on ASCII and EBCDIC systems. The default
delimiters are
ASCII systems
blank . < ( + & ! $ * ) ; ^ − / , % |
EBCDIC systems
blank . < ( + | & ! $ * ) ; ¬ − / , % ¦ ¢
%SYSEXEC, %TSO, and %CMS
The %SYSEXEC, %TSO, and %CMS macro statements enable you to issue a host
environment command.
%SYSGET
On some host environments, the %SYSGET function returns the value of host
environment variables and symbols.
SYSPARM=
The SYSPARM= system option can supply a value for the SYSPARM automatic
macro variable at SAS invocation. It is useful in customizing a production job. For
example, to create a title based on a city as part of noninteractive execution, the
production program might contain the SYSPARM= system option. It can be in the
SAS configuration file or the command that invokes SAS. For an example using the
SYSPARM= system option in conjunction with the SYSPARM automatic macro
variable, see “SYSPARM Details” on page 154.
SASMSTORE=
The SASMSTORE= system option specifies the location of stored compiled macros.
SASAUTOS=
The SASAUTOS= system option specifies the location of autocall macros.
Host-Specific Macro Variables
Some host environments create unique macro variables. These macro variables are not
automatic macro variables. The following tables list some commonly used host-specific
macro variables. Additional host-specific macro variables might be available in future
releases. See your SAS companion for more details.
Writing Portable Macros 155
Table 11.3 Host-Specific Macro Variables for z/OS
Variable Name Description
SYS99ERR SVC99 error reason code
SYS99INF SVC99 info reason code
SYS99MSG YSC99 text message corresponding to the SVC error or info
reason code
SYS99R15 SVC99 return code
SYSJCTID Value of the JCTUSER field in the JCT control block
SYSJMRID Value of the JMRUSEID field in the JCT control block
SYSUID TSO user ID associated with the SAS session
Naming Macros and External Files for Use with the Autocall Facility
When naming macros that will be stored in an autocall library, there are restrictions
depending on your host environment. Here is a list of some of the restrictions:
Every host environment has file naming conventions. If the host environment uses
file extensions, use .sas as the extension of your macro files.
Although SAS names can contain underscores, some host environments do not use
them in the names of external files. Some host environments that do not use
underscores do use the number sign (#) and might automatically replace the # with _
when the macro is used.
Some host environments have reserved words, such as CON and NULL. Do not use
reserved words when naming autocall macros or external files.
Some hosts have host-specific autocall macros. Do not define a macro with the same
name as these autocall macros.
Macro catalogs are not portable. Remember to always save your macro source code
in a safe place.
On UNIX systems the filename that contains the autocall macro must be all
lowercase letters.
156 Chapter 11 Writing Efficient and Portable Macros
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset