Workflow Documentation (from Fraktal SAS Programming): Unterschied zwischen den Versionen
K |
K |
||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
{{SeitenNavigation1 | {{SeitenNavigation1 | ||
|links=xx_left.png | |links=xx_left.png | ||
− | |zurück= | + | |zurück=Process Metadata (from Fraktal SAS Programming) |
|rechts=xx_right.png | |rechts=xx_right.png | ||
|vorwärts=Realtime Information (from Fraktal SAS Programming) | |vorwärts=Realtime Information (from Fraktal SAS Programming) | ||
|hoch=Duck_zazy_com.png | |hoch=Duck_zazy_com.png | ||
− | |übersicht= | + | |übersicht=Extending Control (from Fraktal SAS Programming) |
}} | }} | ||
Zeile 26: | Zeile 26: | ||
== Macro code == | == Macro code == | ||
− | Since MACRO programmers are very well aware what their code is | + | 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 Now processing age group no. &AGE_INDX.; | ||
Zeile 36: | Zeile 36: | ||
*'''mlogic:''' Indicate branches taken or loop counters checked to the LOG. | *'''mlogic:''' Indicate branches taken or loop counters checked to the LOG. | ||
*'''mfile:''' Write generated code to the fileref MPRINT. | *'''mfile:''' Write generated code to the fileref MPRINT. | ||
+ | |||
+ | |||
+ | '''[[Stored Workflow Documentation (from Fraktal SAS Programming)|How to STORE it]]''' | ||
+ | |||
{{SeitenNavigation1 | {{SeitenNavigation1 | ||
|links=xx_left.png | |links=xx_left.png | ||
− | |zurück= | + | |zurück=Process Metadata (from Fraktal SAS Programming) |
|rechts=xx_right.png | |rechts=xx_right.png | ||
|vorwärts=Realtime Information (from Fraktal SAS Programming) | |vorwärts=Realtime Information (from Fraktal SAS Programming) | ||
|hoch=Duck_zazy_com.png | |hoch=Duck_zazy_com.png | ||
− | |übersicht= | + | |übersicht=Extending Control (from Fraktal SAS Programming) |
}} | }} |
Aktuelle Version vom 15. Mai 2014, 10:15 Uhr
Open Code
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.
Macro code
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.