1
0
mirror of https://github.com/sasjs/core.git synced 2025-12-11 06:24:35 +00:00

Merge pull request #36 from sasjs/filter_json_fixes

Filter json fixes
This commit is contained in:
Allan Bowe
2021-05-21 16:30:53 +03:00
committed by GitHub
4 changed files with 42 additions and 9 deletions

View File

@@ -99,7 +99,7 @@
/* send response in SASjs JSON format */ /* send response in SASjs JSON format */
data _null_; data _null_;
file _webout mod lrecl=32000; file _webout mod lrecl=32000 encoding='utf-8';
length msg $32767 debug $8; length msg $32767 debug $8;
sasdatetime=datetime(); sasdatetime=datetime();
msg=cats(symget('msg'),'\n\nLog Extract:\n',symget('logmsg')); msg=cats(symget('msg'),'\n\nLog Extract:\n',symget('logmsg'));

View File

@@ -78,7 +78,8 @@ run;
data &outds; data &outds;
if &sqlrc or &syscc or &syserr then do; if &sqlrc or &syscc or &syserr then do;
REASON_CD=coalescec(symget('SYSERRORTEXT'),symget('SYSWARNINGTEXT')); REASON_CD='VALIDATION_ERROR: '!!
coalescec(symget('SYSERRORTEXT'),symget('SYSWARNINGTEXT'));
output; output;
end; end;
else stop; else stop;
@@ -102,4 +103,4 @@ filename &fref1 clear;
%let syscc=1008; %let syscc=1008;
%end; %end;
%mend; %mend mp_filtervalidate;

View File

@@ -147,7 +147,7 @@
run; run;
%let ds=&fmtds; %let ds=&fmtds;
%end; /* &fmt=Y */ %end; /* &fmt=Y */
data _null_;file &jref mod ; data _null_;file &jref mod encoding='utf-8';
put "["; call symputx('cols',0,'l'); put "["; call symputx('cols',0,'l');
proc sort proc sort
data=sashelp.vcolumn(where=(libname='WORK' & memname="%upcase(&ds)")) data=sashelp.vcolumn(where=(libname='WORK' & memname="%upcase(&ds)"))

View File

@@ -6,6 +6,7 @@
@li mp_filtergenerate.sas @li mp_filtergenerate.sas
@li mp_filtervalidate.sas @li mp_filtervalidate.sas
@li mp_assertdsobs.sas @li mp_assertdsobs.sas
@li mp_assert.sas
**/ **/
@@ -41,14 +42,14 @@ run;
%mp_filtergenerate(work.inds,outref=myfilter) %mp_filtergenerate(work.inds,outref=myfilter)
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO) %mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
%mp_assertdsobs(work.results, %mp_assertdsobs(work.results,
desc=Valid filter, desc=Empty filter,
test=EMPTY, test=EMPTY,
outds=work.test_results outds=work.test_results
) )
/* invalid filter*/ /* invalid filter - char var, num val */
data work.inds; data work.inds;
infile datalines4 dsd; infile datalines4 dsd;
input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32. input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
@@ -60,9 +61,40 @@ run;
%mp_filtergenerate(work.inds,outref=myfilter) %mp_filtergenerate(work.inds,outref=myfilter)
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO) %mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
%let syscc=0; %let syscc=0;
%mp_assertdsobs(work.results, %let test3=0;
desc=Valid filter, data _null_;
test=EQUALS 1, set work.results;
if REASON_CD=:'VALIDATION_ERROR' then call symputx('test3',1);
putlog (_all_)(=);
stop;
run;
%mp_assert(
iftrue=(&test3=1),
desc=Checking char var could not receive num val,
outds=work.test_results outds=work.test_results
) )
/* invalid filter - num var, char val */
data work.inds;
infile datalines4 dsd;
input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
OPERATOR_NM:$10. RAW_VALUE:$4000.;
datalines4;
AND,AND,1,age,NE,"'M'"
;;;;
run;
%mp_filtergenerate(work.inds,outref=myfilter)
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
%let syscc=0;
%let test4=0;
data _null_;
set work.results;
if REASON_CD=:'VALIDATION_ERROR' then call symputx('test4',1);
putlog (_all_)(=);
stop;
run;
%mp_assert(
iftrue=(&test4=1),
desc=Checking num var could not receive char val,
outds=work.test_results
)