05-27-2016 11:27 AM
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.
05-27-2016 12:07 PM
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? : )
05-27-2016 12:13 PM
@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...
05-27-2016 12:15 PM
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.
Need further help from the community? Please ask a new question.