mirror of
https://github.com/sasjs/core.git
synced 2026-06-09 04:10:20 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7448252b22 | |||
| 1fb52d5f73 | |||
| 0c90ac8deb | |||
| fdf0a1b514 | |||
| 4d15f4ebf5 | |||
| 402337a952 |
@@ -54,6 +54,7 @@ jobs:
|
||||
echo "REFRESH_TOKEN=${{secrets.SAS9_4GL_IO_REFRESH_TOKEN}}" >> .env.server
|
||||
|
||||
- name: Semantic Release
|
||||
id: makerelease
|
||||
uses: cycjimmy/semantic-release-action@v6
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -64,3 +65,11 @@ jobs:
|
||||
npx @sasjs/cli compile job -s sasjs/utils/create_sas_package.sas -o sasjsbuild -t server
|
||||
# need long duration token per https://github.com/sasjs/server/issues/307
|
||||
# npx @sasjs/cli run sasjsbuild/jobs/utils/create_sas_package.sas -t server
|
||||
|
||||
- name: Update Docs Site
|
||||
if: steps.makerelease.outputs.new_release_published == 'true'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y doxygen
|
||||
export GITHUB_TOKEN=${{ secrets.CORESASJSIO_PAT }}
|
||||
npm run docs
|
||||
|
||||
@@ -25014,9 +25014,10 @@ run;
|
||||
|
||||
/* Get Viya file-extension details into some macro variables */
|
||||
%mv_getViyaFileExtParms(&ext
|
||||
,propertiesVar=viyaProperties
|
||||
,typeDefNameVar=viyaTypeDefName
|
||||
,mdebug=&mdebug);
|
||||
,propertiesVar=viyaProperties
|
||||
,typeDefNameVar=viyaTypeDefName
|
||||
,mdebug=&mdebug
|
||||
)
|
||||
|
||||
/* fetch job info */
|
||||
%local fname1;
|
||||
@@ -25084,9 +25085,9 @@ run;
|
||||
|
||||
/* If properties were found then patch the file to include them */
|
||||
%if not %mf_isBlank(%superq(viyaProperties)) %then %do;
|
||||
/* Wrap the properties object in a root object also containing the file name */
|
||||
/* Wrap the properties object in a root object also containing the filename */
|
||||
%local viyapatch;
|
||||
%let viyapatch = %sysfunc(pathname(work))/%mf_getuniquename(prefix=patch_json_);
|
||||
%let viyapatch=%sysfunc(pathname(work))/%mf_getuniquename(prefix=patch_json_);
|
||||
data _null_;
|
||||
length line $32767;
|
||||
file "&viyapatch" lrecl=32767;
|
||||
@@ -25106,7 +25107,7 @@ run;
|
||||
run;
|
||||
%end;
|
||||
|
||||
/* And apply the properties to the newly created file, using the PATCH method */
|
||||
/* Apply the properties to the newly created file, using the PATCH method */
|
||||
%let fref=%mf_getuniquefileref();
|
||||
filename &fref "&viyapatch";
|
||||
%let url=&base_uri&fileuri;
|
||||
@@ -28727,6 +28728,7 @@ libname &libref1 clear;
|
||||
@li mf_existds.sas
|
||||
@li mf_getplatform.sas
|
||||
@li mf_getuniquefileref.sas
|
||||
@li mf_getuniquelibref.sas
|
||||
@li mf_getuniquename.sas
|
||||
@li mf_getvalue.sas
|
||||
@li mf_getvarlist.sas
|
||||
@@ -28752,7 +28754,7 @@ libname &libref1 clear;
|
||||
iftrue=(%mf_isBlank(&ext))
|
||||
,msg=%str(No file extension provided.)
|
||||
,mac=MV_GETVIYAFILEEXTPARMS
|
||||
);
|
||||
)
|
||||
|
||||
%mp_abort(
|
||||
iftrue=(%mf_isBlank(&typeDefNameVar) and
|
||||
@@ -28760,13 +28762,13 @@ libname &libref1 clear;
|
||||
%mf_isBlank(&mediaTypeVar))
|
||||
,msg=%str(MV_GETVIYAFILEEXTPARMS - No parameter was requested.)
|
||||
,mac=MV_GETVIYAFILEEXTPARMS
|
||||
);
|
||||
)
|
||||
|
||||
%mp_abort(
|
||||
iftrue=(%mf_isBlank(&viyaFileExtRespLibDs))
|
||||
,msg=%str(No <libname.>dataset name provided to cache inital response.)
|
||||
,mac=MV_GETVIYAFILEEXTPARMS
|
||||
);
|
||||
)
|
||||
|
||||
/* Declare requested parameters as global macro vars and initialize blank */
|
||||
%if not %mf_isBlank(&typeDefNameVar) %then %do;
|
||||
@@ -28783,9 +28785,7 @@ libname &libref1 clear;
|
||||
%end;
|
||||
|
||||
%let base_uri=%mf_getplatform(VIYARESTAPI);
|
||||
%if &mdebug=1 %then %do;
|
||||
%put DEBUG: &=base_uri;
|
||||
%end;
|
||||
%if &mdebug=1 %then %put DEBUG: &=base_uri;
|
||||
|
||||
%let ext=%lowcase(&ext);
|
||||
|
||||
@@ -28809,7 +28809,7 @@ libname &libref1 clear;
|
||||
|
||||
%if (&SYS_PROCHTTP_STATUS_CODE ne 200) %then %do;
|
||||
/* To avoid a breaking change, exit early if the request failed.
|
||||
The calling process will proceed with empty requested macro variables. */
|
||||
The calling process will proceed with empty macro variables. */
|
||||
%put INFO: &sysmacroname File extension details were not retrieved.;
|
||||
filename &viyatypedefs clear;
|
||||
%return;
|
||||
@@ -28830,11 +28830,12 @@ libname &libref1 clear;
|
||||
/* Convert the content of that JSON into SAS datasets */
|
||||
/* First prepare a new WORK-based folder to receive the datasets */
|
||||
%local jsonworkfolder jsonlib opt_dlcreatedir;
|
||||
%let jsonworkfolder=%sysfunc(pathname(work))/%mf_getuniquename(prefix=json_);
|
||||
%let jsonworkfolder=%sysfunc(pathname(work))/%mf_getuniquename(prefix=jsn_);
|
||||
%let jsonlib=%mf_getuniquelibref(prefix=json);
|
||||
/* And point a libname at it */
|
||||
/* And point a libname at it */
|
||||
%let opt_dlcreatedir = %sysfunc(getoption(dlcreatedir));
|
||||
options dlcreatedir; libname &jsonlib "&jsonworkfolder"; options &opt_dlcreatedir;
|
||||
options dlcreatedir; libname &jsonlib "&jsonworkfolder";
|
||||
options &opt_dlcreatedir;
|
||||
|
||||
/* Read the json output once and copy datasets to its work folder */
|
||||
%local libref1;
|
||||
@@ -28863,20 +28864,22 @@ libname &libref1 clear;
|
||||
|
||||
%end; /* If initial filetype query response didn't exist */
|
||||
|
||||
/* Find the row-group for the current file extension */
|
||||
%if &mdebug %then %put DEBUG: Find the row-group for extension &ext;
|
||||
%local itemRowGroup;
|
||||
%let itemRowGroup =
|
||||
%mf_getValue(
|
||||
&viyaFileExtRespLibDs
|
||||
,_viyaItemIdx
|
||||
,filter=%quote(p1='items' and p2='extensions' and value="&ext")
|
||||
);
|
||||
data _null_;
|
||||
set &viyaFileExtRespLibDs;
|
||||
where p1='items' and p2='extensions' and value="&ext";
|
||||
call symputx('itemRowGroup',_viyaItemIdx,'l');
|
||||
%if &mdebug %then %do;
|
||||
putlog (_all_)(=);
|
||||
%end;
|
||||
run;
|
||||
|
||||
%if &mdebug %then %put DEBUG: &=itemRowGroup;
|
||||
|
||||
%if %mf_isBlank(&itemRowGroup) %then %do;
|
||||
/* extension was not found */
|
||||
%if(&mdebug=1) %then %put DEBUG: No type details found for extension "&ext".;
|
||||
%if &mdebug %then %put DEBUG: No type details found for extension "&ext";
|
||||
%return;
|
||||
%end;
|
||||
|
||||
@@ -28890,14 +28893,17 @@ libname &libref1 clear;
|
||||
|
||||
/* Populate typeDefName, if requested */
|
||||
%if (not %mf_isBlank(&typeDefNameVar)) %then %do;
|
||||
%let &typeDefNameVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="name"));
|
||||
%if &mdebug=1 %then %put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar;
|
||||
%let &typeDefNameVar = %mf_getvalue(
|
||||
&dsItems,value,filter=%quote(p1="items" and p2="name"));
|
||||
%if &mdebug %then
|
||||
%put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar;
|
||||
%end;
|
||||
|
||||
/* Populate mediaType, if requested */
|
||||
%if (not %mf_isBlank(&mediaTypeVar)) %then %do;
|
||||
%let &mediaTypeVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="mediaType"));
|
||||
%if &mdebug=1 %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar;
|
||||
%let &mediaTypeVar = %mf_getvalue(
|
||||
&dsItems,value,filter=%quote(p1="items" and p2="mediaType"));
|
||||
%if &mdebug %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar;
|
||||
%end;
|
||||
|
||||
/* Populate properties macro variable, if requested */
|
||||
@@ -28914,7 +28920,8 @@ libname &libref1 clear;
|
||||
/* Check for 1+ properties */
|
||||
%if ( %mf_nobs(&dsProperties) = 0 ) %then %do;
|
||||
%let &propertiesVar = %str();
|
||||
%if &mdebug=1 %then %put DEBUG: &SYSMACRONAME - No Viya properties found for file suffix %str(%')&ext%str(%');
|
||||
%if &mdebug %then %put DEBUG: &SYSMACRONAME - No Viya properties %trim(
|
||||
)found for file suffix %str(%')&ext%str(%');
|
||||
%end;
|
||||
%else %do;
|
||||
/* Properties potentially span multiple rows in the input table */
|
||||
@@ -28944,7 +28951,8 @@ libname &libref1 clear;
|
||||
end;
|
||||
run;
|
||||
|
||||
%if &mdebug=1 %then %put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar;
|
||||
%if &mdebug %then
|
||||
%put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar;
|
||||
%end;
|
||||
|
||||
%end;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
# refresh github pages site
|
||||
rm -rf sasjsbuild/docsite
|
||||
git clone git@github.com:sasjs/core.github.io.git sasjsbuild/docsite
|
||||
git clone https://x-access-token:$GITHUB_TOKEN@github.com/sasjs/core.github.io.git sasjsbuild/docsite
|
||||
rm -rf sasjsbuild/docsite/*.html
|
||||
rm -rf sasjsbuild/docsite/*.js
|
||||
rm -rf sasjsbuild/docsite/*.png
|
||||
|
||||
@@ -80,7 +80,7 @@ options mprint;
|
||||
typeDefNameVar=invalidTypeDefName,
|
||||
propertiesVar=invalidProperties,
|
||||
mediaTypeVar=invalidMediaType
|
||||
)
|
||||
)
|
||||
%mp_assertscope(COMPARE
|
||||
,ignorelist=
|
||||
&mvarIgnoreList invalidTypeDefName invalidProperties invalidMediaType
|
||||
|
||||
@@ -204,9 +204,10 @@ run;
|
||||
|
||||
/* Get Viya file-extension details into some macro variables */
|
||||
%mv_getViyaFileExtParms(&ext
|
||||
,propertiesVar=viyaProperties
|
||||
,typeDefNameVar=viyaTypeDefName
|
||||
,mdebug=&mdebug);
|
||||
,propertiesVar=viyaProperties
|
||||
,typeDefNameVar=viyaTypeDefName
|
||||
,mdebug=&mdebug
|
||||
)
|
||||
|
||||
/* fetch job info */
|
||||
%local fname1;
|
||||
@@ -274,9 +275,9 @@ run;
|
||||
|
||||
/* If properties were found then patch the file to include them */
|
||||
%if not %mf_isBlank(%superq(viyaProperties)) %then %do;
|
||||
/* Wrap the properties object in a root object also containing the file name */
|
||||
/* Wrap the properties object in a root object also containing the filename */
|
||||
%local viyapatch;
|
||||
%let viyapatch = %sysfunc(pathname(work))/%mf_getuniquename(prefix=patch_json_);
|
||||
%let viyapatch=%sysfunc(pathname(work))/%mf_getuniquename(prefix=patch_json_);
|
||||
data _null_;
|
||||
length line $32767;
|
||||
file "&viyapatch" lrecl=32767;
|
||||
@@ -296,7 +297,7 @@ run;
|
||||
run;
|
||||
%end;
|
||||
|
||||
/* And apply the properties to the newly created file, using the PATCH method */
|
||||
/* Apply the properties to the newly created file, using the PATCH method */
|
||||
%let fref=%mf_getuniquefileref();
|
||||
filename &fref "&viyapatch";
|
||||
%let url=&base_uri&fileuri;
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
@li mf_existds.sas
|
||||
@li mf_getplatform.sas
|
||||
@li mf_getuniquefileref.sas
|
||||
@li mf_getuniquelibref.sas
|
||||
@li mf_getuniquename.sas
|
||||
@li mf_getvalue.sas
|
||||
@li mf_getvarlist.sas
|
||||
@@ -48,7 +49,7 @@
|
||||
iftrue=(%mf_isBlank(&ext))
|
||||
,msg=%str(No file extension provided.)
|
||||
,mac=MV_GETVIYAFILEEXTPARMS
|
||||
);
|
||||
)
|
||||
|
||||
%mp_abort(
|
||||
iftrue=(%mf_isBlank(&typeDefNameVar) and
|
||||
@@ -56,13 +57,13 @@
|
||||
%mf_isBlank(&mediaTypeVar))
|
||||
,msg=%str(MV_GETVIYAFILEEXTPARMS - No parameter was requested.)
|
||||
,mac=MV_GETVIYAFILEEXTPARMS
|
||||
);
|
||||
)
|
||||
|
||||
%mp_abort(
|
||||
iftrue=(%mf_isBlank(&viyaFileExtRespLibDs))
|
||||
,msg=%str(No <libname.>dataset name provided to cache inital response.)
|
||||
,mac=MV_GETVIYAFILEEXTPARMS
|
||||
);
|
||||
)
|
||||
|
||||
/* Declare requested parameters as global macro vars and initialize blank */
|
||||
%if not %mf_isBlank(&typeDefNameVar) %then %do;
|
||||
@@ -79,9 +80,7 @@
|
||||
%end;
|
||||
|
||||
%let base_uri=%mf_getplatform(VIYARESTAPI);
|
||||
%if &mdebug=1 %then %do;
|
||||
%put DEBUG: &=base_uri;
|
||||
%end;
|
||||
%if &mdebug=1 %then %put DEBUG: &=base_uri;
|
||||
|
||||
%let ext=%lowcase(&ext);
|
||||
|
||||
@@ -105,7 +104,7 @@
|
||||
|
||||
%if (&SYS_PROCHTTP_STATUS_CODE ne 200) %then %do;
|
||||
/* To avoid a breaking change, exit early if the request failed.
|
||||
The calling process will proceed with empty requested macro variables. */
|
||||
The calling process will proceed with empty macro variables. */
|
||||
%put INFO: &sysmacroname File extension details were not retrieved.;
|
||||
filename &viyatypedefs clear;
|
||||
%return;
|
||||
@@ -126,11 +125,12 @@
|
||||
/* Convert the content of that JSON into SAS datasets */
|
||||
/* First prepare a new WORK-based folder to receive the datasets */
|
||||
%local jsonworkfolder jsonlib opt_dlcreatedir;
|
||||
%let jsonworkfolder=%sysfunc(pathname(work))/%mf_getuniquename(prefix=json_);
|
||||
%let jsonworkfolder=%sysfunc(pathname(work))/%mf_getuniquename(prefix=jsn_);
|
||||
%let jsonlib=%mf_getuniquelibref(prefix=json);
|
||||
/* And point a libname at it */
|
||||
/* And point a libname at it */
|
||||
%let opt_dlcreatedir = %sysfunc(getoption(dlcreatedir));
|
||||
options dlcreatedir; libname &jsonlib "&jsonworkfolder"; options &opt_dlcreatedir;
|
||||
options dlcreatedir; libname &jsonlib "&jsonworkfolder";
|
||||
options &opt_dlcreatedir;
|
||||
|
||||
/* Read the json output once and copy datasets to its work folder */
|
||||
%local libref1;
|
||||
@@ -159,20 +159,22 @@
|
||||
|
||||
%end; /* If initial filetype query response didn't exist */
|
||||
|
||||
/* Find the row-group for the current file extension */
|
||||
%if &mdebug %then %put DEBUG: Find the row-group for extension &ext;
|
||||
%local itemRowGroup;
|
||||
%let itemRowGroup =
|
||||
%mf_getValue(
|
||||
&viyaFileExtRespLibDs
|
||||
,_viyaItemIdx
|
||||
,filter=%quote(p1='items' and p2='extensions' and value="&ext")
|
||||
);
|
||||
data _null_;
|
||||
set &viyaFileExtRespLibDs;
|
||||
where p1='items' and p2='extensions' and value="&ext";
|
||||
call symputx('itemRowGroup',_viyaItemIdx,'l');
|
||||
%if &mdebug %then %do;
|
||||
putlog (_all_)(=);
|
||||
%end;
|
||||
run;
|
||||
|
||||
%if &mdebug %then %put DEBUG: &=itemRowGroup;
|
||||
|
||||
%if %mf_isBlank(&itemRowGroup) %then %do;
|
||||
/* extension was not found */
|
||||
%if(&mdebug=1) %then %put DEBUG: No type details found for extension "&ext".;
|
||||
%if &mdebug %then %put DEBUG: No type details found for extension "&ext";
|
||||
%return;
|
||||
%end;
|
||||
|
||||
@@ -186,14 +188,17 @@
|
||||
|
||||
/* Populate typeDefName, if requested */
|
||||
%if (not %mf_isBlank(&typeDefNameVar)) %then %do;
|
||||
%let &typeDefNameVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="name"));
|
||||
%if &mdebug=1 %then %put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar;
|
||||
%let &typeDefNameVar = %mf_getvalue(
|
||||
&dsItems,value,filter=%quote(p1="items" and p2="name"));
|
||||
%if &mdebug %then
|
||||
%put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar;
|
||||
%end;
|
||||
|
||||
/* Populate mediaType, if requested */
|
||||
%if (not %mf_isBlank(&mediaTypeVar)) %then %do;
|
||||
%let &mediaTypeVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="mediaType"));
|
||||
%if &mdebug=1 %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar;
|
||||
%let &mediaTypeVar = %mf_getvalue(
|
||||
&dsItems,value,filter=%quote(p1="items" and p2="mediaType"));
|
||||
%if &mdebug %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar;
|
||||
%end;
|
||||
|
||||
/* Populate properties macro variable, if requested */
|
||||
@@ -210,7 +215,8 @@
|
||||
/* Check for 1+ properties */
|
||||
%if ( %mf_nobs(&dsProperties) = 0 ) %then %do;
|
||||
%let &propertiesVar = %str();
|
||||
%if &mdebug=1 %then %put DEBUG: &SYSMACRONAME - No Viya properties found for file suffix %str(%')&ext%str(%');
|
||||
%if &mdebug %then %put DEBUG: &SYSMACRONAME - No Viya properties %trim(
|
||||
)found for file suffix %str(%')&ext%str(%');
|
||||
%end;
|
||||
%else %do;
|
||||
/* Properties potentially span multiple rows in the input table */
|
||||
@@ -240,7 +246,8 @@
|
||||
end;
|
||||
run;
|
||||
|
||||
%if &mdebug=1 %then %put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar;
|
||||
%if &mdebug %then
|
||||
%put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar;
|
||||
%end;
|
||||
|
||||
%end;
|
||||
|
||||
Reference in New Issue
Block a user