mirror of
https://github.com/sasjs/core.git
synced 2025-12-22 10:41:20 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47a33452e0 | ||
|
|
fb21a0adfd | ||
|
|
e01b06b640 | ||
|
|
24380ddf26 | ||
|
|
1ef42d45af | ||
|
|
6ee13a2779 | ||
|
|
ffd2e135dc | ||
|
|
7f2ad5fc66 | ||
| ff1eb54cc3 | |||
|
|
d6235c6357 | ||
|
|
98118adb9a |
497
all.sas
497
all.sas
@@ -300,7 +300,7 @@ options noquotelenmax;
|
|||||||
@details Returns 0 if ANY of the variables do not exist, or 1 if they ALL do.
|
@details Returns 0 if ANY of the variables do not exist, or 1 if they ALL do.
|
||||||
Usage:
|
Usage:
|
||||||
|
|
||||||
%put %mf_existVarList(sashelp.class, age sex name dummyvar)
|
%put %mf_existVarList(sashelp.class, age sex name dummyvar);
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mf_abort.sas
|
@li mf_abort.sas
|
||||||
@@ -325,7 +325,7 @@ options noquotelenmax;
|
|||||||
%let dsid=%sysfunc(open(&libds,is));
|
%let dsid=%sysfunc(open(&libds,is));
|
||||||
|
|
||||||
%if &dsid=0 %then %do;
|
%if &dsid=0 %then %do;
|
||||||
%put WARNING: unable to open &libds in mf_existvarlist (&dsid);
|
%put %str(WARN)ING: unable to open &libds in mf_existvarlist (&dsid);
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %sysfunc(attrn(&dsid,NVARS))=0 %then %do;
|
%if %sysfunc(attrn(&dsid,NVARS))=0 %then %do;
|
||||||
@@ -377,7 +377,7 @@ options noquotelenmax;
|
|||||||
%local dsid rc;
|
%local dsid rc;
|
||||||
%let dsid=%sysfunc(open(&libds,is));
|
%let dsid=%sysfunc(open(&libds,is));
|
||||||
%if &dsid = 0 %then %do;
|
%if &dsid = 0 %then %do;
|
||||||
%put WARNING: Cannot open %trim(&libds), system message below;
|
%put %str(WARN)ING: Cannot open %trim(&libds), system message below;
|
||||||
%put %sysfunc(sysmsg());
|
%put %sysfunc(sysmsg());
|
||||||
-1
|
-1
|
||||||
%end;
|
%end;
|
||||||
@@ -1602,7 +1602,7 @@ Usage:
|
|||||||
|
|
||||||
%local count_base count_extr i i2 extr_word base_word match outvar;
|
%local count_base count_extr i i2 extr_word base_word match outvar;
|
||||||
%if %length(&str1)=0 or %length(&str2)=0 %then %do;
|
%if %length(&str1)=0 or %length(&str2)=0 %then %do;
|
||||||
%put WARNING: empty string provided!;
|
%put %str(WARN)ING: empty string provided!;
|
||||||
%put base string (str1)= &str1;
|
%put base string (str1)= &str1;
|
||||||
%put compare string (str2) = &str2;
|
%put compare string (str2) = &str2;
|
||||||
%return;
|
%return;
|
||||||
@@ -1782,6 +1782,295 @@ Usage:
|
|||||||
%mend;
|
%mend;
|
||||||
|
|
||||||
/** @endcond *//**
|
/** @endcond *//**
|
||||||
|
@file
|
||||||
|
@brief Asserts the existence (or not) of columns
|
||||||
|
@details Useful in the context of writing sasjs tests. The results of the
|
||||||
|
test are _appended_ to the &outds. table.
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
%mp_assertcols(sashelp.class,
|
||||||
|
cols=name age sex,
|
||||||
|
test=ALL,
|
||||||
|
desc=check all columns exist
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_assertcols(sashelp.class,
|
||||||
|
cols=a b c,
|
||||||
|
test=NONE
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_assertcols(sashelp.class,
|
||||||
|
cols=age depth,
|
||||||
|
test=ANY
|
||||||
|
)
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_existds.sas
|
||||||
|
@li mf_existvarlist.sas
|
||||||
|
@li mf_wordsinstr1butnotstr2.sas
|
||||||
|
@li mp_abort.sas
|
||||||
|
|
||||||
|
|
||||||
|
@param [in] inds The input library.dataset to test for values
|
||||||
|
@param [in] cols= The list of columns to check for
|
||||||
|
@param [in] desc= (Testing observations) The user provided test description
|
||||||
|
@param [in] test= (ALL) The test to apply. Valid values are:
|
||||||
|
@li ALL - Test is a PASS if ALL columns exist in &inds
|
||||||
|
@li ANY - Test is a PASS if ANY of the columns exist in &inds
|
||||||
|
@li NONE - Test is a PASS if NONE of the columns exist in &inds
|
||||||
|
@param [out] outds= (work.test_results) The output dataset to contain the
|
||||||
|
results. If it does not exist, it will be created, with the following format:
|
||||||
|
|TEST_DESCRIPTION:$256|TEST_RESULT:$4|TEST_COMMENTS:$256|
|
||||||
|
|---|---|---|
|
||||||
|
|User Provided description|PASS|Column &inds contained ALL columns|
|
||||||
|
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
@li mp_assertcolvals.sas
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
|
||||||
|
@version 9.2
|
||||||
|
@author Allan Bowe
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_assertcols(inds,
|
||||||
|
cols=0,
|
||||||
|
test=ALL,
|
||||||
|
desc=0,
|
||||||
|
outds=work.test_results
|
||||||
|
)/*/STORE SOURCE*/;
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc - on macro entry)
|
||||||
|
)
|
||||||
|
|
||||||
|
%local lib ds ;
|
||||||
|
%let lib=%scan(&inds,1,%str(.));
|
||||||
|
%let ds=%scan(&inds,2,%str(.));
|
||||||
|
%let cols=%upcase(&cols);
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (%mf_existds(&lib..&ds)=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&lib..&ds not found!)
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&cols=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(No cols provided)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
%let test=%upcase(&test);
|
||||||
|
|
||||||
|
%if &test ne ANY and &test ne ALL and &test ne NONE %then %do;
|
||||||
|
%mp_abort(
|
||||||
|
mac=&sysmacroname,
|
||||||
|
msg=%str(Invalid test - &test)
|
||||||
|
)
|
||||||
|
%end;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* now do the actual test!
|
||||||
|
*/
|
||||||
|
%local result;
|
||||||
|
%if %mf_existVarList(&inds,&cols)=1 %then %let result=ALL;
|
||||||
|
%else %do;
|
||||||
|
%local targetcols compare;
|
||||||
|
%let targetcols=%upcase(%mf_getvarlist(&inds));
|
||||||
|
%let compare=%mf_wordsinstr1butnotstr2(
|
||||||
|
Str1=&cols,
|
||||||
|
Str2=&targetcols
|
||||||
|
);
|
||||||
|
%if %cmpres(&compare)=%cmpres(&cols) %then %let result=NONE;
|
||||||
|
%else %let result=SOME;
|
||||||
|
%end;
|
||||||
|
|
||||||
|
data;
|
||||||
|
length test_description $256 test_result $4 test_comments $256;
|
||||||
|
test_description=symget('desc');
|
||||||
|
if test_description='0'
|
||||||
|
then test_description="Testing &inds for existence of &test of: &cols";
|
||||||
|
|
||||||
|
test_result='FAIL';
|
||||||
|
test_comments="&sysmacroname: &inds has &result columns ";
|
||||||
|
%if &test=ALL %then %do;
|
||||||
|
%if &result=ALL %then %do;
|
||||||
|
test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%end;
|
||||||
|
%else %if &test=ANY %then %do;
|
||||||
|
%if &result=SOME %then %do;
|
||||||
|
test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%end;
|
||||||
|
%else %if &test=NONE %then %do;
|
||||||
|
%if &result=NONE %then %do;
|
||||||
|
test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%end;
|
||||||
|
%else %do;
|
||||||
|
test_comments="&sysmacroname: Unsatisfied test condition - &test";
|
||||||
|
%end;
|
||||||
|
run;
|
||||||
|
|
||||||
|
%local ds;
|
||||||
|
%let ds=&syslast;
|
||||||
|
proc append base=&outds data=&ds;
|
||||||
|
run;
|
||||||
|
proc sql;
|
||||||
|
drop table &ds;
|
||||||
|
|
||||||
|
%mend;/**
|
||||||
|
@file
|
||||||
|
@brief Asserts the values in a column
|
||||||
|
@details Useful in the context of writing sasjs tests. The results of the
|
||||||
|
test are _appended_ to the &outds. table.
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
data work.checkds;
|
||||||
|
do checkval='Jane','James','Jill';
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
run;
|
||||||
|
%mp_assertcolvals(sashelp.class.name,
|
||||||
|
checkvals=work.checkds.checkval,
|
||||||
|
desc=At least one value has a match,
|
||||||
|
test=ANYVAL
|
||||||
|
)
|
||||||
|
|
||||||
|
data work.check;
|
||||||
|
do val='M','F';
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
run;
|
||||||
|
%mp_assertcolvals(sashelp.class.sex,
|
||||||
|
checkvals=work.check.val,
|
||||||
|
desc=All values have a match,
|
||||||
|
test=ALLVALS
|
||||||
|
)
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_existds.sas
|
||||||
|
@li mf_nobs.sas
|
||||||
|
@li mp_abort.sas
|
||||||
|
|
||||||
|
|
||||||
|
@param [in] indscol The input library.dataset.column to test for values
|
||||||
|
@param [in] checkvals= A library.dataset.column value containing a UNIQUE
|
||||||
|
list of values to be compared against the source (indscol).
|
||||||
|
@param [in] desc= (Testing observations) The user provided test description
|
||||||
|
@param [in] test= (ALLVALS) The test to apply. Valid values are:
|
||||||
|
@li ALLVALS - Test is a PASS if ALL values have a match in checkvals
|
||||||
|
@li ANYVAL - Test is a PASS if at least 1 value has a match in checkvals
|
||||||
|
@param [out] outds= (work.test_results) The output dataset to contain the
|
||||||
|
results. If it does not exist, it will be created, with the following format:
|
||||||
|
|TEST_DESCRIPTION:$256|TEST_RESULT:$4|TEST_COMMENTS:$256|
|
||||||
|
|---|---|---|
|
||||||
|
|User Provided description|PASS|Column &indscol contained ALL target vals|
|
||||||
|
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
|
||||||
|
@version 9.2
|
||||||
|
@author Allan Bowe
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_assertcolvals(indscol,
|
||||||
|
checkvals=0,
|
||||||
|
test=ALLVALS,
|
||||||
|
desc=mp_assertcolvals - no desc provided,
|
||||||
|
outds=work.test_results
|
||||||
|
)/*/STORE SOURCE*/;
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc - on macro entry)
|
||||||
|
)
|
||||||
|
|
||||||
|
%local lib ds col clib cds ccol nobs;
|
||||||
|
%let lib=%scan(&indscol,1,%str(.));
|
||||||
|
%let ds=%scan(&indscol,2,%str(.));
|
||||||
|
%let col=%scan(&indscol,3,%str(.));
|
||||||
|
%mp_abort(iftrue= (%mf_existds(&lib..&ds)=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&lib..&ds not found!)
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&checkvals=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(Set CHECKVALS to a library.dataset.column containing check vals)
|
||||||
|
)
|
||||||
|
%let clib=%scan(&checkvals,1,%str(.));
|
||||||
|
%let cds=%scan(&checkvals,2,%str(.));
|
||||||
|
%let ccol=%scan(&checkvals,3,%str(.));
|
||||||
|
%mp_abort(iftrue= (%mf_existds(&clib..&cds)=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&clib..&cds not found!)
|
||||||
|
)
|
||||||
|
%let nobs=%mf_nobs(&clib..&cds);
|
||||||
|
%mp_abort(iftrue= (&nobs=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&clib..&cds is empty!)
|
||||||
|
)
|
||||||
|
|
||||||
|
%let test=%upcase(&test);
|
||||||
|
|
||||||
|
%if &test ne ALLVALS and &test ne ANYVAL %then %do;
|
||||||
|
%mp_abort(
|
||||||
|
mac=&sysmacroname,
|
||||||
|
msg=%str(Invalid test - &test)
|
||||||
|
)
|
||||||
|
%end;
|
||||||
|
|
||||||
|
%local result orig;
|
||||||
|
%let result=-1;
|
||||||
|
%let orig=-1;
|
||||||
|
proc sql noprint;
|
||||||
|
select count(*) into: result
|
||||||
|
from &lib..&ds
|
||||||
|
where &col not in (
|
||||||
|
select &ccol from &clib..&cds
|
||||||
|
);
|
||||||
|
select count(*) into: orig from &lib..&ds;
|
||||||
|
quit;
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc after macro query)
|
||||||
|
)
|
||||||
|
|
||||||
|
data;
|
||||||
|
length test_description $256 test_result $4 test_comments $256;
|
||||||
|
test_description=symget('desc');
|
||||||
|
test_result='FAIL';
|
||||||
|
test_comments="&sysmacroname: &lib..&ds..&col has &result values "
|
||||||
|
!!"not in &clib..&cds..&ccol ";
|
||||||
|
%if &test=ANYVAL %then %do;
|
||||||
|
if &result < &orig then test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%else %if &test=ALLVALS %then %do;
|
||||||
|
if &result=0 then test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%else %do;
|
||||||
|
test_comments="&sysmacroname: Unsatisfied test condition - &test";
|
||||||
|
%end;
|
||||||
|
run;
|
||||||
|
|
||||||
|
%local ds;
|
||||||
|
%let ds=&syslast;
|
||||||
|
proc append base=&outds data=&ds;
|
||||||
|
run;
|
||||||
|
proc sql;
|
||||||
|
drop table &ds;
|
||||||
|
|
||||||
|
%mend;/**
|
||||||
@file
|
@file
|
||||||
@brief Asserts the number of observations in a dataset
|
@brief Asserts the number of observations in a dataset
|
||||||
@details Useful in the context of writing sasjs tests. The results of the
|
@details Useful in the context of writing sasjs tests. The results of the
|
||||||
@@ -1808,6 +2097,8 @@ Usage:
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
|User Provided description|PASS|Dataset &inds has XX obs|
|
|User Provided description|PASS|Dataset &inds has XX obs|
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_assertcolvals.sas
|
||||||
|
|
||||||
@version 9.2
|
@version 9.2
|
||||||
@author Allan Bowe
|
@author Allan Bowe
|
||||||
@@ -2635,7 +2926,7 @@ run;
|
|||||||
%local i setds nvars;
|
%local i setds nvars;
|
||||||
|
|
||||||
%if not %sysfunc(exist(&base_ds)) %then %do;
|
%if not %sysfunc(exist(&base_ds)) %then %do;
|
||||||
%put WARNING: &base_ds does not exist;
|
%put %str(WARN)ING: &base_ds does not exist;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -2653,7 +2944,7 @@ select count(*) into: nvars from dictionary.columns
|
|||||||
where libname="%scan(%upcase(&base_ds),1)"
|
where libname="%scan(%upcase(&base_ds),1)"
|
||||||
and memname="%scan(%upcase(&base_ds),2)";
|
and memname="%scan(%upcase(&base_ds),2)";
|
||||||
%if &nvars=0 %then %do;
|
%if &nvars=0 %then %do;
|
||||||
%put WARNING: Dataset &base_ds has no variables! It will not be converted.;
|
%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -2864,7 +3155,7 @@ quit;
|
|||||||
)/*/STORE SOURCE*/;
|
)/*/STORE SOURCE*/;
|
||||||
|
|
||||||
%if not %sysfunc(exist(&ds)) %then %do;
|
%if not %sysfunc(exist(&ds)) %then %do;
|
||||||
%put WARNING: &ds does not exist;
|
%put %str(WARN)ING: &ds does not exist;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -2916,7 +3207,7 @@ run;
|
|||||||
|
|
||||||
The input table should have the following format:
|
The input table should have the following format:
|
||||||
|
|
||||||
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|
|
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$4000|
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
|AND|AND|1|AGE|=|12|
|
|AND|AND|1|AGE|=|12|
|
||||||
|AND|AND|1|SEX|<=|'M'|
|
|AND|AND|1|SEX|<=|'M'|
|
||||||
@@ -2929,7 +3220,7 @@ run;
|
|||||||
@li SUBGROUP_LOGIC - only AND/OR
|
@li SUBGROUP_LOGIC - only AND/OR
|
||||||
@li SUBGROUP_ID - only integers
|
@li SUBGROUP_ID - only integers
|
||||||
@li VARIABLE_NM - must be in the target table
|
@li VARIABLE_NM - must be in the target table
|
||||||
@li OPERATOR_NM - only =/>/</<=/>=/BETWEEN/IN/NOT IN/NOT EQUAL/CONTAINS
|
@li OPERATOR_NM - only =/>/</<=/>=/BETWEEN/IN/NOT IN/NE/CONTAINS
|
||||||
@li RAW_VALUE - no unquoted values except integers, commas and spaces.
|
@li RAW_VALUE - no unquoted values except integers, commas and spaces.
|
||||||
|
|
||||||
@returns The &outds table containing any bad rows, plus a REASON_CD column.
|
@returns The &outds table containing any bad rows, plus a REASON_CD column.
|
||||||
@@ -2944,11 +3235,15 @@ run;
|
|||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mp_abort.sas
|
@li mp_abort.sas
|
||||||
|
@li mf_getuniquefileref.sas
|
||||||
@li mf_getvarlist.sas
|
@li mf_getvarlist.sas
|
||||||
@li mf_nobs.sas
|
@li mf_nobs.sas
|
||||||
|
@li mp_filtergenerate.sas
|
||||||
|
@li mp_filtervalidate.sas
|
||||||
|
|
||||||
<h4> Related Macros </h4>
|
<h4> Related Macros </h4>
|
||||||
@li mp_filtergenerate.sas
|
@li mp_filtergenerate.sas
|
||||||
|
@li mp_filtervalidate.sas
|
||||||
|
|
||||||
@version 9.3
|
@version 9.3
|
||||||
@author Allan Bowe
|
@author Allan Bowe
|
||||||
@@ -3052,9 +3347,19 @@ run;
|
|||||||
)
|
)
|
||||||
%end;
|
%end;
|
||||||
%let syscc=1008;
|
%let syscc=1008;
|
||||||
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* syntax checking passed but it does not mean the filter is valid
|
||||||
|
* for that we can run a proc sql validate query
|
||||||
|
*/
|
||||||
|
%local fref1;
|
||||||
|
%let fref1=%mf_getuniquefileref();
|
||||||
|
%mp_filtergenerate(&inds,outref=&fref1)
|
||||||
|
|
||||||
|
/* this macro will also set syscc to 1008 if any issues found */
|
||||||
|
%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)
|
||||||
|
|
||||||
%mend;
|
%mend;
|
||||||
/**
|
/**
|
||||||
@@ -3064,7 +3369,7 @@ run;
|
|||||||
This feature is used to create dynamic dropdowns in [Data Controller for SAS®](
|
This feature is used to create dynamic dropdowns in [Data Controller for SAS®](
|
||||||
https://datacontroller.io). The input table should be in the format below:
|
https://datacontroller.io). The input table should be in the format below:
|
||||||
|
|
||||||
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|
|
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$4000|
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
|AND|AND|1|AGE|=|12|
|
|AND|AND|1|AGE|=|12|
|
||||||
|AND|AND|1|SEX|<=|'M'|
|
|AND|AND|1|SEX|<=|'M'|
|
||||||
@@ -3080,7 +3385,7 @@ run;
|
|||||||
data work.filtertable;
|
data work.filtertable;
|
||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,AND,1,AGE,=,12
|
AND,AND,1,AGE,=,12
|
||||||
AND,AND,1,SEX,<=,"'M'"
|
AND,AND,1,SEX,<=,"'M'"
|
||||||
@@ -3115,6 +3420,7 @@ run;
|
|||||||
|
|
||||||
<h4> Related Macros </h4>
|
<h4> Related Macros </h4>
|
||||||
@li mp_filtercheck.sas
|
@li mp_filtercheck.sas
|
||||||
|
@li mp_filtervalidate.sas
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mp_abort.sas
|
@li mp_abort.sas
|
||||||
@@ -3146,16 +3452,121 @@ filename &outref temp;
|
|||||||
file &outref lrecl=32800;
|
file &outref lrecl=32800;
|
||||||
set &inds end=last;
|
set &inds end=last;
|
||||||
by SUBGROUP_ID;
|
by SUBGROUP_ID;
|
||||||
if _n_=1 then put '(';
|
if _n_=1 then put '((';
|
||||||
else if first.SUBGROUP_ID then put +1 GROUP_LOGIC '(';
|
else if first.SUBGROUP_ID then put +1 GROUP_LOGIC '(';
|
||||||
else put +2 SUBGROUP_LOGIC;
|
else put +2 SUBGROUP_LOGIC;
|
||||||
|
|
||||||
put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;
|
put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;
|
||||||
|
|
||||||
if last.SUBGROUP_ID then put ')'@;
|
if last.SUBGROUP_ID then put ')'@;
|
||||||
|
if last then put ')';
|
||||||
run;
|
run;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
%mend;
|
||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Checks a generated filter query for validity
|
||||||
|
@details Runs a generated filter in proc sql with the validate option.
|
||||||
|
Used in mp_filtercheck.sas in an fcmp container.
|
||||||
|
|
||||||
|
Built to support dynamic filtering in
|
||||||
|
[Data Controller for SAS®](https://datacontroller.io).
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
data work.filtertable;
|
||||||
|
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,=,12
|
||||||
|
AND,AND,1,SEX,<=,"'M'"
|
||||||
|
AND,OR,2,Name,NOT IN,"('Jane','Alfred')"
|
||||||
|
AND,OR,2,Weight,>=,7
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
|
||||||
|
%mp_filtergenerate(work.filtertable,outref=myfilter)
|
||||||
|
|
||||||
|
%mp_filtervalidate(myfilter,sashelp.class)
|
||||||
|
|
||||||
|
|
||||||
|
@returns The SYSCC value will be 1008 if there are validation issues.
|
||||||
|
|
||||||
|
@param [in] inref The input fileref to validate (generated by
|
||||||
|
mp_filtergenerate.sas)
|
||||||
|
@param [in] targetds The target dataset against which to verify the query
|
||||||
|
@param [out] abort= (YES) If YES will call mp_abort.sas on any exceptions
|
||||||
|
@param [out] outds= (work.mp_filtervalidate) Output dataset containing the
|
||||||
|
error / warning message, if one exists. If this table contains any rows,
|
||||||
|
there are problems!
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_getuniquefileref.sas
|
||||||
|
@li mf_nobs.sas
|
||||||
|
@li mp_abort.sas
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_filtercheck.sas
|
||||||
|
@li mp_filtergenerate.sas
|
||||||
|
|
||||||
|
@version 9.3
|
||||||
|
@author Allan Bowe
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)
|
||||||
|
)
|
||||||
|
|
||||||
|
%local fref1;
|
||||||
|
%let fref1=%mf_getuniquefileref();
|
||||||
|
|
||||||
|
data _null_;
|
||||||
|
file &fref1;
|
||||||
|
infile &inref end=eof;
|
||||||
|
if _n_=1 then do;
|
||||||
|
put "proc sql;";
|
||||||
|
put "validate select * from &targetds";
|
||||||
|
put "where " ;
|
||||||
|
end;
|
||||||
|
input;
|
||||||
|
put _infile_;
|
||||||
|
putlog _infile_;
|
||||||
|
if eof then put ";quit;";
|
||||||
|
run;
|
||||||
|
|
||||||
|
%inc &fref1;
|
||||||
|
|
||||||
|
data &outds;
|
||||||
|
if &sqlrc or &syscc or &syserr then do;
|
||||||
|
REASON_CD=coalescec(symget('SYSERRORTEXT'),symget('SYSWARNINGTEXT'));
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
else stop;
|
||||||
|
run;
|
||||||
|
|
||||||
|
filename &fref1 clear;
|
||||||
|
|
||||||
|
%if %mf_nobs(&outds)>0 %then %do;
|
||||||
|
%if &abort=YES %then %do;
|
||||||
|
data _null_;
|
||||||
|
set &outds;
|
||||||
|
call symputx('REASON_CD',reason_cd,'l');
|
||||||
|
stop;
|
||||||
|
run;
|
||||||
|
%mp_abort(
|
||||||
|
mac=&sysmacroname,
|
||||||
|
msg=%str(Filter issues in &inref: %quote(&reason_cd))
|
||||||
|
)
|
||||||
|
%end;
|
||||||
|
%let syscc=1008;
|
||||||
|
%end;
|
||||||
|
|
||||||
%mend;
|
%mend;
|
||||||
/**
|
/**
|
||||||
@file mp_getconstraints.sas
|
@file mp_getconstraints.sas
|
||||||
@@ -5989,7 +6400,7 @@ run;
|
|||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if &syscc ge 4 %then %do;
|
%if &syscc ge 4 %then %do;
|
||||||
%put WARNING: SYSCC=&syscc, exiting &sysmacroname;
|
%put %str(WARN)ING: SYSCC=&syscc, exiting &sysmacroname;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -6348,7 +6759,7 @@ run;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if %length(&open_passthrough)>0 %then %do;
|
%if %length(&open_passthrough)>0 %then %do;
|
||||||
%put WARNING: Passthrough option for postgres not yet supported;
|
%put %str(WARN)ING: Passthrough option for postgres not yet supported;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
@@ -6471,8 +6882,8 @@ run;
|
|||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
%put WARNING: Engine &engine is currently unsupported;
|
%put %str(WARN)ING: Engine &engine is currently unsupported;
|
||||||
%put WARNING- Please contact your support team.;
|
%put %str(WARN)ING- Please contact your support team.;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7164,7 +7575,7 @@ data _null_;
|
|||||||
putlog (_all_)(=);
|
putlog (_all_)(=);
|
||||||
run;
|
run;
|
||||||
%if &checktype = SASLibrary %then %do;
|
%if &checktype = SASLibrary %then %do;
|
||||||
%put WARNING: Library (&liburi) already exists with libname (&libname) ;
|
%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7179,7 +7590,7 @@ data _null_;
|
|||||||
putlog (_all_)(=);
|
putlog (_all_)(=);
|
||||||
run;
|
run;
|
||||||
%if &checktype = SASLibrary %then %do;
|
%if &checktype = SASLibrary %then %do;
|
||||||
%put WARNING: Library (&liburi) already exists with libref (&libref) ;
|
%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7199,7 +7610,7 @@ data _null_;
|
|||||||
call symputx('treeuri',uri,'l');
|
call symputx('treeuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &foldertype ne Tree %then %do;
|
%if &foldertype ne Tree %then %do;
|
||||||
%put WARNING: Tree &tree does not exist!;
|
%put %str(WARN)ING: Tree &tree does not exist!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7307,7 +7718,7 @@ filename &frefout temp;
|
|||||||
* check SAS version
|
* check SAS version
|
||||||
*/
|
*/
|
||||||
%if %sysevalf(&sysver lt 9.3) %then %do;
|
%if %sysevalf(&sysver lt 9.3) %then %do;
|
||||||
%put WARNING: Version 9.3 or later required;
|
%put %str(WARN)ING: Version 9.3 or later required;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7515,7 +7926,7 @@ data _null_;
|
|||||||
call symputx('treeuri',uri,'l');
|
call symputx('treeuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &foldertype ne Tree %then %do;
|
%if &foldertype ne Tree %then %do;
|
||||||
%put WARNING: Tree &tree does not exist!;
|
%put %str(WARN)ING: Tree &tree does not exist!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7530,7 +7941,7 @@ data _null_;
|
|||||||
call symputx('stpuri',uri,'l');
|
call symputx('stpuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &cmtype = ClassifierMap %then %do;
|
%if &cmtype = ClassifierMap %then %do;
|
||||||
%put WARNING: Stored Process &stpname already exists in &tree!;
|
%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7538,14 +7949,14 @@ run;
|
|||||||
* Check that the physical file exists
|
* Check that the physical file exists
|
||||||
*/
|
*/
|
||||||
%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;
|
%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;
|
||||||
%put WARNING: FILE *&directory/&filename* NOT FOUND!;
|
%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if &stptype=1 %then %do;
|
%if &stptype=1 %then %do;
|
||||||
/* type 1 STP - where code is stored on filesystem */
|
/* type 1 STP - where code is stored on filesystem */
|
||||||
%if %sysevalf(&sysver lt 9.2) %then %do;
|
%if %sysevalf(&sysver lt 9.2) %then %do;
|
||||||
%put WARNING: Version 9.2 or later required;
|
%put %str(WARN)ING: Version 9.2 or later required;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7559,7 +7970,7 @@ run;
|
|||||||
%if &checkdirtype ne Directory %then %do;
|
%if &checkdirtype ne Directory %then %do;
|
||||||
%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)
|
%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)
|
||||||
%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;
|
%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;
|
||||||
%put WARNING: The directory object does not exist for &directory;
|
%put %str(WARN)ING: The directory object does not exist for &directory;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
@@ -7577,12 +7988,12 @@ run;
|
|||||||
length id $20 type $256;
|
length id $20 type $256;
|
||||||
__rc=metadata_resolve("&treeuri",type,id);
|
__rc=metadata_resolve("&treeuri",type,id);
|
||||||
if type ne 'Tree' then do;
|
if type ne 'Tree' then do;
|
||||||
putlog "WARNING: Invalid tree URI: &treeuri";
|
putlog "%str(WARN)ING: Invalid tree URI: &treeuri";
|
||||||
stopme=1;
|
stopme=1;
|
||||||
end;
|
end;
|
||||||
__rc=metadata_resolve(directoryuri,type,id);
|
__rc=metadata_resolve(directoryuri,type,id);
|
||||||
if type ne 'Directory' then do;
|
if type ne 'Directory' then do;
|
||||||
putlog 'WARNING: Invalid directory URI: ' directoryuri;
|
putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;
|
||||||
stopme=1;
|
stopme=1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -7591,7 +8002,7 @@ run;
|
|||||||
if type ne 'LogicalServer' then do;
|
if type ne 'LogicalServer' then do;
|
||||||
__rc=metadata_getnobj("omsobj:LogicalServer?@Name='&server'",1,serveruri);
|
__rc=metadata_getnobj("omsobj:LogicalServer?@Name='&server'",1,serveruri);
|
||||||
if serveruri='' then do;
|
if serveruri='' then do;
|
||||||
putlog "WARNING: Invalid server: &server";
|
putlog "%str(WARN)ING: Invalid server: &server";
|
||||||
stopme=1;
|
stopme=1;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -7614,7 +8025,7 @@ run;
|
|||||||
rc6 = METADATA_SETATTR(prompturi, 'GroupInfo',groupinfo);
|
rc6 = METADATA_SETATTR(prompturi, 'GroupInfo',groupinfo);
|
||||||
|
|
||||||
if sum(of rc1-rc6) ne 0 then do;
|
if sum(of rc1-rc6) ne 0 then do;
|
||||||
putlog 'WARNING: Issue creating prompt.';
|
putlog "%str(WARN)ING: Issue creating prompt.";
|
||||||
if prompturi ne . then do;
|
if prompturi ne . then do;
|
||||||
putlog ' Removing orphan: ' prompturi;
|
putlog ' Removing orphan: ' prompturi;
|
||||||
rc = METADATA_DELOBJ(prompturi);
|
rc = METADATA_DELOBJ(prompturi);
|
||||||
@@ -7629,7 +8040,7 @@ run;
|
|||||||
rc9=METADATA_SETATTR(fileuri, 'IsARelativeName','1');
|
rc9=METADATA_SETATTR(fileuri, 'IsARelativeName','1');
|
||||||
rc10=METADATA_SETASSN(fileuri, 'Directories','MODIFY',directoryuri);
|
rc10=METADATA_SETASSN(fileuri, 'Directories','MODIFY',directoryuri);
|
||||||
if sum(of rc7-rc10) ne 0 then do;
|
if sum(of rc7-rc10) ne 0 then do;
|
||||||
putlog 'WARNING: Issue creating file.';
|
putlog "%str(WARN)ING: Issue creating file.";
|
||||||
if fileuri ne . then do;
|
if fileuri ne . then do;
|
||||||
putlog ' Removing orphans:' prompturi fileuri;
|
putlog ' Removing orphans:' prompturi fileuri;
|
||||||
rc = METADATA_DELOBJ(prompturi);
|
rc = METADATA_DELOBJ(prompturi);
|
||||||
@@ -7648,7 +8059,7 @@ run;
|
|||||||
!!"<OutputParameters/></StoredProcess>";
|
!!"<OutputParameters/></StoredProcess>";
|
||||||
rc14= METADATA_SETATTR(texturi, 'StoredText',storedtext);
|
rc14= METADATA_SETATTR(texturi, 'StoredText',storedtext);
|
||||||
if sum(of rc11-rc14) ne 0 then do;
|
if sum(of rc11-rc14) ne 0 then do;
|
||||||
putlog 'WARNING: Issue creating TextStore.';
|
putlog "%str(WARN)ING: Issue creating TextStore.";
|
||||||
if texturi ne . then do;
|
if texturi ne . then do;
|
||||||
putlog ' Removing orphans: ' prompturi fileuri texturi;
|
putlog ' Removing orphans: ' prompturi fileuri texturi;
|
||||||
rc = METADATA_DELOBJ(prompturi);
|
rc = METADATA_DELOBJ(prompturi);
|
||||||
@@ -7696,7 +8107,7 @@ run;
|
|||||||
%else %if &stptype=2 %then %do;
|
%else %if &stptype=2 %then %do;
|
||||||
/* type 2 stp - code is stored in metadata */
|
/* type 2 stp - code is stored in metadata */
|
||||||
%if %sysevalf(&sysver lt 9.3) %then %do;
|
%if %sysevalf(&sysver lt 9.3) %then %do;
|
||||||
%put WARNING: SAS version 9.3 or later required to create type2 STPs;
|
%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
/* check we have the correct ServerContext */
|
/* check we have the correct ServerContext */
|
||||||
@@ -7708,7 +8119,7 @@ run;
|
|||||||
call symputx('serveruri',serveruri);
|
call symputx('serveruri',serveruri);
|
||||||
run;
|
run;
|
||||||
%if &serveruri=NOTFOUND %then %do;
|
%if &serveruri=NOTFOUND %then %do;
|
||||||
%put WARNING: ServerContext *&server* not found!;
|
%put %str(WARN)ING: ServerContext *&server* not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -7779,7 +8190,7 @@ run;
|
|||||||
|
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
%put WARNING: STPTYPE=*&stptype* not recognised!;
|
%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%mend;/**
|
%mend;/**
|
||||||
@@ -8226,7 +8637,7 @@ data _null_;
|
|||||||
call symputx('stpuri',uri,'l');
|
call symputx('stpuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &type ne Document %then %do;
|
%if &type ne Document %then %do;
|
||||||
%put WARNING: No Document found at ⌖
|
%put %str(WARN)ING: No Document found at ⌖
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -8840,7 +9251,7 @@ data _null_;
|
|||||||
when ('
') rec='0D'x;
|
when ('
') rec='0D'x;
|
||||||
when ('$' ) rec='$' ;
|
when ('$' ) rec='$' ;
|
||||||
when ('	') rec='09'x;
|
when ('	') rec='09'x;
|
||||||
otherwise putlog "WARNING: missing value for " entity=;
|
otherwise putlog "%str(WARN)ING: missing value for " entity=;
|
||||||
end;
|
end;
|
||||||
rc =fput(fileid, substr(rec,1,1));
|
rc =fput(fileid, substr(rec,1,1));
|
||||||
rc =fwrite(fileid);
|
rc =fwrite(fileid);
|
||||||
@@ -10640,7 +11051,7 @@ run;
|
|||||||
when ('
') rec='0D'x;
|
when ('
') rec='0D'x;
|
||||||
when ('$' ) rec='$' ;
|
when ('$' ) rec='$' ;
|
||||||
when ('	') rec='09'x;
|
when ('	') rec='09'x;
|
||||||
otherwise putlog "WARNING: missing value for " entity=;
|
otherwise putlog "%str(WARN)ING: missing value for " entity=;
|
||||||
end;
|
end;
|
||||||
rc =fput(fileid, substr(rec,1,1));
|
rc =fput(fileid, substr(rec,1,1));
|
||||||
rc =fwrite(fileid);
|
rc =fwrite(fileid);
|
||||||
@@ -11039,7 +11450,7 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if &appuri=stopifempty %then %do;
|
%if &appuri=stopifempty %then %do;
|
||||||
%put WARNING: &app.(Application) not found!;
|
%put %str(WARN)ING: &app.(Application) not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -11160,12 +11571,12 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if &tsuri=stopifempty %then %do;
|
%if &tsuri=stopifempty %then %do;
|
||||||
%put WARNING: &path/&name.(Document) not found!;
|
%put %str(WARN)ING: &path/&name.(Document) not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %length(&text)<2 %then %do;
|
%if %length(&text)<2 %then %do;
|
||||||
%put WARNING: No text supplied!!;
|
%put %str(WARN)ING: No text supplied!!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -11251,7 +11662,7 @@ data _null_;
|
|||||||
call symputx('stpuri',uri,'l');
|
call symputx('stpuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &cmtype ne ClassifierMap %then %do;
|
%if &cmtype ne ClassifierMap %then %do;
|
||||||
%put WARNING: No Stored Process found at ⌖
|
%put %str(WARN)ING: No Stored Process found at ⌖
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -11352,12 +11763,12 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if &tsuri=stopifempty %then %do;
|
%if &tsuri=stopifempty %then %do;
|
||||||
%put WARNING: &stp.(StoredProcess) not found!;
|
%put %str(WARN)ING: &stp.(StoredProcess) not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %length(&stpcode)<2 %then %do;
|
%if %length(&stpcode)<2 %then %do;
|
||||||
%put WARNING: No SAS code supplied!!;
|
%put %str(WARN)ING: No SAS code supplied!!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
@details Returns 0 if ANY of the variables do not exist, or 1 if they ALL do.
|
@details Returns 0 if ANY of the variables do not exist, or 1 if they ALL do.
|
||||||
Usage:
|
Usage:
|
||||||
|
|
||||||
%put %mf_existVarList(sashelp.class, age sex name dummyvar)
|
%put %mf_existVarList(sashelp.class, age sex name dummyvar);
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mf_abort.sas
|
@li mf_abort.sas
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
%let dsid=%sysfunc(open(&libds,is));
|
%let dsid=%sysfunc(open(&libds,is));
|
||||||
|
|
||||||
%if &dsid=0 %then %do;
|
%if &dsid=0 %then %do;
|
||||||
%put WARNING: unable to open &libds in mf_existvarlist (&dsid);
|
%put %str(WARN)ING: unable to open &libds in mf_existvarlist (&dsid);
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %sysfunc(attrn(&dsid,NVARS))=0 %then %do;
|
%if %sysfunc(attrn(&dsid,NVARS))=0 %then %do;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
%local dsid rc;
|
%local dsid rc;
|
||||||
%let dsid=%sysfunc(open(&libds,is));
|
%let dsid=%sysfunc(open(&libds,is));
|
||||||
%if &dsid = 0 %then %do;
|
%if &dsid = 0 %then %do;
|
||||||
%put WARNING: Cannot open %trim(&libds), system message below;
|
%put %str(WARN)ING: Cannot open %trim(&libds), system message below;
|
||||||
%put %sysfunc(sysmsg());
|
%put %sysfunc(sysmsg());
|
||||||
-1
|
-1
|
||||||
%end;
|
%end;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
%local count_base count_extr i i2 extr_word base_word match outvar;
|
%local count_base count_extr i i2 extr_word base_word match outvar;
|
||||||
%if %length(&str1)=0 or %length(&str2)=0 %then %do;
|
%if %length(&str1)=0 or %length(&str2)=0 %then %do;
|
||||||
%put WARNING: empty string provided!;
|
%put %str(WARN)ING: empty string provided!;
|
||||||
%put base string (str1)= &str1;
|
%put base string (str1)= &str1;
|
||||||
%put compare string (str2) = &str2;
|
%put compare string (str2) = &str2;
|
||||||
%return;
|
%return;
|
||||||
|
|||||||
144
base/mp_assertcols.sas
Normal file
144
base/mp_assertcols.sas
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Asserts the existence (or not) of columns
|
||||||
|
@details Useful in the context of writing sasjs tests. The results of the
|
||||||
|
test are _appended_ to the &outds. table.
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
%mp_assertcols(sashelp.class,
|
||||||
|
cols=name age sex,
|
||||||
|
test=ALL,
|
||||||
|
desc=check all columns exist
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_assertcols(sashelp.class,
|
||||||
|
cols=a b c,
|
||||||
|
test=NONE
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_assertcols(sashelp.class,
|
||||||
|
cols=age depth,
|
||||||
|
test=ANY
|
||||||
|
)
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_existds.sas
|
||||||
|
@li mf_existvarlist.sas
|
||||||
|
@li mf_wordsinstr1butnotstr2.sas
|
||||||
|
@li mp_abort.sas
|
||||||
|
|
||||||
|
|
||||||
|
@param [in] inds The input library.dataset to test for values
|
||||||
|
@param [in] cols= The list of columns to check for
|
||||||
|
@param [in] desc= (Testing observations) The user provided test description
|
||||||
|
@param [in] test= (ALL) The test to apply. Valid values are:
|
||||||
|
@li ALL - Test is a PASS if ALL columns exist in &inds
|
||||||
|
@li ANY - Test is a PASS if ANY of the columns exist in &inds
|
||||||
|
@li NONE - Test is a PASS if NONE of the columns exist in &inds
|
||||||
|
@param [out] outds= (work.test_results) The output dataset to contain the
|
||||||
|
results. If it does not exist, it will be created, with the following format:
|
||||||
|
|TEST_DESCRIPTION:$256|TEST_RESULT:$4|TEST_COMMENTS:$256|
|
||||||
|
|---|---|---|
|
||||||
|
|User Provided description|PASS|Column &inds contained ALL columns|
|
||||||
|
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
@li mp_assertcolvals.sas
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
|
||||||
|
@version 9.2
|
||||||
|
@author Allan Bowe
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_assertcols(inds,
|
||||||
|
cols=0,
|
||||||
|
test=ALL,
|
||||||
|
desc=0,
|
||||||
|
outds=work.test_results
|
||||||
|
)/*/STORE SOURCE*/;
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc - on macro entry)
|
||||||
|
)
|
||||||
|
|
||||||
|
%local lib ds ;
|
||||||
|
%let lib=%scan(&inds,1,%str(.));
|
||||||
|
%let ds=%scan(&inds,2,%str(.));
|
||||||
|
%let cols=%upcase(&cols);
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (%mf_existds(&lib..&ds)=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&lib..&ds not found!)
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&cols=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(No cols provided)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
%let test=%upcase(&test);
|
||||||
|
|
||||||
|
%if &test ne ANY and &test ne ALL and &test ne NONE %then %do;
|
||||||
|
%mp_abort(
|
||||||
|
mac=&sysmacroname,
|
||||||
|
msg=%str(Invalid test - &test)
|
||||||
|
)
|
||||||
|
%end;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* now do the actual test!
|
||||||
|
*/
|
||||||
|
%local result;
|
||||||
|
%if %mf_existVarList(&inds,&cols)=1 %then %let result=ALL;
|
||||||
|
%else %do;
|
||||||
|
%local targetcols compare;
|
||||||
|
%let targetcols=%upcase(%mf_getvarlist(&inds));
|
||||||
|
%let compare=%mf_wordsinstr1butnotstr2(
|
||||||
|
Str1=&cols,
|
||||||
|
Str2=&targetcols
|
||||||
|
);
|
||||||
|
%if %cmpres(&compare)=%cmpres(&cols) %then %let result=NONE;
|
||||||
|
%else %let result=SOME;
|
||||||
|
%end;
|
||||||
|
|
||||||
|
data;
|
||||||
|
length test_description $256 test_result $4 test_comments $256;
|
||||||
|
test_description=symget('desc');
|
||||||
|
if test_description='0'
|
||||||
|
then test_description="Testing &inds for existence of &test of: &cols";
|
||||||
|
|
||||||
|
test_result='FAIL';
|
||||||
|
test_comments="&sysmacroname: &inds has &result columns ";
|
||||||
|
%if &test=ALL %then %do;
|
||||||
|
%if &result=ALL %then %do;
|
||||||
|
test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%end;
|
||||||
|
%else %if &test=ANY %then %do;
|
||||||
|
%if &result=SOME %then %do;
|
||||||
|
test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%end;
|
||||||
|
%else %if &test=NONE %then %do;
|
||||||
|
%if &result=NONE %then %do;
|
||||||
|
test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%end;
|
||||||
|
%else %do;
|
||||||
|
test_comments="&sysmacroname: Unsatisfied test condition - &test";
|
||||||
|
%end;
|
||||||
|
run;
|
||||||
|
|
||||||
|
%local ds;
|
||||||
|
%let ds=&syslast;
|
||||||
|
proc append base=&outds data=&ds;
|
||||||
|
run;
|
||||||
|
proc sql;
|
||||||
|
drop table &ds;
|
||||||
|
|
||||||
|
%mend;
|
||||||
147
base/mp_assertcolvals.sas
Normal file
147
base/mp_assertcolvals.sas
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Asserts the values in a column
|
||||||
|
@details Useful in the context of writing sasjs tests. The results of the
|
||||||
|
test are _appended_ to the &outds. table.
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
data work.checkds;
|
||||||
|
do checkval='Jane','James','Jill';
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
run;
|
||||||
|
%mp_assertcolvals(sashelp.class.name,
|
||||||
|
checkvals=work.checkds.checkval,
|
||||||
|
desc=At least one value has a match,
|
||||||
|
test=ANYVAL
|
||||||
|
)
|
||||||
|
|
||||||
|
data work.check;
|
||||||
|
do val='M','F';
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
run;
|
||||||
|
%mp_assertcolvals(sashelp.class.sex,
|
||||||
|
checkvals=work.check.val,
|
||||||
|
desc=All values have a match,
|
||||||
|
test=ALLVALS
|
||||||
|
)
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_existds.sas
|
||||||
|
@li mf_nobs.sas
|
||||||
|
@li mp_abort.sas
|
||||||
|
|
||||||
|
|
||||||
|
@param [in] indscol The input library.dataset.column to test for values
|
||||||
|
@param [in] checkvals= A library.dataset.column value containing a UNIQUE
|
||||||
|
list of values to be compared against the source (indscol).
|
||||||
|
@param [in] desc= (Testing observations) The user provided test description
|
||||||
|
@param [in] test= (ALLVALS) The test to apply. Valid values are:
|
||||||
|
@li ALLVALS - Test is a PASS if ALL values have a match in checkvals
|
||||||
|
@li ANYVAL - Test is a PASS if at least 1 value has a match in checkvals
|
||||||
|
@param [out] outds= (work.test_results) The output dataset to contain the
|
||||||
|
results. If it does not exist, it will be created, with the following format:
|
||||||
|
|TEST_DESCRIPTION:$256|TEST_RESULT:$4|TEST_COMMENTS:$256|
|
||||||
|
|---|---|---|
|
||||||
|
|User Provided description|PASS|Column &indscol contained ALL target vals|
|
||||||
|
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
|
||||||
|
@version 9.2
|
||||||
|
@author Allan Bowe
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_assertcolvals(indscol,
|
||||||
|
checkvals=0,
|
||||||
|
test=ALLVALS,
|
||||||
|
desc=mp_assertcolvals - no desc provided,
|
||||||
|
outds=work.test_results
|
||||||
|
)/*/STORE SOURCE*/;
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc - on macro entry)
|
||||||
|
)
|
||||||
|
|
||||||
|
%local lib ds col clib cds ccol nobs;
|
||||||
|
%let lib=%scan(&indscol,1,%str(.));
|
||||||
|
%let ds=%scan(&indscol,2,%str(.));
|
||||||
|
%let col=%scan(&indscol,3,%str(.));
|
||||||
|
%mp_abort(iftrue= (%mf_existds(&lib..&ds)=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&lib..&ds not found!)
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&checkvals=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(Set CHECKVALS to a library.dataset.column containing check vals)
|
||||||
|
)
|
||||||
|
%let clib=%scan(&checkvals,1,%str(.));
|
||||||
|
%let cds=%scan(&checkvals,2,%str(.));
|
||||||
|
%let ccol=%scan(&checkvals,3,%str(.));
|
||||||
|
%mp_abort(iftrue= (%mf_existds(&clib..&cds)=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&clib..&cds not found!)
|
||||||
|
)
|
||||||
|
%let nobs=%mf_nobs(&clib..&cds);
|
||||||
|
%mp_abort(iftrue= (&nobs=0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(&clib..&cds is empty!)
|
||||||
|
)
|
||||||
|
|
||||||
|
%let test=%upcase(&test);
|
||||||
|
|
||||||
|
%if &test ne ALLVALS and &test ne ANYVAL %then %do;
|
||||||
|
%mp_abort(
|
||||||
|
mac=&sysmacroname,
|
||||||
|
msg=%str(Invalid test - &test)
|
||||||
|
)
|
||||||
|
%end;
|
||||||
|
|
||||||
|
%local result orig;
|
||||||
|
%let result=-1;
|
||||||
|
%let orig=-1;
|
||||||
|
proc sql noprint;
|
||||||
|
select count(*) into: result
|
||||||
|
from &lib..&ds
|
||||||
|
where &col not in (
|
||||||
|
select &ccol from &clib..&cds
|
||||||
|
);
|
||||||
|
select count(*) into: orig from &lib..&ds;
|
||||||
|
quit;
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc after macro query)
|
||||||
|
)
|
||||||
|
|
||||||
|
data;
|
||||||
|
length test_description $256 test_result $4 test_comments $256;
|
||||||
|
test_description=symget('desc');
|
||||||
|
test_result='FAIL';
|
||||||
|
test_comments="&sysmacroname: &lib..&ds..&col has &result values "
|
||||||
|
!!"not in &clib..&cds..&ccol ";
|
||||||
|
%if &test=ANYVAL %then %do;
|
||||||
|
if &result < &orig then test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%else %if &test=ALLVALS %then %do;
|
||||||
|
if &result=0 then test_result='PASS';
|
||||||
|
%end;
|
||||||
|
%else %do;
|
||||||
|
test_comments="&sysmacroname: Unsatisfied test condition - &test";
|
||||||
|
%end;
|
||||||
|
run;
|
||||||
|
|
||||||
|
%local ds;
|
||||||
|
%let ds=&syslast;
|
||||||
|
proc append base=&outds data=&ds;
|
||||||
|
run;
|
||||||
|
proc sql;
|
||||||
|
drop table &ds;
|
||||||
|
|
||||||
|
%mend;
|
||||||
@@ -25,6 +25,8 @@
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
|User Provided description|PASS|Dataset &inds has XX obs|
|
|User Provided description|PASS|Dataset &inds has XX obs|
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_assertcolvals.sas
|
||||||
|
|
||||||
@version 9.2
|
@version 9.2
|
||||||
@author Allan Bowe
|
@author Allan Bowe
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
%local i setds nvars;
|
%local i setds nvars;
|
||||||
|
|
||||||
%if not %sysfunc(exist(&base_ds)) %then %do;
|
%if not %sysfunc(exist(&base_ds)) %then %do;
|
||||||
%put WARNING: &base_ds does not exist;
|
%put %str(WARN)ING: &base_ds does not exist;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ select count(*) into: nvars from dictionary.columns
|
|||||||
where libname="%scan(%upcase(&base_ds),1)"
|
where libname="%scan(%upcase(&base_ds),1)"
|
||||||
and memname="%scan(%upcase(&base_ds),2)";
|
and memname="%scan(%upcase(&base_ds),2)";
|
||||||
%if &nvars=0 %then %do;
|
%if &nvars=0 %then %do;
|
||||||
%put WARNING: Dataset &base_ds has no variables! It will not be converted.;
|
%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
)/*/STORE SOURCE*/;
|
)/*/STORE SOURCE*/;
|
||||||
|
|
||||||
%if not %sysfunc(exist(&ds)) %then %do;
|
%if not %sysfunc(exist(&ds)) %then %do;
|
||||||
%put WARNING: &ds does not exist;
|
%put %str(WARN)ING: &ds does not exist;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
The input table should have the following format:
|
The input table should have the following format:
|
||||||
|
|
||||||
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|
|
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$4000|
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
|AND|AND|1|AGE|=|12|
|
|AND|AND|1|AGE|=|12|
|
||||||
|AND|AND|1|SEX|<=|'M'|
|
|AND|AND|1|SEX|<=|'M'|
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
@li SUBGROUP_LOGIC - only AND/OR
|
@li SUBGROUP_LOGIC - only AND/OR
|
||||||
@li SUBGROUP_ID - only integers
|
@li SUBGROUP_ID - only integers
|
||||||
@li VARIABLE_NM - must be in the target table
|
@li VARIABLE_NM - must be in the target table
|
||||||
@li OPERATOR_NM - only =/>/</<=/>=/BETWEEN/IN/NOT IN/NOT EQUAL/CONTAINS
|
@li OPERATOR_NM - only =/>/</<=/>=/BETWEEN/IN/NOT IN/NE/CONTAINS
|
||||||
@li RAW_VALUE - no unquoted values except integers, commas and spaces.
|
@li RAW_VALUE - no unquoted values except integers, commas and spaces.
|
||||||
|
|
||||||
@returns The &outds table containing any bad rows, plus a REASON_CD column.
|
@returns The &outds table containing any bad rows, plus a REASON_CD column.
|
||||||
@@ -42,11 +42,15 @@
|
|||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mp_abort.sas
|
@li mp_abort.sas
|
||||||
|
@li mf_getuniquefileref.sas
|
||||||
@li mf_getvarlist.sas
|
@li mf_getvarlist.sas
|
||||||
@li mf_nobs.sas
|
@li mf_nobs.sas
|
||||||
|
@li mp_filtergenerate.sas
|
||||||
|
@li mp_filtervalidate.sas
|
||||||
|
|
||||||
<h4> Related Macros </h4>
|
<h4> Related Macros </h4>
|
||||||
@li mp_filtergenerate.sas
|
@li mp_filtergenerate.sas
|
||||||
|
@li mp_filtervalidate.sas
|
||||||
|
|
||||||
@version 9.3
|
@version 9.3
|
||||||
@author Allan Bowe
|
@author Allan Bowe
|
||||||
@@ -150,8 +154,18 @@ run;
|
|||||||
)
|
)
|
||||||
%end;
|
%end;
|
||||||
%let syscc=1008;
|
%let syscc=1008;
|
||||||
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* syntax checking passed but it does not mean the filter is valid
|
||||||
|
* for that we can run a proc sql validate query
|
||||||
|
*/
|
||||||
|
%local fref1;
|
||||||
|
%let fref1=%mf_getuniquefileref();
|
||||||
|
%mp_filtergenerate(&inds,outref=&fref1)
|
||||||
|
|
||||||
|
/* this macro will also set syscc to 1008 if any issues found */
|
||||||
|
%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)
|
||||||
|
|
||||||
%mend;
|
%mend;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
This feature is used to create dynamic dropdowns in [Data Controller for SAS®](
|
This feature is used to create dynamic dropdowns in [Data Controller for SAS®](
|
||||||
https://datacontroller.io). The input table should be in the format below:
|
https://datacontroller.io). The input table should be in the format below:
|
||||||
|
|
||||||
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|
|
|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$4000|
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
|AND|AND|1|AGE|=|12|
|
|AND|AND|1|AGE|=|12|
|
||||||
|AND|AND|1|SEX|<=|'M'|
|
|AND|AND|1|SEX|<=|'M'|
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
data work.filtertable;
|
data work.filtertable;
|
||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,AND,1,AGE,=,12
|
AND,AND,1,AGE,=,12
|
||||||
AND,AND,1,SEX,<=,"'M'"
|
AND,AND,1,SEX,<=,"'M'"
|
||||||
@@ -56,6 +56,7 @@
|
|||||||
|
|
||||||
<h4> Related Macros </h4>
|
<h4> Related Macros </h4>
|
||||||
@li mp_filtercheck.sas
|
@li mp_filtercheck.sas
|
||||||
|
@li mp_filtervalidate.sas
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mp_abort.sas
|
@li mp_abort.sas
|
||||||
@@ -87,13 +88,14 @@ filename &outref temp;
|
|||||||
file &outref lrecl=32800;
|
file &outref lrecl=32800;
|
||||||
set &inds end=last;
|
set &inds end=last;
|
||||||
by SUBGROUP_ID;
|
by SUBGROUP_ID;
|
||||||
if _n_=1 then put '(';
|
if _n_=1 then put '((';
|
||||||
else if first.SUBGROUP_ID then put +1 GROUP_LOGIC '(';
|
else if first.SUBGROUP_ID then put +1 GROUP_LOGIC '(';
|
||||||
else put +2 SUBGROUP_LOGIC;
|
else put +2 SUBGROUP_LOGIC;
|
||||||
|
|
||||||
put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;
|
put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;
|
||||||
|
|
||||||
if last.SUBGROUP_ID then put ')'@;
|
if last.SUBGROUP_ID then put ')'@;
|
||||||
|
if last then put ')';
|
||||||
run;
|
run;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
104
base/mp_filtervalidate.sas
Normal file
104
base/mp_filtervalidate.sas
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Checks a generated filter query for validity
|
||||||
|
@details Runs a generated filter in proc sql with the validate option.
|
||||||
|
Used in mp_filtercheck.sas in an fcmp container.
|
||||||
|
|
||||||
|
Built to support dynamic filtering in
|
||||||
|
[Data Controller for SAS®](https://datacontroller.io).
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
data work.filtertable;
|
||||||
|
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,=,12
|
||||||
|
AND,AND,1,SEX,<=,"'M'"
|
||||||
|
AND,OR,2,Name,NOT IN,"('Jane','Alfred')"
|
||||||
|
AND,OR,2,Weight,>=,7
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
|
||||||
|
%mp_filtergenerate(work.filtertable,outref=myfilter)
|
||||||
|
|
||||||
|
%mp_filtervalidate(myfilter,sashelp.class)
|
||||||
|
|
||||||
|
|
||||||
|
@returns The SYSCC value will be 1008 if there are validation issues.
|
||||||
|
|
||||||
|
@param [in] inref The input fileref to validate (generated by
|
||||||
|
mp_filtergenerate.sas)
|
||||||
|
@param [in] targetds The target dataset against which to verify the query
|
||||||
|
@param [out] abort= (YES) If YES will call mp_abort.sas on any exceptions
|
||||||
|
@param [out] outds= (work.mp_filtervalidate) Output dataset containing the
|
||||||
|
error / warning message, if one exists. If this table contains any rows,
|
||||||
|
there are problems!
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_getuniquefileref.sas
|
||||||
|
@li mf_nobs.sas
|
||||||
|
@li mp_abort.sas
|
||||||
|
|
||||||
|
<h4> Related Macros </h4>
|
||||||
|
@li mp_filtercheck.sas
|
||||||
|
@li mp_filtergenerate.sas
|
||||||
|
|
||||||
|
@version 9.3
|
||||||
|
@author Allan Bowe
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);
|
||||||
|
|
||||||
|
%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)
|
||||||
|
,mac=&sysmacroname
|
||||||
|
,msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)
|
||||||
|
)
|
||||||
|
|
||||||
|
%local fref1;
|
||||||
|
%let fref1=%mf_getuniquefileref();
|
||||||
|
|
||||||
|
data _null_;
|
||||||
|
file &fref1;
|
||||||
|
infile &inref end=eof;
|
||||||
|
if _n_=1 then do;
|
||||||
|
put "proc sql;";
|
||||||
|
put "validate select * from &targetds";
|
||||||
|
put "where " ;
|
||||||
|
end;
|
||||||
|
input;
|
||||||
|
put _infile_;
|
||||||
|
putlog _infile_;
|
||||||
|
if eof then put ";quit;";
|
||||||
|
run;
|
||||||
|
|
||||||
|
%inc &fref1;
|
||||||
|
|
||||||
|
data &outds;
|
||||||
|
if &sqlrc or &syscc or &syserr then do;
|
||||||
|
REASON_CD=coalescec(symget('SYSERRORTEXT'),symget('SYSWARNINGTEXT'));
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
else stop;
|
||||||
|
run;
|
||||||
|
|
||||||
|
filename &fref1 clear;
|
||||||
|
|
||||||
|
%if %mf_nobs(&outds)>0 %then %do;
|
||||||
|
%if &abort=YES %then %do;
|
||||||
|
data _null_;
|
||||||
|
set &outds;
|
||||||
|
call symputx('REASON_CD',reason_cd,'l');
|
||||||
|
stop;
|
||||||
|
run;
|
||||||
|
%mp_abort(
|
||||||
|
mac=&sysmacroname,
|
||||||
|
msg=%str(Filter issues in &inref: %quote(&reason_cd))
|
||||||
|
)
|
||||||
|
%end;
|
||||||
|
%let syscc=1008;
|
||||||
|
%end;
|
||||||
|
|
||||||
|
%mend;
|
||||||
65
base/mp_validatecol.sas
Normal file
65
base/mp_validatecol.sas
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Used to validate variables in a dataset
|
||||||
|
@details Useful when sanitising inputs, to ensure that they arrive with a
|
||||||
|
certain pattern.
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
data test;
|
||||||
|
infile datalines4 dsd;
|
||||||
|
input;
|
||||||
|
libds=_infile_;
|
||||||
|
%mp_validatecol(libds,LIBDS,is_libds)
|
||||||
|
datalines4;
|
||||||
|
some.libname
|
||||||
|
!lib.blah
|
||||||
|
%abort
|
||||||
|
definite.ok
|
||||||
|
not.ok!
|
||||||
|
nineletrs._
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
|
||||||
|
@param [in] incol The column to be validated
|
||||||
|
@param [in] rule The rule to apply. Current rules:
|
||||||
|
@li LIBDS - matches LIBREF.DATASET format
|
||||||
|
@param [out] outcol The variable to create, with the results of the match
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_getuniquename.sas
|
||||||
|
|
||||||
|
@version 9.3
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_validatecol(incol,rule,outcol);
|
||||||
|
|
||||||
|
/* tempcol is given a unique name with every invocation */
|
||||||
|
%local tempcol;
|
||||||
|
%let tempcol=%mf_getuniquename();
|
||||||
|
|
||||||
|
%if &rule=ISNUM %then %do;
|
||||||
|
/*
|
||||||
|
credit SØREN LASSEN
|
||||||
|
https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html
|
||||||
|
*/
|
||||||
|
&tempcol=input(&incol,?? best32.);
|
||||||
|
if missing(&tempcol) then &outcol=0;
|
||||||
|
else &outcol=1;
|
||||||
|
drop &tempcol;
|
||||||
|
%end;
|
||||||
|
%else %if &rule=LIBDS %then %do;
|
||||||
|
/* match libref.dataset */
|
||||||
|
if _n_=1 then do;
|
||||||
|
retain &tempcol;
|
||||||
|
&tempcol=prxparse('/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i');
|
||||||
|
if missing(&tempcol) then do;
|
||||||
|
putlog "%str(ERR)OR: Invalid expression for LIBDS";
|
||||||
|
stop;
|
||||||
|
end;
|
||||||
|
drop &tempcol;
|
||||||
|
end;
|
||||||
|
if prxmatch(&tempcol, trim(&incol)) then &outcol=1;
|
||||||
|
else &outcol=0;
|
||||||
|
%end;
|
||||||
|
|
||||||
|
%mend;
|
||||||
@@ -70,7 +70,7 @@ run;
|
|||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if &syscc ge 4 %then %do;
|
%if &syscc ge 4 %then %do;
|
||||||
%put WARNING: SYSCC=&syscc, exiting &sysmacroname;
|
%put %str(WARN)ING: SYSCC=&syscc, exiting &sysmacroname;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -332,7 +332,7 @@ run;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if %length(&open_passthrough)>0 %then %do;
|
%if %length(&open_passthrough)>0 %then %do;
|
||||||
%put WARNING: Passthrough option for postgres not yet supported;
|
%put %str(WARN)ING: Passthrough option for postgres not yet supported;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
@@ -455,8 +455,8 @@ run;
|
|||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
%put WARNING: Engine &engine is currently unsupported;
|
%put %str(WARN)ING: Engine &engine is currently unsupported;
|
||||||
%put WARNING- Please contact your support team.;
|
%put %str(WARN)ING- Please contact your support team.;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ data _null_;
|
|||||||
putlog (_all_)(=);
|
putlog (_all_)(=);
|
||||||
run;
|
run;
|
||||||
%if &checktype = SASLibrary %then %do;
|
%if &checktype = SASLibrary %then %do;
|
||||||
%put WARNING: Library (&liburi) already exists with libname (&libname) ;
|
%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ data _null_;
|
|||||||
putlog (_all_)(=);
|
putlog (_all_)(=);
|
||||||
run;
|
run;
|
||||||
%if &checktype = SASLibrary %then %do;
|
%if &checktype = SASLibrary %then %do;
|
||||||
%put WARNING: Library (&liburi) already exists with libref (&libref) ;
|
%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ data _null_;
|
|||||||
call symputx('treeuri',uri,'l');
|
call symputx('treeuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &foldertype ne Tree %then %do;
|
%if &foldertype ne Tree %then %do;
|
||||||
%put WARNING: Tree &tree does not exist!;
|
%put %str(WARN)ING: Tree &tree does not exist!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ filename &frefout temp;
|
|||||||
* check SAS version
|
* check SAS version
|
||||||
*/
|
*/
|
||||||
%if %sysevalf(&sysver lt 9.3) %then %do;
|
%if %sysevalf(&sysver lt 9.3) %then %do;
|
||||||
%put WARNING: Version 9.3 or later required;
|
%put %str(WARN)ING: Version 9.3 or later required;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ data _null_;
|
|||||||
call symputx('treeuri',uri,'l');
|
call symputx('treeuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &foldertype ne Tree %then %do;
|
%if &foldertype ne Tree %then %do;
|
||||||
%put WARNING: Tree &tree does not exist!;
|
%put %str(WARN)ING: Tree &tree does not exist!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ data _null_;
|
|||||||
call symputx('stpuri',uri,'l');
|
call symputx('stpuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &cmtype = ClassifierMap %then %do;
|
%if &cmtype = ClassifierMap %then %do;
|
||||||
%put WARNING: Stored Process &stpname already exists in &tree!;
|
%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -141,14 +141,14 @@ run;
|
|||||||
* Check that the physical file exists
|
* Check that the physical file exists
|
||||||
*/
|
*/
|
||||||
%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;
|
%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;
|
||||||
%put WARNING: FILE *&directory/&filename* NOT FOUND!;
|
%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if &stptype=1 %then %do;
|
%if &stptype=1 %then %do;
|
||||||
/* type 1 STP - where code is stored on filesystem */
|
/* type 1 STP - where code is stored on filesystem */
|
||||||
%if %sysevalf(&sysver lt 9.2) %then %do;
|
%if %sysevalf(&sysver lt 9.2) %then %do;
|
||||||
%put WARNING: Version 9.2 or later required;
|
%put %str(WARN)ING: Version 9.2 or later required;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -162,7 +162,7 @@ run;
|
|||||||
%if &checkdirtype ne Directory %then %do;
|
%if &checkdirtype ne Directory %then %do;
|
||||||
%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)
|
%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)
|
||||||
%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;
|
%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;
|
||||||
%put WARNING: The directory object does not exist for &directory;
|
%put %str(WARN)ING: The directory object does not exist for &directory;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
@@ -180,12 +180,12 @@ run;
|
|||||||
length id $20 type $256;
|
length id $20 type $256;
|
||||||
__rc=metadata_resolve("&treeuri",type,id);
|
__rc=metadata_resolve("&treeuri",type,id);
|
||||||
if type ne 'Tree' then do;
|
if type ne 'Tree' then do;
|
||||||
putlog "WARNING: Invalid tree URI: &treeuri";
|
putlog "%str(WARN)ING: Invalid tree URI: &treeuri";
|
||||||
stopme=1;
|
stopme=1;
|
||||||
end;
|
end;
|
||||||
__rc=metadata_resolve(directoryuri,type,id);
|
__rc=metadata_resolve(directoryuri,type,id);
|
||||||
if type ne 'Directory' then do;
|
if type ne 'Directory' then do;
|
||||||
putlog 'WARNING: Invalid directory URI: ' directoryuri;
|
putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;
|
||||||
stopme=1;
|
stopme=1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -194,7 +194,7 @@ run;
|
|||||||
if type ne 'LogicalServer' then do;
|
if type ne 'LogicalServer' then do;
|
||||||
__rc=metadata_getnobj("omsobj:LogicalServer?@Name='&server'",1,serveruri);
|
__rc=metadata_getnobj("omsobj:LogicalServer?@Name='&server'",1,serveruri);
|
||||||
if serveruri='' then do;
|
if serveruri='' then do;
|
||||||
putlog "WARNING: Invalid server: &server";
|
putlog "%str(WARN)ING: Invalid server: &server";
|
||||||
stopme=1;
|
stopme=1;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -217,7 +217,7 @@ run;
|
|||||||
rc6 = METADATA_SETATTR(prompturi, 'GroupInfo',groupinfo);
|
rc6 = METADATA_SETATTR(prompturi, 'GroupInfo',groupinfo);
|
||||||
|
|
||||||
if sum(of rc1-rc6) ne 0 then do;
|
if sum(of rc1-rc6) ne 0 then do;
|
||||||
putlog 'WARNING: Issue creating prompt.';
|
putlog "%str(WARN)ING: Issue creating prompt.";
|
||||||
if prompturi ne . then do;
|
if prompturi ne . then do;
|
||||||
putlog ' Removing orphan: ' prompturi;
|
putlog ' Removing orphan: ' prompturi;
|
||||||
rc = METADATA_DELOBJ(prompturi);
|
rc = METADATA_DELOBJ(prompturi);
|
||||||
@@ -232,7 +232,7 @@ run;
|
|||||||
rc9=METADATA_SETATTR(fileuri, 'IsARelativeName','1');
|
rc9=METADATA_SETATTR(fileuri, 'IsARelativeName','1');
|
||||||
rc10=METADATA_SETASSN(fileuri, 'Directories','MODIFY',directoryuri);
|
rc10=METADATA_SETASSN(fileuri, 'Directories','MODIFY',directoryuri);
|
||||||
if sum(of rc7-rc10) ne 0 then do;
|
if sum(of rc7-rc10) ne 0 then do;
|
||||||
putlog 'WARNING: Issue creating file.';
|
putlog "%str(WARN)ING: Issue creating file.";
|
||||||
if fileuri ne . then do;
|
if fileuri ne . then do;
|
||||||
putlog ' Removing orphans:' prompturi fileuri;
|
putlog ' Removing orphans:' prompturi fileuri;
|
||||||
rc = METADATA_DELOBJ(prompturi);
|
rc = METADATA_DELOBJ(prompturi);
|
||||||
@@ -251,7 +251,7 @@ run;
|
|||||||
!!"<OutputParameters/></StoredProcess>";
|
!!"<OutputParameters/></StoredProcess>";
|
||||||
rc14= METADATA_SETATTR(texturi, 'StoredText',storedtext);
|
rc14= METADATA_SETATTR(texturi, 'StoredText',storedtext);
|
||||||
if sum(of rc11-rc14) ne 0 then do;
|
if sum(of rc11-rc14) ne 0 then do;
|
||||||
putlog 'WARNING: Issue creating TextStore.';
|
putlog "%str(WARN)ING: Issue creating TextStore.";
|
||||||
if texturi ne . then do;
|
if texturi ne . then do;
|
||||||
putlog ' Removing orphans: ' prompturi fileuri texturi;
|
putlog ' Removing orphans: ' prompturi fileuri texturi;
|
||||||
rc = METADATA_DELOBJ(prompturi);
|
rc = METADATA_DELOBJ(prompturi);
|
||||||
@@ -299,7 +299,7 @@ run;
|
|||||||
%else %if &stptype=2 %then %do;
|
%else %if &stptype=2 %then %do;
|
||||||
/* type 2 stp - code is stored in metadata */
|
/* type 2 stp - code is stored in metadata */
|
||||||
%if %sysevalf(&sysver lt 9.3) %then %do;
|
%if %sysevalf(&sysver lt 9.3) %then %do;
|
||||||
%put WARNING: SAS version 9.3 or later required to create type2 STPs;
|
%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
/* check we have the correct ServerContext */
|
/* check we have the correct ServerContext */
|
||||||
@@ -311,7 +311,7 @@ run;
|
|||||||
call symputx('serveruri',serveruri);
|
call symputx('serveruri',serveruri);
|
||||||
run;
|
run;
|
||||||
%if &serveruri=NOTFOUND %then %do;
|
%if &serveruri=NOTFOUND %then %do;
|
||||||
%put WARNING: ServerContext *&server* not found!;
|
%put %str(WARN)ING: ServerContext *&server* not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -382,7 +382,7 @@ run;
|
|||||||
|
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
%put WARNING: STPTYPE=*&stptype* not recognised!;
|
%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%mend;
|
%mend;
|
||||||
@@ -32,7 +32,7 @@ data _null_;
|
|||||||
call symputx('stpuri',uri,'l');
|
call symputx('stpuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &type ne Document %then %do;
|
%if &type ne Document %then %do;
|
||||||
%put WARNING: No Document found at ⌖
|
%put %str(WARN)ING: No Document found at ⌖
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ data _null_;
|
|||||||
when ('
') rec='0D'x;
|
when ('
') rec='0D'x;
|
||||||
when ('$' ) rec='$' ;
|
when ('$' ) rec='$' ;
|
||||||
when ('	') rec='09'x;
|
when ('	') rec='09'x;
|
||||||
otherwise putlog "WARNING: missing value for " entity=;
|
otherwise putlog "%str(WARN)ING: missing value for " entity=;
|
||||||
end;
|
end;
|
||||||
rc =fput(fileid, substr(rec,1,1));
|
rc =fput(fileid, substr(rec,1,1));
|
||||||
rc =fwrite(fileid);
|
rc =fwrite(fileid);
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ run;
|
|||||||
when ('
') rec='0D'x;
|
when ('
') rec='0D'x;
|
||||||
when ('$' ) rec='$' ;
|
when ('$' ) rec='$' ;
|
||||||
when ('	') rec='09'x;
|
when ('	') rec='09'x;
|
||||||
otherwise putlog "WARNING: missing value for " entity=;
|
otherwise putlog "%str(WARN)ING: missing value for " entity=;
|
||||||
end;
|
end;
|
||||||
rc =fput(fileid, substr(rec,1,1));
|
rc =fput(fileid, substr(rec,1,1));
|
||||||
rc =fwrite(fileid);
|
rc =fwrite(fileid);
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if &appuri=stopifempty %then %do;
|
%if &appuri=stopifempty %then %do;
|
||||||
%put WARNING: &app.(Application) not found!;
|
%put %str(WARN)ING: &app.(Application) not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -58,12 +58,12 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if &tsuri=stopifempty %then %do;
|
%if &tsuri=stopifempty %then %do;
|
||||||
%put WARNING: &path/&name.(Document) not found!;
|
%put %str(WARN)ING: &path/&name.(Document) not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %length(&text)<2 %then %do;
|
%if %length(&text)<2 %then %do;
|
||||||
%put WARNING: No text supplied!!;
|
%put %str(WARN)ING: No text supplied!!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ data _null_;
|
|||||||
call symputx('stpuri',uri,'l');
|
call symputx('stpuri',uri,'l');
|
||||||
run;
|
run;
|
||||||
%if &cmtype ne ClassifierMap %then %do;
|
%if &cmtype ne ClassifierMap %then %do;
|
||||||
%put WARNING: No Stored Process found at ⌖
|
%put %str(WARN)ING: No Stored Process found at ⌖
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -68,12 +68,12 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
%if &tsuri=stopifempty %then %do;
|
%if &tsuri=stopifempty %then %do;
|
||||||
%put WARNING: &stp.(StoredProcess) not found!;
|
%put %str(WARN)ING: &stp.(StoredProcess) not found!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %length(&stpcode)<2 %then %do;
|
%if %length(&stpcode)<2 %then %do;
|
||||||
%put WARNING: No SAS code supplied!!;
|
%put %str(WARN)ING: No SAS code supplied!!;
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 146 KiB |
@@ -17,16 +17,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"serviceConfig": {
|
"serviceConfig": {
|
||||||
"initProgram": "tests/testinit.sas"
|
"initProgram": "tests/testinit.sas",
|
||||||
},
|
"termProgram": "tests/testterm.sas",
|
||||||
"defaultTarget": "viya",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"name": "viya",
|
|
||||||
"serverUrl": "https://sas.analytium.co.uk",
|
|
||||||
"serverType": "SASVIYA",
|
|
||||||
"appLoc": "/Public/temp/macrocore",
|
|
||||||
"serviceConfig": {
|
|
||||||
"serviceFolders": [
|
"serviceFolders": [
|
||||||
"tests/base",
|
"tests/base",
|
||||||
"tests/viya"
|
"tests/viya"
|
||||||
@@ -35,6 +27,20 @@
|
|||||||
"mcTestAppLoc": "/Public/temp/macrocore"
|
"mcTestAppLoc": "/Public/temp/macrocore"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"testConfig": {
|
||||||
|
"initProgram": "tests/testinit.sas",
|
||||||
|
"termProgram": "tests/testterm.sas",
|
||||||
|
"macroVars": {
|
||||||
|
"mcTestAppLoc": "/Public/temp/macrocore"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultTarget": "viya",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"name": "viya",
|
||||||
|
"serverUrl": "https://sas.analytium.co.uk",
|
||||||
|
"serverType": "SASVIYA",
|
||||||
|
"appLoc": "/Public/temp/macrocore",
|
||||||
"deployConfig": {
|
"deployConfig": {
|
||||||
"deployServicePack": true
|
"deployServicePack": true
|
||||||
},
|
},
|
||||||
|
|||||||
352
sasjsresults/testResults.csv
Normal file
352
sasjsresults/testResults.csv
Normal file
@@ -0,0 +1,352 @@
|
|||||||
|
test_target,test_loc,sasjs_test_id,test_suite_result,test_description
|
||||||
|
mp_assertcolvals,tests/services/base/mp_assertcolvals.test.sas,effe793c-9f51-4b15-b935-03b9c46c05ca,PASS,At least one value has a match
|
||||||
|
mp_assertcolvals,tests/services/base/mp_assertcolvals.test.sas,effe793c-9f51-4b15-b935-03b9c46c05ca,PASS,All values have a match
|
||||||
|
mp_filtercheck,tests/services/base/mp_filtercheck.test.sas,d50073ee-e648-4ae2-a948-8b1fb63cf110,PASS,Valid filter query
|
||||||
|
mp_filtercheck,tests/services/base/mp_filtercheck.test.sas,d50073ee-e648-4ae2-a948-8b1fb63cf110,PASS,Invalid column name
|
||||||
|
mp_filtercheck,tests/services/base/mp_filtercheck.test.sas,d50073ee-e648-4ae2-a948-8b1fb63cf110,PASS,Invalid raw value
|
||||||
|
mp_filtercheck,tests/services/base/mp_filtercheck.test.sas,d50073ee-e648-4ae2-a948-8b1fb63cf110,PASS,Code injection - column name
|
||||||
|
mp_filtercheck,tests/services/base/mp_filtercheck.test.sas,d50073ee-e648-4ae2-a948-8b1fb63cf110,PASS,Code injection - raw value abort
|
||||||
|
mp_filtergenerate,tests/services/base/mp_filtergenerate.test.sas,e25543aa-1070-4a13-9df9-95cfbc279708,PASS,Valid filter
|
||||||
|
mp_filtergenerate,tests/services/base/mp_filtergenerate.test.sas,e25543aa-1070-4a13-9df9-95cfbc279708,PASS,Empty filter (return all records)
|
||||||
|
mp_filtergenerate,tests/services/base/mp_filtergenerate.test.sas,e25543aa-1070-4a13-9df9-95cfbc279708,PASS,Single line filter
|
||||||
|
mp_filtergenerate,tests/services/base/mp_filtergenerate.test.sas,e25543aa-1070-4a13-9df9-95cfbc279708,PASS,Single line 2 group filter
|
||||||
|
mp_filtergenerate,tests/services/base/mp_filtergenerate.test.sas,e25543aa-1070-4a13-9df9-95cfbc279708,PASS,Filter with nothing returned
|
||||||
|
mp_filtervalidate,tests/services/base/mp_filtervalidate.test.sas,cb8df59b-fedb-40de-9590-f1aa948756b5,PASS,Valid filter
|
||||||
|
mp_filtervalidate,tests/services/base/mp_filtervalidate.test.sas,cb8df59b-fedb-40de-9590-f1aa948756b5,PASS,Valid filter
|
||||||
|
mp_filtervalidate,tests/services/base/mp_filtervalidate.test.sas,cb8df59b-fedb-40de-9590-f1aa948756b5,PASS,Valid filter
|
||||||
|
mp_validatecol,tests/services/base/mp_validatecol.test.sas,307f95c2-83b4-4caa-8b2f-ba1a673d6ff4,FAIL,Testing LIBDS
|
||||||
|
mp_validatecol,tests/services/base/mp_validatecol.test.sas,307f95c2-83b4-4caa-8b2f-ba1a673d6ff4,PASS,Test2 - ISNUM
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,FAIL,Creating web service with invisible character
|
||||||
|
mv_createwebservice,tests/services/viya/mv_createwebservice.test.sas,1eb31d67-d56e-4d7b-aa14-3f2d21fa3545,PASS,Creating web service with invisible character
|
||||||
|
1825
sasjsresults/testResults.json
Normal file
1825
sasjsresults/testResults.json
Normal file
File diff suppressed because it is too large
Load Diff
32
tests/base/mp_assertcolvals.test.sas
Normal file
32
tests/base/mp_assertcolvals.test.sas
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Testing mp_assertcolvals macro
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mp_assertcolvals.sas
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
|
||||||
|
data work.checkds;
|
||||||
|
do checkval='Jane','James','Jill';
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
run;
|
||||||
|
%mp_assertcolvals(sashelp.class.name,
|
||||||
|
checkvals=work.checkds.checkval,
|
||||||
|
desc=At least one value has a match,
|
||||||
|
test=ANYVAL
|
||||||
|
)
|
||||||
|
|
||||||
|
data work.check;
|
||||||
|
do val='M','F';
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
run;
|
||||||
|
%mp_assertcolvals(sashelp.class.sex,
|
||||||
|
checkvals=work.check.val,
|
||||||
|
desc=All values have a match,
|
||||||
|
test=ALLVALS
|
||||||
|
)
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,AND,1,AGE,=,12
|
AND,AND,1,AGE,=,12
|
||||||
AND,AND,1,SEX,<=,"'M'"
|
AND,AND,1,SEX,<=,"'M'"
|
||||||
@@ -39,7 +39,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,AND,1,invalid,=,12
|
AND,AND,1,invalid,=,12
|
||||||
AND,AND,1,SEX,<=,"'M'"
|
AND,AND,1,SEX,<=,"'M'"
|
||||||
@@ -63,7 +63,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,OR,2,Name,NOT IN,"(''''Jane','Alfred')"
|
AND,OR,2,Name,NOT IN,"(''''Jane','Alfred')"
|
||||||
;;;;
|
;;;;
|
||||||
@@ -85,7 +85,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,AND,1,%abort,=,12
|
AND,AND,1,%abort,=,12
|
||||||
AND,OR,2,Weight,>=,7
|
AND,OR,2,Weight,>=,7
|
||||||
@@ -108,7 +108,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,AND,1,age,=,;;%abort
|
AND,AND,1,age,=,;;%abort
|
||||||
;;;;
|
;;;;
|
||||||
@@ -125,8 +125,3 @@ run;
|
|||||||
outds=work.test_results
|
outds=work.test_results
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%webout(OPEN)
|
|
||||||
%webout(OBJ, TEST_RESULTS)
|
|
||||||
%webout(CLOSE)
|
|
||||||
@@ -15,7 +15,7 @@ options source2;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,AND,1,AGE,>,5
|
AND,AND,1,AGE,>,5
|
||||||
AND,AND,1,SEX,NE,"'M'"
|
AND,AND,1,SEX,NE,"'M'"
|
||||||
@@ -39,7 +39,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
;;;;
|
;;;;
|
||||||
run;
|
run;
|
||||||
@@ -59,7 +59,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,OR,2,Name,IN,"('Jane','Janet')"
|
AND,OR,2,Name,IN,"('Jane','Janet')"
|
||||||
;;;;
|
;;;;
|
||||||
@@ -80,7 +80,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
OR,OR,2,Name,IN,"('Jane','Janet')"
|
OR,OR,2,Name,IN,"('Jane','Janet')"
|
||||||
OR,OR,3,Name,IN,"('James')"
|
OR,OR,3,Name,IN,"('James')"
|
||||||
@@ -102,7 +102,7 @@ run;
|
|||||||
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.
|
||||||
OPERATOR_NM:$10. RAW_VALUE:$32767.;
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
datalines4;
|
datalines4;
|
||||||
AND,OR,2,Name,IN,"('Jane','Janet')"
|
AND,OR,2,Name,IN,"('Jane','Janet')"
|
||||||
AND,OR,3,Name,IN,"('James')"
|
AND,OR,3,Name,IN,"('James')"
|
||||||
@@ -120,7 +120,3 @@ run;
|
|||||||
outds=work.test_results
|
outds=work.test_results
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
%webout(OPEN)
|
|
||||||
%webout(OBJ, TEST_RESULTS)
|
|
||||||
%webout(CLOSE)
|
|
||||||
68
tests/base/mp_filtervalidate.test.sas
Normal file
68
tests/base/mp_filtervalidate.test.sas
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Testing mp_filtervalidate macro
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mp_filtergenerate.sas
|
||||||
|
@li mp_filtervalidate.sas
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
|
||||||
|
/* valid filter */
|
||||||
|
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,>,5
|
||||||
|
AND,AND,1,SEX,NE,"'M'"
|
||||||
|
AND,OR,2,Name,NOT IN,"('Jane','Janet')"
|
||||||
|
AND,OR,2,Weight,>=,84.6
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
%mp_filtergenerate(work.inds,outref=myfilter)
|
||||||
|
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
||||||
|
%mp_assertdsobs(work.results,
|
||||||
|
desc=Valid filter,
|
||||||
|
test=EMPTY,
|
||||||
|
outds=work.test_results
|
||||||
|
)
|
||||||
|
|
||||||
|
/* empty filter (return all records) */
|
||||||
|
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;
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
%mp_filtergenerate(work.inds,outref=myfilter)
|
||||||
|
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
||||||
|
%mp_assertdsobs(work.results,
|
||||||
|
desc=Valid filter,
|
||||||
|
test=EMPTY,
|
||||||
|
outds=work.test_results
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* invalid filter*/
|
||||||
|
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,SEX,NE,2
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
%mp_filtergenerate(work.inds,outref=myfilter)
|
||||||
|
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
||||||
|
%let syscc=0;
|
||||||
|
%mp_assertdsobs(work.results,
|
||||||
|
desc=Valid filter,
|
||||||
|
test=EQUALS 1,
|
||||||
|
outds=work.test_results
|
||||||
|
)
|
||||||
|
|
||||||
62
tests/base/mp_validatecol.test.sas
Normal file
62
tests/base/mp_validatecol.test.sas
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Testing mp_validatecol.sas macro
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mp_assertdsobs.sas
|
||||||
|
@li mp_validatecol.sas
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test 1 - LIBDS
|
||||||
|
*/
|
||||||
|
data test1;
|
||||||
|
infile datalines4 dsd;
|
||||||
|
input;
|
||||||
|
libds=_infile_;
|
||||||
|
%mp_validatecol(libds,LIBDS,is_libds)
|
||||||
|
if libds=1;
|
||||||
|
datalines4;
|
||||||
|
some.libname
|
||||||
|
!lib.blah
|
||||||
|
%abort
|
||||||
|
definite.ok
|
||||||
|
not.ok!
|
||||||
|
nineletrs._
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
%mp_assertdsobs(work.test1,
|
||||||
|
desc=Testing LIBDS,
|
||||||
|
test=EQUALS 2,
|
||||||
|
outds=work.test_results
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test 2 - ISNUM
|
||||||
|
*/
|
||||||
|
data test2;
|
||||||
|
infile datalines4 dsd;
|
||||||
|
input;
|
||||||
|
infile=_infile_;
|
||||||
|
%mp_validatecol(infile,ISNUM,is_numeric)
|
||||||
|
if is_numeric=1;
|
||||||
|
datalines4;
|
||||||
|
1
|
||||||
|
0001
|
||||||
|
1e6
|
||||||
|
-44
|
||||||
|
above are good
|
||||||
|
the rest are bad
|
||||||
|
%abort
|
||||||
|
1&somethingverybad.
|
||||||
|
&
|
||||||
|
+-1
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
%mp_assertdsobs(work.test2,
|
||||||
|
desc=Test2 - ISNUM,
|
||||||
|
test=EQUALS 4,
|
||||||
|
outds=work.test_results
|
||||||
|
)
|
||||||
9
tests/testterm.sas
Normal file
9
tests/testterm.sas
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief term file for tests
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%webout(OPEN)
|
||||||
|
%webout(OBJ, TEST_RESULTS)
|
||||||
|
%webout(CLOSE)
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mv_createwebservice.sas
|
@li mv_createwebservice.sas
|
||||||
|
@li mv_getjobcode.sas
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@@ -22,3 +23,19 @@ run;
|
|||||||
code=testref,
|
code=testref,
|
||||||
name=mv_createwebservice
|
name=mv_createwebservice
|
||||||
)
|
)
|
||||||
|
|
||||||
|
filename compare temp;
|
||||||
|
%mv_getjobcode(
|
||||||
|
path=&mcTestAppLoc/tests/macros
|
||||||
|
,name=mv_createwebservice
|
||||||
|
,outref=compare;
|
||||||
|
)
|
||||||
|
|
||||||
|
data test_results;
|
||||||
|
length test_description $256 test_result $4 test_comments $256;
|
||||||
|
infile compare;
|
||||||
|
input;
|
||||||
|
if _infile_='01'x then test_result='PASS';
|
||||||
|
else test_result='FAIL';
|
||||||
|
test_description="Creating web service with invisible character";
|
||||||
|
run;
|
||||||
Reference in New Issue
Block a user