From edfa9ecc07425223b02651960afa275813947795 Mon Sep 17 00:00:00 2001 From: munja Date: Tue, 29 Mar 2022 18:08:24 +0100 Subject: [PATCH] fix: ensuring ms_getfile works on specific installs --- all.sas | 15 ++++++++++++--- base/mp_assertscope.sas | 2 +- sasjs/sasjsconfig.json | 2 +- server/ms_getfile.sas | 13 +++++++++++-- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/all.sas b/all.sas index 92f7ae9..d706dc5 100644 --- a/all.sas +++ b/all.sas @@ -3202,7 +3202,7 @@ run; proc compare base=&scopeds(where=(upcase(name) not in (%mf_getquotedstr(&ilist)))) - compare=&ds; + compare=&ds noprint; run; %if &sysinfo=0 %then %do; @@ -19017,6 +19017,9 @@ run; @param [out] outref= (msgetfil) The fileref to contain the file. @param [in] mdebug= (0) Set to 1 to enable DEBUG messages +

SAS Macros

+ @li mf_getuniquefileref.sas + @li mf_getuniquename.sas **/ @@ -19025,15 +19028,21 @@ run; ,mdebug=0 ); -filename &outref temp; +/* use the recfm in a separate fileref to avoid issues with subsequent reads */ +%local binaryfref floc; +%let binaryfref=%mf_getuniquefileref(); +%let floc=%sysfunc(pathname(work))/%mf_getuniquename().txt; +filename &outref "&floc"; +filename &binaryfref "&floc" recfm=n; -proc http method='GET' out=&outref +proc http method='GET' out=&binaryfref url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc"; %if &mdebug=1 %then %do; debug level=2; %end; run; +filename &binaryfref clear; %mend ms_getfile; /** diff --git a/base/mp_assertscope.sas b/base/mp_assertscope.sas index 5421371..f1dfc70 100644 --- a/base/mp_assertscope.sas +++ b/base/mp_assertscope.sas @@ -106,7 +106,7 @@ proc compare base=&scopeds(where=(upcase(name) not in (%mf_getquotedstr(&ilist)))) - compare=&ds; + compare=&ds noprint; run; %if &sysinfo=0 %then %do; diff --git a/sasjs/sasjsconfig.json b/sasjs/sasjsconfig.json index 564ed75..a88f06c 100644 --- a/sasjs/sasjsconfig.json +++ b/sasjs/sasjsconfig.json @@ -71,7 +71,7 @@ }, { "name": "server", - "serverUrl": " ", + "serverUrl": "https://sas.analytium.co.uk:5000", "serverType": "SASJS", "httpsAgentOptions": { "allowInsecureRequests": false diff --git a/server/ms_getfile.sas b/server/ms_getfile.sas index 49d0c12..c0c6b88 100644 --- a/server/ms_getfile.sas +++ b/server/ms_getfile.sas @@ -11,6 +11,9 @@ @param [out] outref= (msgetfil) The fileref to contain the file. @param [in] mdebug= (0) Set to 1 to enable DEBUG messages +

SAS Macros

+ @li mf_getuniquefileref.sas + @li mf_getuniquename.sas **/ @@ -19,14 +22,20 @@ ,mdebug=0 ); -filename &outref temp; +/* use the recfm in a separate fileref to avoid issues with subsequent reads */ +%local binaryfref floc; +%let binaryfref=%mf_getuniquefileref(); +%let floc=%sysfunc(pathname(work))/%mf_getuniquename().txt; +filename &outref "&floc"; +filename &binaryfref "&floc" recfm=n; -proc http method='GET' out=&outref +proc http method='GET' out=&binaryfref url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc"; %if &mdebug=1 %then %do; debug level=2; %end; run; +filename &binaryfref clear; %mend ms_getfile;