SHRMACS Macro

Compiles other SAS/SHARE macros.
Category: None
Note: The SHRMACS macro must be invoked before invoking any other SAS/SHARE macro.

Syntax

%SHRMACS (category,<log-info>,<APPLSYS=app-sys-lib-tab...>, <SASSAML=app-sys-lib-tab...> );

Syntax Description

category
specifies the category of macros to be compiled. For details, see Macros Generated by the SHRMACS Macro.
Valid values: USER, SERVER, OPER, ALL
log-info
specifies whether descriptive information about each macro is written to the SAS log.
MSG (default) displays the SAS/SHARE macros that are generated and the function of each macro.
NOMSG specifies that no information is displayed.
HELP displays detailed information about the SAS/SHARE macros that are generated. This includes the syntax, a brief description, and an example of each macro that is generated by the first argument.
APPLSYS=app-sys-lib-tab
specifies which applications systems tables should be loaded. You can specify one or more tables. It is recommended that you use this argument to save initialization time. If the APPLSYS= argument is not specified, the default applications systems table is loaded. Using APPLSYS= is optional. For more information, see The APPLSYS Macro Library.
SASSAML=app-sys-lib-tab
specifies an alternate APPLSYS macro library. If an alternate library is specified, application systems tables are loaded from it instead of from the default library. The value of SASSAML= can be a physical pathname or the string _DEFINED_, which indicates that the fileref SASSAML is already assigned to the alternate APPLSYS macro library. Using SASSAML= is optional. For more information, see The APPLSYS Macro Library.

Details

The SHRMACS macro also loads the applications systems tables that associate aliases with server names and associate libraries with aliases. These tables are used to generate the server name for the PROC SERVER, PROC OPERATE, and LIBNAME statements. Based on what is specified in the first argument, the server-alias and library-alias tables can be written to the SAS log if you specify the MSG or the HELP argument in the SHRMACS macro. For example,
%shrmacs(user);
%shrmacs(user,help);
%shrmacs(oper,help);
%shrmacs(server,msg);
%shrmacs(all,msg);
Early in its execution, the SHRMACS macro invokes PROC SQL to obtain the current settings of the SAS options NOTE, SOURCE2, and LINESIZE= and saves them in macro variables that are named _NOTES_, _SRC2_, and _LS_, respectively. The original values of these options are restored after the settings have been changed by SHRMACS or other SAS/SHARE macros. You can avoid the overhead of this PROC SQL step by explicitly setting the macro variables to the values that you want. For example:
%let _notes_=notes;
%let _src2_=nosource2;
%let _ls_=70;