10-02-2015 04:28 AM
Apologies if this question feels a bit pedantic - it is my first real experience with SAS Macro and I just want to make sure i'm not falling for any 'rookie errors'
I have the following piece of code which has been written in a User written Transformation in SAS D.I studio. This code dictates that the SSRS presence macro should only run between the certain data paremeters specified.
Please can someone explain if I am making an obvious mistake with the first %SYSEVALF statement. The way it has been formatted within SAS D.I it appears that SAS is interpreting it as a new macro call, rather than the function I am trying to implement.
I have tried the same statment elsewhere on my job canvas and the formatting seems to change any time there is a preceeding %IF statement.
10-02-2015 07:09 AM
Don't pay too much attention the the color parser, it is not the smartest sometimes. If your code works then all good.
Regarding the test you posted, I am puzzled: Function %sysevalf() is used for floating number calculations, and you use it for a boolean value.
It is not required nor useful as you used it.
10-02-2015 08:39 AM
Consider this example where SYSEVALF get it right.
%let current = %sysfunc(today()); %let execution = '02OCT2015'd; %put NOTE: &=current &=execution; %put NOTE: %eval(¤t = &execution); %put NOTE: %sysevalF(¤t = &execution); 27 %put NOTE: &=current &=execution; NOTE: CURRENT=20363 EXECUTION='02OCT2015'd 28 %put NOTE: %eval(¤t = &execution); NOTE: 0 29 %put NOTE: %sysevalF(¤t = &execution); NOTE: 1