Hi,
I'm playing on a new server, where they have EG configured to use rsubmits (basically rsubmit and endrsubmit are inserted as precode and postcode).
I noticed that if I submit:
%macro doit(x=1);
%put x=&x;
%mend doit;
%doit()
everything breaks. Note there is no trailing semicolon on the macro call. After EG adds the wrapper, in effect I am submitting:
rsubmit;
%macro doit(x=1);
%put x=&x;
%mend doit;
%doit()
endrsubmit;
It looks to me like in that case, SAS is not seeing the endrsubmit statement. If I add a semicolon after %doit(), or even a /* */ comment, SAS will see the endrsubmit and everything works fine.
Have other people seen this behavior from SAS/Connect on EG? Or PC SAS? Curious if this is somehow an EG problem, or (more likely) a word scanner / tokenizer problem.
You might be able to fix by adding the "quote killer" line at the start of your post-code option:
;*';*";*/;quit;
You might be able to fix by adding the "quote killer" line at the start of your post-code option:
;*';*";*/;quit;
Thanks Chris. Yes, just changing the post code from endrsubmit; to ;endrsubmit; fixed the problem.
Mostly was just curious if this same problem would happen with PC/SAS (in which case it's really the tokenizer or something like that that is having the problem), or if it is an EG-only problem. My guess is it would happen in PC/SAS too, but I don't have SAS/CONNECT on my PC SAS so can't test it.
As a side note, there have been times I thought it would be nice if there was a way to turn off EG's generation of the quote killer. I've had a few times when I had an unmatched quote, but because EG always adds the quote killer, it took me a minute or two longer than usual to figure out what was going on. But that's a minor point. I can see the agument for always forcing the quote killer; I'm sure it cut down the number of calls to tech support with complaint "my SAS session is hung and I don't know why.
(Left off the closing quote there, get it? : )
--Q.
@Quentin - as you guess, bad things happen when you leave an open comment or quote when you submit a job to SAS. The quote killer line is insurance that prevents many more problems than it causes...
Oh, and you wondered if the behavior is unique to EG -- I doubt that it is. I suspect if you sent the same code sequence in PC SAS you would have the same behavior in the CONNECT session.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.