Get execution information from SAS

The code below makes a print to your log containing different information related to your current SAS-session.
The code is heavily inspired from this article.

/* The macro need to know if your running the program on a remote server. The default is that the program is running on a remote server. If that is the case, the macro gets some information from the remote server. */ %macro GetExecInfo(rsubmit=yes);

/* Removes the %put-statement below. Makes it possible to get a fine print in your log. */ 
options nosource;

/* The programname and path. */
%let SASProgram = %sysget(sas_execfilepath);

/* If your running SAS on a remote server your need to supply the remote SAS with information about the local program being executed.*/ 
%if %upcase(&RSubmit) = YES %then 
%do; 
%syslput SASProgram = &SASProgram; 
%end;

%if %upcase(&RSubmit) = YES %then 
%do; 
rsubmit; 
%end;

%macro GetInfo; /* AIX (UNIX) systems and probably other systems doesn't have the same environment variables as eg Windows servers. */ 
%if &sysscpl = AIX %then 
%do; 
%let ServerName = N/A; 
/* It is possible to try the statements below to get the servername from an AIX-server. */ 
/*    host = sysget('HOST'); 
- OR - filename h pipe 'hostname'; 
data _null_; 
infile h; 
input; 
put _infile_; 
run; 
*/ 
%end; 
%else 
%do; 
%let ServerName = %sysget(computername); 
%end;

/* Inserts blank lines in the log. */ 
skip; 
skip; 
%put ******************************************************************;
%put *      Program : &SASProgram (Revision: ); 
%put *      Date : &sysday, &sysdate9; 
%put *      User : &sysuserid; 
%put *      Server : &ServerName; 
%put *      OS version : &sysscp (&sysscpl); 
%put *      SAS version : &sysvlong4; 
%put ******************************************************************; skip; 
skip; 
%mend; 

%GetInfo;

%if %upcase(&RSubmit) = YES %then 
%do; 
endrsubmit; 
%end;

options source; 
%mend;

%GetExecInfo(rsubmit=yes);

 

 

Leave a Reply

Your email address will not be published.