Archiv der Kategorie SAS Macros

SAS: Using GOTO Statement in Macro Steps

It is not perfect to use the GOTO statement in SAS Code. But if needed you can use the following macro structure:

%macro goto_struct(var);
%IF %QUOTE(&var) NE 16444 %THEN %DO;
%GOTO error; %
%error:
data error;
x=1;
output;
run;
%END;

%IF %QUOTE(&var) EQ 16444 %THEN %DO;
%GOTO ok; %
%ok:
data ok;
x=2;
output;
run;
%END;
%mend goto_struct;
%goto_struct(
100);
 

Using email functions with SAS

SAS provides several possibilities to send out emails. This is a good feature to get statusinformation while a SAS-program is running.

1st - sending emails with SAS/Macro (Author: DeVenezia.com):

%macro quikmail (to,subj,body);
%if (%superq(to) eq ) %then %let to=foobar;
%if (%superq(to) ne and %superq(subj) ne and %superq(body) ne) %then %do;
filename quikmail email “%superq(to)” subject=“%superq(subj)”;
data _null_;
file quikmail;
put
“%superq(subj)”;
%let body=%left(%superq(body));
%do %until (%superq(body) eq);
%let p=%index(%superq(body),\n);
%if (&p eq 0) %then %do;
put
“%superq(body)”;
%let body=;
%end;
%else %do;
put
“%substr(%superq(body),1,%eval(&p-1))”;
%if (%eval(&p+2) gt %length(%superq(body))) %then
%let body = ;
%else
%let body = %substr (%superq(body),%eval(&p+2));
%end;
%end;
run;
%end;
%mend quikmail;
%quikmail(MyEmail@provider.com, Subject , MyText);

2nd - sending emails with Datastep:

data _null_;
filename mail email
to = (MyEmailAdress)
subject =
“SAS Mailtest”
/*attach = (”Path and Filename 1,Path and Filename 2″)*/;
file mail;
put “Zeile 1″;
put “Zeile 2″;
run;

|