09-15-2017 07:00 AM - edited 09-15-2017 07:02 AM
I have a macro which is being called from a JAVA program and has certain validations in it. If the validation fails code goes to exit label and does clean up and exits. Now based on the error codes/error text of these custom validation, the value is updated in the database along with the status SUCCESS/FAILURE.
The validations looks something like:
%if %sysevalf(%superq(abc) =, boolean)=1 %then %do; %put ===========================Problem Code==========================; %put; %put; %put %str(ERR)OR: (&sysmacroname) The value of parameter abc is empty ; %put; %put; %put ====================Usage for Macro &sysmacroname================; %goto exit; %end;
Now, I want to capture the error messages from the program after it completes execution. Pleasehelp me in doing so. There are certain automatic variables like syserr, syscc & sysrc, but I am not sure how to use them.
09-15-2017 07:19 AM
Look at setting the stdio system option. That way you can write output to stdout and log to stderr, and catch those streams in Java.
You can also use the abort abend n; statement (or %abort macro statement) to end the SAS job immediately and set a return code.