Starting and finishing each SAS program

Шапка

С такой шапки должна начинаться каждая программа:


/*********************************************************************/
/*          Client:  <name of client>                                */
/*        Protocol:  <protocol number>                               */
/*  Project Number:  <project number, if applicable>                 */
/*                                                                   */
/*         Program:  <program name>.sas                              */
/*            Date:  <date program was created in DDMMMYYYY format>  */
/*     Description:  <brief description of program’s purpose>        */
/*                                                                   */
/*          Author:  <programmer’s name and surname>                 */
/*                                                                   */
/*     SAS Version:  x.x                                             */
/*       Revisions: xxxxxxx                                          */
/*                                                                   */
/*********************************************************************/

Starting and finishing

Каждую программу необходимо начинать таким кодом:

* Clear output and log window;
dm output "clear";
dm log "clear";
dm odsresults "clear";

* reset options;
proc optload key="proj_options";
run;

* Clear footnotes and titles;
footnote;
title ;

* Clear work library;
* Make sure there is at list one dataset in work, otherwise "proc datasets kill" gives a spurious warning;
data dummy;
run;

proc datasets kill nowarn library=work nolist;
run;

* send output to default location;
proc printto print=print;
run;

Каждую программу следует заканчивать таким кодом:

* just in case someone closed listing destination in the program;
ods listing;

proc printto;
run;

* Close Output Manager Window;
dm "manager off";

* Name of program;
%let prog=%sysfunc(scan(%sysget(sas_execfilename), 1,'.'));

* save log;
%let logfile=%str(&logs/&sysuserid/&prog..log);
dm log "file ""&logfile"" replace";

* save output;
%let outfile=%str(&logs/&sysuserid/&prog..lis);
dm output "file ""&outfile"" replace";

dm output 'show';