Hello! I have problem remote submitting a program which includes a autoexec file and sysparm in the call. I am loosing my sysparm variables. I am new at this and don't have a clue of where to look anymore 😞
So here it is...
This is my call:
"D:\Applications\SASHome\SASFoundation\9.4\sas.exe" -CONFIG "D:\Applications\SASHome\SASFoundation\9.4\nls\en\SASV9.CFG" -SYSIN \\BrSasDev\ExternalData\Programs\DEV\Code\SAS_ExternalData_Chauffeur_OneAutomation.sas -sysparm 'DIR=Programs, ENV=DEV, APP=NaicsUpdate, P_01=D, P_02=\\fld6filer\BrsSystems\Workitems\TF17602\Testing\SAS\, P_03=BrSqlDev01, P_04=BrFrameDevelopment, P_05=\\BrSasDev\ExternalData\Programs\Dev\In\NaicsUpdate\OneAutomationTest.txt, P_06=SRGD-DRSG, P_07=66' -autoexec \\BrSasDev\ExternalData\Programs\DEV\AUTO\autoexec_DEV_NaicsUpdate.sas -log \\BrSasDev\ExternalData\Programs\DEV\LOG\Log_NaicsUpdate_2019-04-03T11-07-19.txt -nosplash -icon -batch
And this is the content of my autoexec:
options autosignon;
rsubmit BrSasDev;
%global running errcode logger Oops_macro Oops_arg BRDEVTST inFileIncludeWithEffDate inFileIncludeWithoutEffDate;
%let thisAPP=NaicsUpdate;
%let thisSASserver=\\BrSasDev\ExternalData;
%let thisSASdir=Programs;
%let thisENV=DEV;
%let mycrpath=&thisSASserver\&thisSASdir\&thisEnv\MACRO;
libname mymacro "&mycrpath";
options mstored sasmstore = mymacro;
options noovp; /* no over print, limits error message extra copies in log */
%let logger="&thisSASserver\&thisSASdir\&thisENV\log\logging_default_&thisAPP..txt";
%let inFileIncludeWithEffDate = "&thisSASserver\&thisSASdir\&thisENV\Include\record_NaicsUpdate_withEffDate_in.txt";
%let inFileIncludeWithoutEffDate = "&thisSASserver\&thisSASdir\&thisENV\Include\record_NaicsUpdate_noEffDate_in.txt";
%let BRDEVTST = 1;
%put &sysparm;
So my parameters are not being passed. Can somebody tell be what I am doing wrong?
Thank you in advance 🙂
Mylene
Hi @MChalut, one way is using the &SYSLPUT statement. This provides a way to pass macro variables from the local to remote session:
signon BrSasDev;
%syslput myparms=&sysparm;
rsubmit BrSasDev;
Then you would need to parse off the &myparms macro variable into smaller macro variables for each name/value pair. Here's one example:
signon BrSasDev;
%syslput myparms=&sysparm;
rsubmit;
%put &myparms;
%let DIR=%scan(%bquote(&myparms),1,',');
%let DIR=%scan(&dir,2,'=');
%put &dir;
%let ENV=%scan(%bquote(&myparms),2,',');
%let ENV=%scan(&env,2,'=');
%put &env;
endrsubmit;
signoff noscript;
Here's the log output:
NOTE: Remote signon to BrSasDev complete. 33 %syslput myparms=&sysparm; 34 35 rsubmit; NOTE: Remote submit to BrSasDev commencing. 1 %put &myparms; DIR=Programs, ENV=DEV, APP=NaicsUpdate, P_01=D, P_02=\\fld6filer\BrsSystems\Workitems\TF17602\Testing\SAS\, P_03=BrSqlDev01, P_04=BrFrameDevelopment, P_05=\\BrSasDev\ExternalData\Programs\Dev\In\NaicsUpdate\OneAutomationTest.txt, P_06=SRGD-DRSG, P_07=66 2 3 %let DIR=%scan(%bquote(&myparms),1,','); 4 %let DIR=%scan(&dir,2,'='); 5 %put &dir; Programs 6 7 %let ENV=%scan(%bquote(&myparms),2,','); 8 %let ENV=%scan(&env,2,'='); 9 %put &env; DEV NOTE: Remote submit to BrSasDev complete. 36 signoff noscript; NOTE: Remote signoff from BrSasDev commencing. NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414 NOTE: The SAS System used: real time 0.37 seconds user cpu time 0.10 seconds system cpu time 0.15 seconds memory 9257.84k OS Memory 9828.00k Timestamp 04/03/2019 03:54:32 PM Step Count 0 Switch Count 50 NOTE: Remote signoff from BrSasDev complete.
Hope this helps.
Hi @MChalut, one way is using the &SYSLPUT statement. This provides a way to pass macro variables from the local to remote session:
signon BrSasDev;
%syslput myparms=&sysparm;
rsubmit BrSasDev;
Then you would need to parse off the &myparms macro variable into smaller macro variables for each name/value pair. Here's one example:
signon BrSasDev;
%syslput myparms=&sysparm;
rsubmit;
%put &myparms;
%let DIR=%scan(%bquote(&myparms),1,',');
%let DIR=%scan(&dir,2,'=');
%put &dir;
%let ENV=%scan(%bquote(&myparms),2,',');
%let ENV=%scan(&env,2,'=');
%put &env;
endrsubmit;
signoff noscript;
Here's the log output:
NOTE: Remote signon to BrSasDev complete. 33 %syslput myparms=&sysparm; 34 35 rsubmit; NOTE: Remote submit to BrSasDev commencing. 1 %put &myparms; DIR=Programs, ENV=DEV, APP=NaicsUpdate, P_01=D, P_02=\\fld6filer\BrsSystems\Workitems\TF17602\Testing\SAS\, P_03=BrSqlDev01, P_04=BrFrameDevelopment, P_05=\\BrSasDev\ExternalData\Programs\Dev\In\NaicsUpdate\OneAutomationTest.txt, P_06=SRGD-DRSG, P_07=66 2 3 %let DIR=%scan(%bquote(&myparms),1,','); 4 %let DIR=%scan(&dir,2,'='); 5 %put &dir; Programs 6 7 %let ENV=%scan(%bquote(&myparms),2,','); 8 %let ENV=%scan(&env,2,'='); 9 %put &env; DEV NOTE: Remote submit to BrSasDev complete. 36 signoff noscript; NOTE: Remote signoff from BrSasDev commencing. NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414 NOTE: The SAS System used: real time 0.37 seconds user cpu time 0.10 seconds system cpu time 0.15 seconds memory 9257.84k OS Memory 9828.00k Timestamp 04/03/2019 03:54:32 PM Step Count 0 Switch Count 50 NOTE: Remote signoff from BrSasDev complete.
Hope this helps.
It's working!! Thank a lot for your help!!
Have a great day 🙂
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.