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

Compare commits

...

4 Commits

Author SHA1 Message Date
Allan Bowe 0c90ac8deb feat: auto-deploy docs to core.sasjs.io 2026-05-01 09:19:10 +00:00
Allan Bowe fdf0a1b514 Merge pull request #421 from sasjs/mv_getviyafileextparams
Mv getviyafileextparams
2026-04-29 12:59:00 +01:00
github-actions 4d15f4ebf5 chore: updating all.sas 2026-04-29 11:50:49 +00:00
4gl 402337a952 fix: avoid strange error when running mv_getviyafileextparams in Studio 2026-04-29 12:50:03 +01:00
6 changed files with 85 additions and 62 deletions
+7
View File
@@ -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,9 @@ 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: |
export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
npm run docs
+38 -30
View File
@@ -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;
+1 -1
View File
@@ -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
+7 -6
View File
@@ -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;
+31 -24
View File
@@ -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;