diff --git a/server/ms_triggerstp.sas b/server/ms_triggerstp.sas
index 3deb50d..a511a0f 100644
--- a/server/ms_triggerstp.sas
+++ b/server/ms_triggerstp.sas
@@ -39,6 +39,7 @@
SAS Macros
@li mf_getuniquefileref.sas
+ @li mf_getuniquelibref.sas
@li mf_getuniquename.sas
@li mp_abort.sas
@li mp_dropmembers.sas
@@ -54,7 +55,7 @@
,outds=work.ms_triggerstp
,mdebug=0
);
- %local dbg mainref authref boundary triggered_sid;
+ %local dbg mainref authref boundary libref triggered_sid;
%let mainref=%mf_getuniquefileref();
%let authref=%mf_getuniquefileref();
%let boundary=%mf_getuniquename();
@@ -81,16 +82,11 @@
%let optval=%sysfunc(getoption(bomfile));
options nobomfile;
- /* Add header to the content of the http request */
- data _null_;
- file &mainref termstr=crlf lrecl=32767;
- put "--&boundary";
- run;
-
/* Add params to the content */
data _null_;
file &mainref termstr=crlf lrecl=32767 mod;
length line $1000 name $32 value $32767;
+ put "--&boundary";
if _n_=1 then call missing(of _all_);
set &inputparams;
line=cats('Content-Disposition: form-data; name="',name,'"');
@@ -201,11 +197,12 @@
/* reset options */
options &optval;
- libname response JSON fileref=&outref;
+ %let libref=%mf_getuniquelibref();
+ libname &libref JSON fileref=&outref;
%let triggered_sid=%mf_getuniquename(prefix=triggered_sid_);
data work.&triggered_sid (keep=sessionid);
- set response.root;
+ set &libref..root;
%if &mdebug=1 %then %do;
putlog (_all_)(=);
@@ -226,6 +223,7 @@
filename &authref;
filename &mainref;
filename &outref;
+ libname &libref clear;
/* and remove temp dataset */
%mp_dropmembers(&triggered_sid,libref=work);
%end;
diff --git a/tests/serveronly/ms_triggerstp.test.sas b/tests/serveronly/ms_triggerstp.test.sas
index a8fb63f..a87cd62 100644
--- a/tests/serveronly/ms_triggerstp.test.sas
+++ b/tests/serveronly/ms_triggerstp.test.sas
@@ -11,6 +11,7 @@
@li mf_existds.sas
@li mp_assertdsobs.sas
@li mp_assertcols.sas
+ @li mf_getvartype.sas
@li ms_deletefile.sas
**/
@@ -51,11 +52,12 @@ options mprint;
,outds=work.mySessions
)
%mp_assertscope(COMPARE
- ,ignorelist=RESPONSE_JADP1LEN RESPONSE_JADPNUM RESPONSE_JADVLEN)
+ ,ignorelist=MCLIB0_JADP1LEN MCLIB0_JADPNUM MCLIB0_JADVLEN)
%mp_assert(iftrue=%str(%mf_existds(work.mySessions)=1)
,desc=Testing output exists
- ,outds=work.test_results)
+ ,outds=work.test_results
+)
%mp_assertdsobs(work.mySessions,
test=EQUALS 2,
@@ -65,7 +67,23 @@ options mprint;
%mp_assertcols(work.mySessions,
cols=sessionid,
test=ALL,
- desc=Testing column exists
+ desc=Testing column exists,
+ outds=work.test_results
+)
+
+data _null_;
+ retain contentCheck 1;
+ set work.mySessions end=last;
+ if missing(sessionID) then contentCheck = 0;
+ if last then do;
+ call symputx("contentCheck",contentCheck,"l");
+ end;
+run;
+%let typeCheck = %mf_getvartype(work.mySessions,sessionid);
+
+%mp_assert(iftrue=%str(&typeCheck = C and &contentCheck = 1)
+ ,desc=Testing type and content of output
+ ,outds=work.test_results
)
%ms_deletefile(/sasjs/tests/&fname1..sas)