mirror of
https://github.com/sasjs/core.git
synced 2026-01-07 01:20:05 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc61e48868 | ||
|
|
62db83dcf6 | ||
|
|
7ea9e0f8e9 | ||
|
|
1c852515f5 | ||
|
|
b7e677bd8e | ||
|
|
f47f0d2cee | ||
|
|
3d0f426a98 | ||
|
|
2cb51f6164 |
@@ -1,5 +1,5 @@
|
|||||||
tasks:
|
tasks:
|
||||||
- init: npm i -g @sasjs/cli
|
- init: nvm install --latest-npm && npm i -g @sasjs/cli
|
||||||
|
|
||||||
image:
|
image:
|
||||||
file: .gitpod.dockerfile
|
file: .gitpod.dockerfile
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
|
|
||||||
/* send response in SASjs JSON format */
|
/* send response in SASjs JSON format */
|
||||||
data _null_;
|
data _null_;
|
||||||
file _webout mod lrecl=32000;
|
file _webout mod lrecl=32000 encoding='utf-8';
|
||||||
length msg $32767 debug $8;
|
length msg $32767 debug $8;
|
||||||
sasdatetime=datetime();
|
sasdatetime=datetime();
|
||||||
msg=cats(symget('msg'),'\n\nLog Extract:\n',symget('logmsg'));
|
msg=cats(symget('msg'),'\n\nLog Extract:\n',symget('logmsg'));
|
||||||
@@ -133,6 +133,8 @@
|
|||||||
put ",""SYSCC"" : ""&syscc"" ";
|
put ",""SYSCC"" : ""&syscc"" ";
|
||||||
put ",""SYSERRORTEXT"" : ""&syserrortext"" ";
|
put ",""SYSERRORTEXT"" : ""&syserrortext"" ";
|
||||||
put ",""SYSJOBID"" : ""&sysjobid"" ";
|
put ",""SYSJOBID"" : ""&sysjobid"" ";
|
||||||
|
sysvlong=quote(trim(symget('sysvlong')));
|
||||||
|
put ',"SYSVLONG" : ' sysvlong;
|
||||||
put ",""SYSWARNINGTEXT"" : ""&syswarningtext"" ";
|
put ",""SYSWARNINGTEXT"" : ""&syswarningtext"" ";
|
||||||
put ',"END_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '" ';
|
put ',"END_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '" ';
|
||||||
put "}" @;
|
put "}" @;
|
||||||
|
|||||||
@@ -78,7 +78,8 @@ run;
|
|||||||
|
|
||||||
data &outds;
|
data &outds;
|
||||||
if &sqlrc or &syscc or &syserr then do;
|
if &sqlrc or &syscc or &syserr then do;
|
||||||
REASON_CD=coalescec(symget('SYSERRORTEXT'),symget('SYSWARNINGTEXT'));
|
REASON_CD='VALIDATION_ERROR: '!!
|
||||||
|
coalescec(symget('SYSERRORTEXT'),symget('SYSWARNINGTEXT'));
|
||||||
output;
|
output;
|
||||||
end;
|
end;
|
||||||
else stop;
|
else stop;
|
||||||
@@ -102,4 +103,4 @@ filename &fref1 clear;
|
|||||||
%let syscc=1008;
|
%let syscc=1008;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%mend;
|
%mend mp_filtervalidate;
|
||||||
|
|||||||
@@ -147,7 +147,7 @@
|
|||||||
run;
|
run;
|
||||||
%let ds=&fmtds;
|
%let ds=&fmtds;
|
||||||
%end; /* &fmt=Y */
|
%end; /* &fmt=Y */
|
||||||
data _null_;file &jref mod ;
|
data _null_;file &jref mod encoding='utf-8';
|
||||||
put "["; call symputx('cols',0,'l');
|
put "["; call symputx('cols',0,'l');
|
||||||
proc sort
|
proc sort
|
||||||
data=sashelp.vcolumn(where=(libname='WORK' & memname="%upcase(&ds)"))
|
data=sashelp.vcolumn(where=(libname='WORK' & memname="%upcase(&ds)"))
|
||||||
|
|||||||
@@ -35,10 +35,5 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sasjs/cli": "^2.22.2"
|
"@sasjs/cli": "^2.22.2"
|
||||||
},
|
},
|
||||||
"config": {
|
|
||||||
"ghooks": {
|
|
||||||
"pre-commit": "sasjs lint"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dependencies": {}
|
"dependencies": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
@li mp_filtergenerate.sas
|
@li mp_filtergenerate.sas
|
||||||
@li mp_filtervalidate.sas
|
@li mp_filtervalidate.sas
|
||||||
@li mp_assertdsobs.sas
|
@li mp_assertdsobs.sas
|
||||||
|
@li mp_assert.sas
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@@ -41,14 +42,14 @@ run;
|
|||||||
%mp_filtergenerate(work.inds,outref=myfilter)
|
%mp_filtergenerate(work.inds,outref=myfilter)
|
||||||
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
||||||
%mp_assertdsobs(work.results,
|
%mp_assertdsobs(work.results,
|
||||||
desc=Valid filter,
|
desc=Empty filter,
|
||||||
test=EMPTY,
|
test=EMPTY,
|
||||||
outds=work.test_results
|
outds=work.test_results
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* invalid filter*/
|
/* invalid filter - char var, num val */
|
||||||
data work.inds;
|
data work.inds;
|
||||||
infile datalines4 dsd;
|
infile datalines4 dsd;
|
||||||
input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
|
input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
|
||||||
@@ -60,9 +61,40 @@ run;
|
|||||||
%mp_filtergenerate(work.inds,outref=myfilter)
|
%mp_filtergenerate(work.inds,outref=myfilter)
|
||||||
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
||||||
%let syscc=0;
|
%let syscc=0;
|
||||||
%mp_assertdsobs(work.results,
|
%let test3=0;
|
||||||
desc=Valid filter,
|
data _null_;
|
||||||
test=EQUALS 1,
|
set work.results;
|
||||||
|
if REASON_CD=:'VALIDATION_ERROR' then call symputx('test3',1);
|
||||||
|
putlog (_all_)(=);
|
||||||
|
stop;
|
||||||
|
run;
|
||||||
|
%mp_assert(
|
||||||
|
iftrue=(&test3=1),
|
||||||
|
desc=Checking char var could not receive num val,
|
||||||
outds=work.test_results
|
outds=work.test_results
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/* invalid filter - num var, char val */
|
||||||
|
data work.inds;
|
||||||
|
infile datalines4 dsd;
|
||||||
|
input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
|
||||||
|
OPERATOR_NM:$10. RAW_VALUE:$4000.;
|
||||||
|
datalines4;
|
||||||
|
AND,AND,1,age,NE,"'M'"
|
||||||
|
;;;;
|
||||||
|
run;
|
||||||
|
%mp_filtergenerate(work.inds,outref=myfilter)
|
||||||
|
%mp_filtervalidate(myfilter,sashelp.class,outds=work.results,abort=NO)
|
||||||
|
%let syscc=0;
|
||||||
|
%let test4=0;
|
||||||
|
data _null_;
|
||||||
|
set work.results;
|
||||||
|
if REASON_CD=:'VALIDATION_ERROR' then call symputx('test4',1);
|
||||||
|
putlog (_all_)(=);
|
||||||
|
stop;
|
||||||
|
run;
|
||||||
|
%mp_assert(
|
||||||
|
iftrue=(&test4=1),
|
||||||
|
desc=Checking num var could not receive char val,
|
||||||
|
outds=work.test_results
|
||||||
|
)
|
||||||
32
tests/viya/mv_createfolder.test.sas
Normal file
32
tests/viya/mv_createfolder.test.sas
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Testing mv_createfolder macro
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_uid.sas
|
||||||
|
@li mp_assert.sas
|
||||||
|
@li mv_createfolder.sas
|
||||||
|
@li mv_deleteviyafolder.sas
|
||||||
|
@li mv_getfoldermembers.sas
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
|
||||||
|
%let folder=%mf_uid();
|
||||||
|
|
||||||
|
/* create a folder */
|
||||||
|
%mv_createfolder(path=&mcTestAppLoc/temp/&folder/&folder)
|
||||||
|
|
||||||
|
%mv_getfoldermembers(root=&mcTestAppLoc/temp/&folder, outds=work.folders)
|
||||||
|
|
||||||
|
%let test=0;
|
||||||
|
data _null_;
|
||||||
|
set work.folders;
|
||||||
|
putlog (_all_)(=);
|
||||||
|
if name="&folder" then call symputx('test',1);
|
||||||
|
run;
|
||||||
|
|
||||||
|
%mp_assert(
|
||||||
|
iftrue=(&test=1),
|
||||||
|
desc=Check if temp folder can be successfully created
|
||||||
|
)
|
||||||
@@ -96,7 +96,7 @@ options noquotelenmax;
|
|||||||
data _null_;
|
data _null_;
|
||||||
set &libref1..links;
|
set &libref1..links;
|
||||||
if rel='createChild' then
|
if rel='createChild' then
|
||||||
call symputx('href',quote("&base_uri"!!trim(href)),'l');
|
call symputx('href',quote(cats("&base_uri",href)),'l');
|
||||||
run;
|
run;
|
||||||
%end;
|
%end;
|
||||||
%else %if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;
|
%else %if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;
|
||||||
@@ -141,7 +141,7 @@ options noquotelenmax;
|
|||||||
data _null_;
|
data _null_;
|
||||||
set &libref2..links;
|
set &libref2..links;
|
||||||
if rel='createChild' then
|
if rel='createChild' then
|
||||||
call symputx('href',quote(trim(href)),'l');
|
call symputx('href',quote(cats("&base_uri",href)),'l');
|
||||||
run;
|
run;
|
||||||
|
|
||||||
libname &libref2 clear;
|
libname &libref2 clear;
|
||||||
@@ -150,4 +150,4 @@ options noquotelenmax;
|
|||||||
filename &fname1 clear;
|
filename &fname1 clear;
|
||||||
libname &libref1 clear;
|
libname &libref1 clear;
|
||||||
%end;
|
%end;
|
||||||
%mend;
|
%mend mv_createfolder;
|
||||||
@@ -8,7 +8,11 @@
|
|||||||
|
|
||||||
|
|
||||||
@param root= The path for which to return the list of folders
|
@param root= The path for which to return the list of folders
|
||||||
@param outds= The output dataset to create (default is work.mv_getfolders)
|
@param outds= The output dataset to create (default is work.mv_getfolders). Format:
|
||||||
|
|ordinal_root|ordinal_items|creationTimeStamp| modifiedTimeStamp|createdBy|modifiedBy|id| uri|added| type|name|description|
|
||||||
|
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||
|
|1|1|2021-05-25T11:15:04.204Z|2021-05-25T11:15:04.204Z|allbow|allbow|4f1e3945-9655-462b-90f2-c31534b3ca47|/folders/folders/ed701ff3-77e8-468d-a4f5-8c43dec0fd9e|2021-05-25T11:15:04.212Z|child|my_folder_name|My folder Description|
|
||||||
|
|
||||||
@param access_token_var= The global macro variable to contain the access token
|
@param access_token_var= The global macro variable to contain the access token
|
||||||
@param grant_type= valid values are "password" or "authorization_code" (unquoted).
|
@param grant_type= valid values are "password" or "authorization_code" (unquoted).
|
||||||
The default is authorization_code.
|
The default is authorization_code.
|
||||||
@@ -116,4 +120,4 @@ options noquotelenmax;
|
|||||||
filename &fname1 clear;
|
filename &fname1 clear;
|
||||||
libname &libref1 clear;
|
libname &libref1 clear;
|
||||||
|
|
||||||
%mend;
|
%mend mv_getfoldermembers;
|
||||||
Reference in New Issue
Block a user