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 🙂
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.