Here I have the code that I want to execute on &lsaslgsr server with a new session. And the result of execution of this code. Even though I create macro variable ProgNum inside of rsubmit-endrsubmit, I still see the Error that indicates that PROGINLIST not resolved. Also, I don't see the execution of: %let checker = et; %put &ProgInList.; %put &checker.; The solution that I found is to mask % symbol (like %nrstr (%%)let checker = et;) and only after that I can use this macro variable. Does someone know any solution to that or the explanation why it works this way? Thank you so much in advance. How can I get rid of the Error that I have now? NOTE: Remote signon to RMPG1 complete.
NOTE: Background remote submit to RMPG1 in progress.
NOTE: Remote submit to RMPG1 commencing.
WARNING: Apparent symbolic reference PROGINLIST not resolved.
&ProgInList.
et
56 waitfor _all_;
1 options mstored sasmstore=allmacro;
2 data _null_;
3 ProgInList_ = (&SessNum-1)*(&LNumProgOnGrid-&ProgNum)+&SessNum*&ProgNum;
-
22
WARNING: Apparent symbolic reference PROGNUM not resolved.
3 ProgInList_ = (&SessNum-1)*(&LNumProgOnGrid-&ProgNum)+&SessNum*&ProgNum;
-
22
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant,
a missing value, INPUT, PUT.
WARNING: Apparent symbolic reference PROGNUM not resolved.
4 call symput("ProgInList",strip(put(ProgInList_,best.)));
5 put ProgInList_;
6 run;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: Remote submit to RMPG1 complete. %let lNumSessOnGrid = 1;
%let LNumProgOnGrid = 1;
%let gridchrc = %sysfunc(grdsvc_enable(_all_, server=&lsaslgsr));
%macro check;
/* Loop for number of grid sessions */
%do SessNum=1 %to &lNumSessOnGrid; /* 20 - LOOP OPEN */
%syslput _all_/remote=rmpg&SessNum;
rsubmit rmpg&SessNum wait=no connectpersist=no inheritlib=(allmacro );
options mstored sasmstore=allmacro;
/* Loop for number on programs on each grid */
%let checker = et;
%do ProgNum=1 %to &LNumProgOnGrid; /* 21 - LOOP OPEN */
data _null_;
ProgInList_ = (&SessNum-1)*(&LNumProgOnGrid-&ProgNum)+&SessNum*&ProgNum;
call symput("ProgInList",strip(put(ProgInList_,best.)));
put ProgInList_;
run;
%put &ProgInList.;
%put &checker.;
%end;/* 21 - LOOP OPEN */
endrsubmit;
%end;/* 20 - LOOP CLOSE */
%mend;
%check;
waitfor _all_;
signoff _all_;
... View more