I can use proc iml to submit sas code as long as I don't submit procs or datasteps. When I submit procs or datasteps the code doesn't run and my server connection is disconnected.
For example this runs:
*Here I run some simple SAS code with outputs to the log;
%put &=SYSSCPL;
data _null_;
put "hello";
run;
*Here I submit the same SAS code using proc iml;
proc iml;
submit;
%put &=SYSSCPL;
%put "hello";
*If I uncomment the code below the overall program will not run and the server loses connection. This happens for any datastep or proc.;
*data _null_;
*put "hello";
*run;
endsubmit;
quit;
The log looks like this:
The SAS System 1 ;*';*";*/;quit;run; 2 OPTIONS PAGENO=MIN; 3 %LET _CLIENTTASKLABEL='Simple_IML_SAS_call.sas'; 4 %LET _CLIENTPROCESSFLOWNAME='Standalone Not In Project'; 5 %LET _CLIENTPROJECTPATH=''; 6 %LET _CLIENTPROJECTPATHHOST=''; 7 %LET _CLIENTPROJECTNAME=''; 8 %LET _SASPROGRAMFILE='I've removed this" 9 %LET _SASPROGRAMFILEHOST='I've removed this"; 10 11 ODS _ALL_ CLOSE; 12 OPTIONS DEV=SVG; 13 GOPTIONS XPIXELS=0 YPIXELS=0; 14 %macro HTML5AccessibleGraphSupported; 15 %if %_SAS_VERCOMP_FV(9,4,4, 0,0,0) >= 0 %then ACCESSIBLE_GRAPH; 16 %mend; 17 FILENAME EGHTML TEMP; 18 ODS HTML5(ID=EGHTML) FILE=EGHTML 19 OPTIONS(BITMAP_MODE='INLINE') 20 %HTML5AccessibleGraphSupported MPRINT(HTML5ACCESSIBLEGRAPHSUPPORTED): ACCESSIBLE_GRAPH 21 ENCODING='utf-8' 22 STYLE=HTMLBlue 23 NOGTITLE 24 NOGFOOTNOTE 25 GPATH=&sasworklocation 26 ; NOTE: Writing HTML5(EGHTML) Body file: EGHTML 27 28 /* Insert custom code before submitted code here */ 29 %_eg_autoexec; MPRINT(_EG_AUTOEXEC): options nomprint nosymbolgen NOTE: PROCEDURE PRINTTO used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: The infile 'I've removed this" is: Filename='I've removed this", RECFM=V,LRECL=32767,File Size (bytes)=1944, Last Modified=23Apr2024:11:00:01, Create Time=23Apr2024:10:47:14 NOTE: PROCEDURE PRINTTO used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: _EG_IncBiosetup did not run because [&root] already exists. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: DATA statement used (Total process time): The SAS System real time 0.00 seconds cpu time 0.00 seconds MPRINT(_EG_AUTOEXEC): NOMLOGIC; 30 31 *Here I run some simple SAS code with outputs to the log; 32 %put &=SYSSCPL; SYSSCPL=X64_SRV19 33 34 data _null_; 35 put "hello"; 36 run; hello NOTE: DATA statement used (Total process time): The SAS System real time 0.00 seconds cpu time 0.00 seconds 37 38 *Here I submit the same SAS code using proc iml; 39 proc iml; NOTE: IML Ready 40 40 ! submit; 41 42 %put &=SYSSCPL; 43 44 %put "hello"; 45 46 *If I uncomment the code below the overall program will not run and the server loses connection. This happens for any 46 ! datastep or proc.; 47 *data _null_; 48 *put "hello"; 49 *run; 50 51 endsubmit; SYSSCPL=X64_SRV19 "hello" 52 quit; NOTE: Exiting IML. NOTE: PROCEDURE IML used (Total process time): real time 0.02 seconds cpu time 0.03 seconds 53 The SAS System 54 /* Insert custom code after submitted code here */ 55 %_eg_notestowarnings; MPRINT(_EG_NOTESTOWARNINGS): options nomprint nosymbolgen NOTE: 70 records were read from the infile 'I've removed this". The minimum record length was 0. The maximum record length was 130. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds MPRINT(_EG_NOTESTOWARNINGS): NOMLOGIC; 56 57 %LET _CLIENTTASKLABEL=; The SAS System 58 %LET _CLIENTPROCESSFLOWNAME=; 59 %LET _CLIENTPROJECTPATH=; 60 %LET _CLIENTPROJECTPATHHOST=; 61 %LET _CLIENTPROJECTNAME=; 62 %LET _SASPROGRAMFILE=; 63 %LET _SASPROGRAMFILEHOST=; 64 65 ;*';*";*/;quit;run; 66 ODS _ALL_ CLOSE; 67 68 69 QUIT; RUN; 70
but this code doesn't run and my connection to the server disconnects:
*Here I run some simple SAS code with outputs to the log;
%put &=SYSSCPL;
data _null_;
put "hello";
run;
*Here I submit the same SAS code using proc iml;
proc iml;
submit;
%put &=SYSSCPL;
%put "hello";
*If I uncomment the code below the overall program will not run and the server loses connection. This happens for any datastep or proc.;
data _null_;
put "hello";
run;
endsubmit;
quit;
I am able to use proc iml to submit R code just fine. For example this works:
proc iml;
call ExportDataSetToR("Sashelp.Class", "df" );
submit / R;
names(df)
endsubmit;
quit;
I am using sas enterprise guide version 8.2 Update 5 (8.2.5.1277) (64-bit).
Until recently I was able to submit sas code using proc iml just fine. My company installed a hotfix in March. Is it possible that the hotfix broke something or changed a setting so that I am no longer able to use proc iml to submit sas procs or datasteps?
I suggest that you open a track with SAS Technical support. In addition to the information you've provided, please include any details of what has changed since you were last able to submit SAS procedures. Ask your admin to provide information about the recent hotfix. We'll also need information about the server side SAS server (OS and version of SAS).
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.