MACRO GET ATTR
Version vom 28. Juni 2013, 16:25 Uhr von Wolf-Dieter Batz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie:zazy %MACRO GET_ATTR(dsn=,source=,attrib=) / store des = "Get attribute from SAS Variable"; %LOCAL name; %LET name = GET_ATTR; '''%IF &DSN…“)
%MACRO GET_ATTR(dsn=,source=,attrib=) / store des = "Get attribute from SAS Variable";
%LOCAL name; %LET name = GET_ATTR; %IF &DSN ne and &SOURCE ne and &ATTRIB ne %THEN %DO; %IF %INDEX(&DSN,.) eq 0 %THEN %DO; %LET dsn=WORK.&DSN; %END; proc datasets nolist lib = %SCAN(&DSN,1); contents noprint data = %SCAN(&DSN,2)(keep=&SOURCE) out = work.tmp_data(keep=&ATTRIB); run; quit; proc sql noprint; select &ATTRIB into :&ATTRIB from work.tmp_data ; %IF %UPCASE(&ATTRIB) ne LABEL %THEN %DO; %LET &ATTRIB = &&&ATTRIB; %END; quit; %PUT &NAME._MESSAGE: Temporary SAS dataset WORK.TMP_DATA created ; %PUT &NAME._MESSAGE: Field %UPCASE(&SOURCE) in dataset %UPCASE(&DSN) has &ATTRIB = %BQUOTE(&&&ATTRIB.). ; %PUT &NAME._MESSAGE: Information stored into Local Macrovariable of calling environment: ; %PUT &NAME._MESSAGE: &ATTRIB=%BQUOTE(&&&ATTRIB); %PUT ; %END; %ELSE %DO; %PUT vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv; %PUT &NAME._ERROR: Missing Keyword Parameter(s).; %PUT &NAME._STATUS: Macro processing abended. ; %PUT &NAME._STATUS: Global Macrovariable(s) not available. ; %PUT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^; %GEN_MAIL(name=&NAME,rc=1); %END;
%MEND GET_ATTR;