1
0
mirror of https://github.com/sasjs/core.git synced 2026-06-08 20:10:20 +00:00

Compare commits

...

13 Commits

Author SHA1 Message Date
Allan Bowe 1244aff5e4 Merge pull request #424 from sasjs/exectask
Exectask
2026-05-13 14:06:38 +01:00
github-actions 4934e6675e chore: updating all.sas 2026-05-13 13:04:37 +00:00
4gl 5f5fb0116a fix: adding weboutBEGIN/END when exectask=true 2026-05-13 14:04:13 +01:00
Allan Bowe 9a725b9770 Merge pull request #423 from sasjs/CS0409737
Cs0409737
2026-05-13 09:59:47 +01:00
github-actions 6c77556fdb chore: updating all.sas 2026-05-13 08:57:58 +00:00
4gl 0e37bff1ee fix: workaround for sas track CS0409737 2026-05-13 09:57:33 +01:00
Allan Bowe bb6aced478 Merge pull request #422 from sasjs/exectasks
Exectasks
2026-05-12 14:03:31 +01:00
github-actions 96d42b9f66 chore: updating all.sas 2026-05-12 13:02:35 +00:00
4gl 59f8303b19 chore: ensuring mv_createwebservice is rebuilt on mv_webout change 2026-05-12 14:01:38 +01:00
github-actions 0599c4d597 chore: updating all.sas 2026-05-12 12:43:06 +00:00
4gl 356d3644e5 feat: support for Viya Compute Tasks 2026-05-12 13:42:37 +01:00
4gl ef7e8e051f chore: updating tests around mv_createfolder 2026-05-12 13:25:36 +01:00
4gl aa35317126 fix: doc header invocation for sidebar 2026-05-01 17:14:31 +01:00
10 changed files with 107 additions and 26 deletions
+1
View File
@@ -82,6 +82,7 @@ jobs:
rm -rf *.svg rm -rf *.svg
rm -rf search rm -rf search
cp -R ../sasjsbuild/docs/* . cp -R ../sasjsbuild/docs/* .
ls
git config user.name sasjs git config user.name sasjs
echo 'core.sasjs.io' > CNAME echo 'core.sasjs.io' > CNAME
git add . git add .
+1
View File
@@ -26,6 +26,7 @@ jobs:
git config user.email github-actions@github.com git config user.email github-actions@github.com
python3 build.py python3 build.py
git add all.sas git add all.sas
git add viya/mv_createwebservice.sas
git commit -m "chore: updating all.sas" --allow-empty git commit -m "chore: updating all.sas" --allow-empty
git push git push
+36 -9
View File
@@ -25291,7 +25291,6 @@ options noquotelenmax;
run; run;
%end; %end;
%if &SYS_PROCHTTP_STATUS_CODE=200 %then %do; %if &SYS_PROCHTTP_STATUS_CODE=200 %then %do;
%*put &sysmacroname &newpath exists so grab the follow on link ;
data _null_; data _null_;
set &libref1..links; set &libref1..links;
if rel='createChild' then if rel='createChild' then
@@ -26312,7 +26311,7 @@ data _null_;
put ' ,showmeta=N,maxobs=MAX,workobs=0 '; put ' ,showmeta=N,maxobs=MAX,workobs=0 ';
put '); '; put '); ';
put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name '; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name ';
put ' sasjs_tables SYS_JES_JOB_URI; '; put ' sasjs_tables SYS_JES_JOB_URI _EXECUTIONTASKS; ';
put '%if %index("&_debug",log) %then %let _debug=131; '; put '%if %index("&_debug",log) %then %let _debug=131; ';
put ' '; put ' ';
put '%local i tempds table; '; put '%local i tempds table; ';
@@ -26327,6 +26326,11 @@ data _null_;
put ' %let _webin_file_count=%eval(&_webin_file_count+0); '; put ' %let _webin_file_count=%eval(&_webin_file_count+0); ';
put ' %let _webin_fileuri1=&_webin_fileuri; '; put ' %let _webin_fileuri1=&_webin_fileuri; ';
put ' %let _webin_name1=&_webin_name; '; put ' %let _webin_name1=&_webin_name; ';
put ' %if &_EXECUTIONTASKS=true %then %do; ';
put ' /* TODO - remove this once SAS Track CS0409737 is resolved */ ';
put ' /* links: https://github.com/sasjs/adapter/issues/884 */ ';
put ' %if %upcase(&_webin_name)=_SASJS_NOOP %then %let _webin_file_count=0; ';
put ' %end; ';
put ' %end; '; put ' %end; ';
put ' '; put ' ';
put ' /* if the sasjs_tables param is passed, we expect param based upload */ '; put ' /* if the sasjs_tables param is passed, we expect param based upload */ ';
@@ -26367,8 +26371,12 @@ data _null_;
put ' %end; '; put ' %end; ';
put ' %else %do i=1 %to &_webin_file_count; '; put ' %else %do i=1 %to &_webin_file_count; ';
put ' /* read in any files that are sent */ '; put ' /* read in any files that are sent */ ';
put ' /* this part needs refactoring for wide files */ '; put ' %if &_EXECUTIONTASKS=true %then %do; ';
put ' filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; '; put ' filename indata "%sysfunc(pathname(&&_webin_fileref&i))" lrecl=999999; ';
put ' %end; ';
put ' %else %do; ';
put ' filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; ';
put ' %end; ';
put ' data _null_; '; put ' data _null_; ';
put ' infile indata termstr=crlf lrecl=32767; '; put ' infile indata termstr=crlf lrecl=32767; ';
put ' input; '; put ' input; ';
@@ -26406,6 +26414,9 @@ data _null_;
put ' '; put ' ';
put ' /* setup json */ '; put ' /* setup json */ ';
put ' data _null_;file &fref; '; put ' data _null_;file &fref; ';
put ' %if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do; ';
put ' put ''>>weboutBEGIN<<''; ';
put ' %end; ';
put ' put ''{"SYSDATE" : "'' "&SYSDATE" ''"''; '; put ' put ''{"SYSDATE" : "'' "&SYSDATE" ''"''; ';
put ' put '',"SYSTIME" : "'' "&SYSTIME" ''"''; '; put ' put '',"SYSTIME" : "'' "&SYSTIME" ''"''; ';
put ' run; '; put ' run; ';
@@ -26518,7 +26529,9 @@ data _null_;
put ' memsize=quote(cats(memsize)); '; put ' memsize=quote(cats(memsize)); ';
put ' put '',"MEMSIZE" : '' memsize; '; put ' put '',"MEMSIZE" : '' memsize; ';
put ' put "}"; '; put ' put "}"; ';
put ' '; put ' %if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do; ';
put ' put ''>>weboutEND<<''; ';
put ' %end; ';
put ' %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; '; put ' %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; ';
put ' data _null_; rc=fcopy("&fref","_webout");run; '; put ' data _null_; rc=fcopy("&fref","_webout");run; ';
put ' %end; '; put ' %end; ';
@@ -30429,7 +30442,7 @@ filename &fref1 clear;
,showmeta=N,maxobs=MAX,workobs=0 ,showmeta=N,maxobs=MAX,workobs=0
); );
%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name %global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name
sasjs_tables SYS_JES_JOB_URI; sasjs_tables SYS_JES_JOB_URI _EXECUTIONTASKS;
%if %index("&_debug",log) %then %let _debug=131; %if %index("&_debug",log) %then %let _debug=131;
%local i tempds table; %local i tempds table;
@@ -30444,6 +30457,11 @@ filename &fref1 clear;
%let _webin_file_count=%eval(&_webin_file_count+0); %let _webin_file_count=%eval(&_webin_file_count+0);
%let _webin_fileuri1=&_webin_fileuri; %let _webin_fileuri1=&_webin_fileuri;
%let _webin_name1=&_webin_name; %let _webin_name1=&_webin_name;
%if &_EXECUTIONTASKS=true %then %do;
/* TODO - remove this once SAS Track CS0409737 is resolved */
/* links: https://github.com/sasjs/adapter/issues/884 */
%if %upcase(&_webin_name)=_SASJS_NOOP %then %let _webin_file_count=0;
%end;
%end; %end;
/* if the sasjs_tables param is passed, we expect param based upload */ /* if the sasjs_tables param is passed, we expect param based upload */
@@ -30484,8 +30502,12 @@ filename &fref1 clear;
%end; %end;
%else %do i=1 %to &_webin_file_count; %else %do i=1 %to &_webin_file_count;
/* read in any files that are sent */ /* read in any files that are sent */
/* this part needs refactoring for wide files */ %if &_EXECUTIONTASKS=true %then %do;
filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; filename indata "%sysfunc(pathname(&&_webin_fileref&i))" lrecl=999999;
%end;
%else %do;
filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;
%end;
data _null_; data _null_;
infile indata termstr=crlf lrecl=32767; infile indata termstr=crlf lrecl=32767;
input; input;
@@ -30523,6 +30545,9 @@ filename &fref1 clear;
/* setup json */ /* setup json */
data _null_;file &fref; data _null_;file &fref;
%if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do;
put '>>weboutBEGIN<<';
%end;
put '{"SYSDATE" : "' "&SYSDATE" '"'; put '{"SYSDATE" : "' "&SYSDATE" '"';
put ',"SYSTIME" : "' "&SYSTIME" '"'; put ',"SYSTIME" : "' "&SYSTIME" '"';
run; run;
@@ -30635,7 +30660,9 @@ filename &fref1 clear;
memsize=quote(cats(memsize)); memsize=quote(cats(memsize));
put ',"MEMSIZE" : ' memsize; put ',"MEMSIZE" : ' memsize;
put "}"; put "}";
%if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do;
put '>>weboutEND<<';
%end;
%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;
data _null_; rc=fcopy("&fref","_webout");run; data _null_; rc=fcopy("&fref","_webout");run;
%end; %end;
+1
View File
@@ -21,6 +21,7 @@
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css" /> <link href="$relpath^tabs.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="$relpath^jquery.js"></script> <script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script> <script type="text/javascript" src="$relpath^dynsections.js"></script>
<script type="text/javascript" src="$relpath^cookie.js"></script>
$treeview $search $mathjax $treeview $search $mathjax
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" /> <link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="$relpath^favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="$relpath^favicon.ico" type="image/x-icon" />
+1 -4
View File
@@ -25,10 +25,7 @@
}, },
"testConfig": { "testConfig": {
"initProgram": "tests/testinit.sas", "initProgram": "tests/testinit.sas",
"termProgram": "tests/testterm.sas", "termProgram": "tests/testterm.sas"
"macroVars": {
"mcTestAppLoc": "/Public/temp/macrocore"
}
}, },
"defaultTarget": "server", "defaultTarget": "server",
"targets": [ "targets": [
+1 -1
View File
@@ -10,7 +10,7 @@
**/ **/
/* location in metadata or SAS Drive for temporary files */ /* location in metadata or SAS Drive for temporary files */
%let mcTestAppLoc=/Public/testresults/sasjs_core/%mf_uid(); %let mcTestAppLoc=/Users/&sysuserid/testresults/sasjs_core/%mf_uid();
/* set defaults */ /* set defaults */
%mp_init() %mp_init()
+30 -3
View File
@@ -5,6 +5,7 @@
<h4> SAS Macros </h4> <h4> SAS Macros </h4>
@li mf_uid.sas @li mf_uid.sas
@li mp_assert.sas @li mp_assert.sas
@li mp_assertscope.sas
@li mv_createfolder.sas @li mv_createfolder.sas
@li mv_deleteviyafolder.sas @li mv_deleteviyafolder.sas
@li mv_getfoldermembers.sas @li mv_getfoldermembers.sas
@@ -15,7 +16,11 @@
%let folder=%mf_uid(); %let folder=%mf_uid();
/* create a folder */ /* create a folder */
%mp_assertscope(SNAPSHOT)
%mv_createfolder(path=&mcTestAppLoc/temp/&folder/&folder) %mv_createfolder(path=&mcTestAppLoc/temp/&folder/&folder)
%mp_assertscope(COMPARE, ignorelist=MC0_JADP1LEN MC0_JADP2LEN MC0_JADPNUM
MC0_JADVLEN MC2_JADP1LEN MC2_JADP2LEN MC2_JADPNUM MC2_JADVLEN
)
%mv_getfoldermembers(root=&mcTestAppLoc/temp/&folder, outds=work.folders) %mv_getfoldermembers(root=&mcTestAppLoc/temp/&folder, outds=work.folders)
@@ -32,17 +37,39 @@ run;
) )
/* create a folder without output dataset as part of the original macro */ /* create a folder without output dataset as part of the original macro */
%mv_createfolder(path=&mcTestAppLoc/temp/&folder/folder2,outds=folders2) %mv_createfolder(path=&mcTestAppLoc/temp/&folder/f2
,outds=folders2,mdebug=&sasjs_mdebug
)
%let test=0; %let test=0;
data _null_; data _null_;
set work.folders2; set work.folders2;
putlog (_all_)(=); putlog (_all_)(=);
if not missing(self_uri) and not missing(parent_uri) if not missing(self_uri) then call symputx('test2',1);
then call symputx('test2',1);
run; run;
%mp_assert( %mp_assert(
iftrue=(&test2=1), iftrue=(&test2=1),
desc=Check if outds param works desc=Check if outds param works
)
/* create a folder with full stops */
%let newfolder=%mf_uid().2.1;
%mv_createfolder(path=&mcTestAppLoc/temp/&newfolder
,outds=work.folders3
,mdebug=&sasjs_mdebug
)
%mv_getfoldermembers(root=&mcTestAppLoc/temp, outds=work.folders3)
%let test3=0;
data _null_;
set work.folders3;
putlog (_all_)(=);
if name="&newfolder" then call symputx('test3',1);
run;
%mp_assert(
iftrue=(&test3=1),
desc=Check if folder with full stops can be successfully created
) )
-1
View File
@@ -145,7 +145,6 @@ options noquotelenmax;
run; run;
%end; %end;
%if &SYS_PROCHTTP_STATUS_CODE=200 %then %do; %if &SYS_PROCHTTP_STATUS_CODE=200 %then %do;
%*put &sysmacroname &newpath exists so grab the follow on link ;
data _null_; data _null_;
set &libref1..links; set &libref1..links;
if rel='createChild' then if rel='createChild' then
+18 -4
View File
@@ -594,7 +594,7 @@ data _null_;
put ' ,showmeta=N,maxobs=MAX,workobs=0 '; put ' ,showmeta=N,maxobs=MAX,workobs=0 ';
put '); '; put '); ';
put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name '; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name ';
put ' sasjs_tables SYS_JES_JOB_URI; '; put ' sasjs_tables SYS_JES_JOB_URI _EXECUTIONTASKS; ';
put '%if %index("&_debug",log) %then %let _debug=131; '; put '%if %index("&_debug",log) %then %let _debug=131; ';
put ' '; put ' ';
put '%local i tempds table; '; put '%local i tempds table; ';
@@ -609,6 +609,11 @@ data _null_;
put ' %let _webin_file_count=%eval(&_webin_file_count+0); '; put ' %let _webin_file_count=%eval(&_webin_file_count+0); ';
put ' %let _webin_fileuri1=&_webin_fileuri; '; put ' %let _webin_fileuri1=&_webin_fileuri; ';
put ' %let _webin_name1=&_webin_name; '; put ' %let _webin_name1=&_webin_name; ';
put ' %if &_EXECUTIONTASKS=true %then %do; ';
put ' /* TODO - remove this once SAS Track CS0409737 is resolved */ ';
put ' /* links: https://github.com/sasjs/adapter/issues/884 */ ';
put ' %if %upcase(&_webin_name)=_SASJS_NOOP %then %let _webin_file_count=0; ';
put ' %end; ';
put ' %end; '; put ' %end; ';
put ' '; put ' ';
put ' /* if the sasjs_tables param is passed, we expect param based upload */ '; put ' /* if the sasjs_tables param is passed, we expect param based upload */ ';
@@ -649,8 +654,12 @@ data _null_;
put ' %end; '; put ' %end; ';
put ' %else %do i=1 %to &_webin_file_count; '; put ' %else %do i=1 %to &_webin_file_count; ';
put ' /* read in any files that are sent */ '; put ' /* read in any files that are sent */ ';
put ' /* this part needs refactoring for wide files */ '; put ' %if &_EXECUTIONTASKS=true %then %do; ';
put ' filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; '; put ' filename indata "%sysfunc(pathname(&&_webin_fileref&i))" lrecl=999999; ';
put ' %end; ';
put ' %else %do; ';
put ' filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; ';
put ' %end; ';
put ' data _null_; '; put ' data _null_; ';
put ' infile indata termstr=crlf lrecl=32767; '; put ' infile indata termstr=crlf lrecl=32767; ';
put ' input; '; put ' input; ';
@@ -688,6 +697,9 @@ data _null_;
put ' '; put ' ';
put ' /* setup json */ '; put ' /* setup json */ ';
put ' data _null_;file &fref; '; put ' data _null_;file &fref; ';
put ' %if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do; ';
put ' put ''>>weboutBEGIN<<''; ';
put ' %end; ';
put ' put ''{"SYSDATE" : "'' "&SYSDATE" ''"''; '; put ' put ''{"SYSDATE" : "'' "&SYSDATE" ''"''; ';
put ' put '',"SYSTIME" : "'' "&SYSTIME" ''"''; '; put ' put '',"SYSTIME" : "'' "&SYSTIME" ''"''; ';
put ' run; '; put ' run; ';
@@ -800,7 +812,9 @@ data _null_;
put ' memsize=quote(cats(memsize)); '; put ' memsize=quote(cats(memsize)); ';
put ' put '',"MEMSIZE" : '' memsize; '; put ' put '',"MEMSIZE" : '' memsize; ';
put ' put "}"; '; put ' put "}"; ';
put ' '; put ' %if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do; ';
put ' put ''>>weboutEND<<''; ';
put ' %end; ';
put ' %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; '; put ' %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; ';
put ' data _null_; rc=fcopy("&fref","_webout");run; '; put ' data _null_; rc=fcopy("&fref","_webout");run; ';
put ' %end; '; put ' %end; ';
+18 -4
View File
@@ -55,7 +55,7 @@
,showmeta=N,maxobs=MAX,workobs=0 ,showmeta=N,maxobs=MAX,workobs=0
); );
%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name %global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name
sasjs_tables SYS_JES_JOB_URI; sasjs_tables SYS_JES_JOB_URI _EXECUTIONTASKS;
%if %index("&_debug",log) %then %let _debug=131; %if %index("&_debug",log) %then %let _debug=131;
%local i tempds table; %local i tempds table;
@@ -70,6 +70,11 @@
%let _webin_file_count=%eval(&_webin_file_count+0); %let _webin_file_count=%eval(&_webin_file_count+0);
%let _webin_fileuri1=&_webin_fileuri; %let _webin_fileuri1=&_webin_fileuri;
%let _webin_name1=&_webin_name; %let _webin_name1=&_webin_name;
%if &_EXECUTIONTASKS=true %then %do;
/* TODO - remove this once SAS Track CS0409737 is resolved */
/* links: https://github.com/sasjs/adapter/issues/884 */
%if %upcase(&_webin_name)=_SASJS_NOOP %then %let _webin_file_count=0;
%end;
%end; %end;
/* if the sasjs_tables param is passed, we expect param based upload */ /* if the sasjs_tables param is passed, we expect param based upload */
@@ -110,8 +115,12 @@
%end; %end;
%else %do i=1 %to &_webin_file_count; %else %do i=1 %to &_webin_file_count;
/* read in any files that are sent */ /* read in any files that are sent */
/* this part needs refactoring for wide files */ %if &_EXECUTIONTASKS=true %then %do;
filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; filename indata "%sysfunc(pathname(&&_webin_fileref&i))" lrecl=999999;
%end;
%else %do;
filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;
%end;
data _null_; data _null_;
infile indata termstr=crlf lrecl=32767; infile indata termstr=crlf lrecl=32767;
input; input;
@@ -149,6 +158,9 @@
/* setup json */ /* setup json */
data _null_;file &fref; data _null_;file &fref;
%if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do;
put '>>weboutBEGIN<<';
%end;
put '{"SYSDATE" : "' "&SYSDATE" '"'; put '{"SYSDATE" : "' "&SYSDATE" '"';
put ',"SYSTIME" : "' "&SYSTIME" '"'; put ',"SYSTIME" : "' "&SYSTIME" '"';
run; run;
@@ -261,7 +273,9 @@
memsize=quote(cats(memsize)); memsize=quote(cats(memsize));
put ',"MEMSIZE" : ' memsize; put ',"MEMSIZE" : ' memsize;
put "}"; put "}";
%if %str(&_debug) ge 131 and &_EXECUTIONTASKS=true %then %do;
put '>>weboutEND<<';
%end;
%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;
data _null_; rc=fcopy("&fref","_webout");run; data _null_; rc=fcopy("&fref","_webout");run;
%end; %end;