2016-05-10 5 views
4

Sagen in meinem Haupt-Code, den ich diesen Code-Block haben:Wie listet man alle verfügbaren benutzerdefinierten Makros im SAS Enterprise Guide auf?

%macros hi5; 
%put hi five; 
%mend; 

%macros helloworld; 
    %put hello world; 
%mend; 

Wie kann ich, in SAS Enterprise Guide, Anzeige so etwas wie das? (Via Protokoll oder über eine SAS-Tabelle)

These are the user defined user macros: 

hi5 
hello world 

(das Ziel ist, so dass Benutzer in der Lage ist, zu wissen, was Makros sind ihnen bereits vorhanden).

Hinweis: Die %put _ALL_ nur alle Makros Variablen aufzulisten, keine Makros (beispielsweise mit %macros and %mend gebaut.)

+1

Alle _compiled_ SAS-Makros werden in einem Katalognamen ** SASMACR ** gespeichert, der in ** WORK ** mit _entry-Typ_ ** MACRO ** gespeichert wird. Ich würde versuchen ** PROC CATALOG **, habe noch nie versucht, dies zu verwenden. Ich hoffe es hilft! –

+1

Hey Gaurav (danke für den Vorschlag!), Ich habe tatsächlich versucht proc catalog cat = work.sasmacr; Inhalt aus = _temp; quit; '- auf SAS EG heißt es, dass work.sasmacr nicht existiert. (An meinem alten Arbeitsplatz funktionierte das auf Basis SAS. An einem neuen Arbeitsplatz bin ich auf Enterprise Guide no base SAS). – Atlas7

+1

Statt 'work.sasmacr' versuchen Sie' SASHELP.VCATALG' (offensichtlich kopiert von https://communities.sas.com/t5/Base-SAS-Programming/Session-compiled-macro-catalog/td-p/77942) –

Antwort

6

Sie können dort über PROC CATALOG oder über dictionary.catalogs. Letzteres funktioniert auch, wenn Sie nicht wissen, wo sie gespeichert sind.

proc sql; 
    select * 
    from dictionary.catalogs 
    where objtype='MACRO'; 
quit; 

, dass die vordefinierten Makros in SASHELP enthalten wird, mit der Sie mit where libname ne 'SASHELP' ausschließen.

+0

Super !!! Ich führe die SQL-Abfrage mit dem hinzugefügten 'where ... AND libname ne" SASHELP "' - es zeigt mir jetzt das benutzerdefinierte Makro. (Ich wusste vorher nichts von dieser "Wörterbuch-Tabelle"! Hab heute etwas neues gelernt! Danke!) – Atlas7

1

Wenn Sie SAS mit Enterprise Guide, SAS/Studio oder anderen neuen fangled-Zugriffsmethoden ausführen, enden die kompilierten Makros, die zuvor im Katalog WORK.SASMACR angezeigt wurden, jetzt in WORK.SASMAC1. Zumindest in den Umgebungen, die ich erforscht habe.

Verwandte Themen