mirror of
https://github.com/sasjs/core.git
synced 2025-12-10 22:14:35 +00:00
73 lines
1.8 KiB
SAS
Executable File
73 lines
1.8 KiB
SAS
Executable File
/**
|
|
@file
|
|
@brief Checks if a set of macro variables exist AND contain values.
|
|
@details Writes ERROR to log if abortType is SOFT, else will call %mf_abort.
|
|
Usage:
|
|
|
|
%let var1=x;
|
|
%let var2=y;
|
|
%put %mf_verifymacvars(var1 var2);
|
|
|
|
Returns:
|
|
> 1
|
|
|
|
<h4> SAS Macros </h4>
|
|
@li mf_abort.sas
|
|
|
|
@param [in] verifyvars Space separated list of macro variable names
|
|
@param [in] makeupcase= (NO) Set to YES to convert all variable VALUES to
|
|
uppercase.
|
|
@param [in] mAbort= (SOFT) Abort Type. When SOFT, simply writes an err
|
|
message to the log.
|
|
Set to any other value to call mf_abort (which can be configured to abort in
|
|
various fashions according to context).
|
|
|
|
@warning will not be able to verify the following variables due to
|
|
naming clash!
|
|
- verifyVars
|
|
- verifyVar
|
|
- verifyIterator
|
|
- makeUpcase
|
|
|
|
@version 9.2
|
|
@author Allan Bowe
|
|
|
|
**/
|
|
|
|
|
|
%macro mf_verifymacvars(
|
|
verifyVars /* list of macro variable NAMES */
|
|
,makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */
|
|
,mAbort=SOFT
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%local verifyIterator verifyVar abortmsg;
|
|
%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));
|
|
%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));
|
|
%if not %symexist(&verifyvar) %then %do;
|
|
%let abortmsg= Variable &verifyVar is MISSING;
|
|
%goto exit_err;
|
|
%end;
|
|
%if %length(%trim(&&&verifyVar))=0 %then %do;
|
|
%let abortmsg= Variable &verifyVar is EMPTY;
|
|
%goto exit_err;
|
|
%end;
|
|
%if &makeupcase=YES %then %do;
|
|
%let &verifyVar=%upcase(&&&verifyvar);
|
|
%end;
|
|
%end;
|
|
|
|
%goto exit_success;
|
|
%exit_err:
|
|
%put &abortmsg;
|
|
%mf_abort(iftrue=(&mabort ne SOFT),
|
|
mac=mf_verifymacvars,
|
|
msg=%str(&abortmsg)
|
|
)
|
|
0
|
|
%return;
|
|
%exit_success:
|
|
1
|
|
|
|
%mend mf_verifymacvars;
|