Workflow Documentation (from Fraktal SAS Programming)
When executing open SAS code, i.e. outside a MACRO segment definition, documentation is done by the SAS LOG on three severity levels:
- Notes: Ordinary execution
- Warnings: Ambiguous code identified
- Errors: Execution cannot continue, hence stops
This makes SAS very convenient to the ad-hoc user, since execution is well documented and reasons for unexpected results or premature termination are delivered in deep detail.
Once you have reached the GEEK level in MACRO programming this service will appear childish and very soon will be more annoying than enlightening. As a consequence you will issue a statement similar to this one:
options nosource nonotes errors=0;
After that your LOG will remain silent, except for WARNINGS, which cannot be switched off.
Since MACRO programmers are very well aware what their code is intended to do, they usually decide on their own which information is written to the LOG. To get a proper documentation the MACRO PUT statement does the job:
%PUT Now processing age group no. &AGE_INDX.;
%PUT Parameter ‘PARM_I’ is empty. Alternate code will execute;
Three MACRO specific options may be issued to document runtime behavior:
- mprint: Write generated code to the LOG.
- mlogic: Indicate branches taken or loop counters checked to the LOG.
- mfile: Write generated code to the fileref MPRINT.