MACRO GET ATTR: Unterschied zwischen den Versionen

Aus phenixxenia.org
Zur Navigation springen Zur Suche springen
K
K
Zeile 23: Zeile 23:
 
  ''quit;''
 
  ''quit;''
 
  %PUT &NAME._MESSAGE: Temporary SAS dataset WORK.TMP_DATA created ;
 
  %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: 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: Information stored into Local Macrovariable of calling environment: ;
 
  %PUT &NAME._MESSAGE: &ATTRIB. = %BQUOTE(&&&ATTRIB.);
 
  %PUT &NAME._MESSAGE: &ATTRIB. = %BQUOTE(&&&ATTRIB.);
Zeile 34: Zeile 34:
 
  %PUT &NAME._STATUS: Global Macrovariable(s) not available. ;
 
  %PUT &NAME._STATUS: Global Macrovariable(s) not available. ;
 
  %PUT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
 
  %PUT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
  %GEN_MAIL(name = &NAME.,rc=1);
+
  %GEN_MAIL(name = &NAME.,rc = 1);
 
  '''%END;'''
 
  '''%END;'''
  
 
  %MEND GET_ATTR;
 
  %MEND GET_ATTR;

Version vom 28. Juni 2013, 16:42 Uhr


%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;