Как составить список всех доступных пользовательских макросов в 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;
Другие вопросы по тегам