Как составить список всех доступных пользовательских макросов в SAS Enterprise Guide?
Скажем, в моем основном коде у меня есть этот блок кода:
%macros hi5;
%put hi five;
%mend;
%macros helloworld;
%put hello world;
%mend;
Как мне, в SAS Enterprise Guide, отобразить что-то вроде этого? (через журнал или через таблицу SAS)
These are the user defined user macros:
hi5
hello world
(цель состоит в том, чтобы пользователь мог знать, какие макросы ему уже доступны).
Обратите внимание %put _ALL_
перечислять только все переменные макроса, а не макросы (например, созданные с %macros and %mend
.)
3 ответа
Вы можете добраться туда через PROC CATALOG
или через dictionary.catalogs
, Последний будет работать, даже если вы не знаете, где они хранятся.
proc sql;
select *
from dictionary.catalogs
where objtype='MACRO';
quit;
Это будет включать предопределенные макросы в SASHELP
, которые вы можете исключить, используя where libname ne 'SASHELP'
,
Когда вы запускаете SAS с помощью Enterprise Guide, SAS/Studio или других новых методов доступа с привязкой, скомпилированные макросы, которые ранее отображались в WORK.SASMACR
Каталог теперь заканчивается WORK.SASMAC1
, По крайней мере, в окружающей среде, которую я исследовал.
Я использую каталоги процедур
proc catalog cat=xxxxx.sasmacr;contents;run;