05-23-2015 04:32 PM
How can i tell SAS to notify me via email once macro finished processing? Also, can i mention in the email processing time - time taken by macro with the attachment CSV file generated by macro?
%macro replace (input= prac.file1,stats=median,vars=Q1-Q5,output=replaced);
* Generate analysis results ;
proc means data=&input noprint;
output out=dummy (drop=_type_ _freq_) &stats= / autoname;
* Convert to vertical ;
proc transpose data=dummy out=dummy;
* Replace missing with analysis results ;
array vars &vars ;
do i =1 to dim(vars);
set dummy(keep=col1) point= i ;
drop col1 ;
Proc export outfile = &output data ='\user\ujjwal'
Options mprint nosymbolgen;
%replace (input= prac.file1,stats= median,vars=Q1-Q5,output=replaced);
05-24-2015 06:04 PM
You can send emails from a SAS program using FILENAME statement with the EMAIL access method, see here for more information SAS(R) 9.4 Statements: Reference, Third Edition
05-25-2015 02:22 PM
Also, as to your question about capturing/reporting processing-time: the SAS DATA step function DATETIME() can capture the current date/time into either a SAS DATA step variable or also using SYMPUT you can capture the character-string equivalent to a SAS macro variable. With this coding technique applied, then any SAS code-piece can have a pre-processing (initialization) DATETIME() data capture and a post-processing (clean-up) execution to derive an elapsed time.
And with this information, your options are to either make use of MACRO variable "passing" between the initialization and clean-up code-points to derive an elapsed-time data value -- or otherwise more simplified approach having a SAS temporary dataset with the variable containing the start-time and then having the end-time to compute a duration-execution.