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

Merge pull request #421 from sasjs/mv_getviyafileextparams

Mv getviyafileextparams
This commit is contained in:
Allan Bowe
2026-04-29 12:59:00 +01:00
committed by GitHub
4 changed files with 77 additions and 61 deletions
+33 -25
View File
@@ -25016,7 +25016,8 @@ run;
%mv_getViyaFileExtParms(&ext %mv_getViyaFileExtParms(&ext
,propertiesVar=viyaProperties ,propertiesVar=viyaProperties
,typeDefNameVar=viyaTypeDefName ,typeDefNameVar=viyaTypeDefName
,mdebug=&mdebug); ,mdebug=&mdebug
)
/* fetch job info */ /* fetch job info */
%local fname1; %local fname1;
@@ -25106,7 +25107,7 @@ run;
run; run;
%end; %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(); %let fref=%mf_getuniquefileref();
filename &fref "&viyapatch"; filename &fref "&viyapatch";
%let url=&base_uri&fileuri; %let url=&base_uri&fileuri;
@@ -28727,6 +28728,7 @@ libname &libref1 clear;
@li mf_existds.sas @li mf_existds.sas
@li mf_getplatform.sas @li mf_getplatform.sas
@li mf_getuniquefileref.sas @li mf_getuniquefileref.sas
@li mf_getuniquelibref.sas
@li mf_getuniquename.sas @li mf_getuniquename.sas
@li mf_getvalue.sas @li mf_getvalue.sas
@li mf_getvarlist.sas @li mf_getvarlist.sas
@@ -28752,7 +28754,7 @@ libname &libref1 clear;
iftrue=(%mf_isBlank(&ext)) iftrue=(%mf_isBlank(&ext))
,msg=%str(No file extension provided.) ,msg=%str(No file extension provided.)
,mac=MV_GETVIYAFILEEXTPARMS ,mac=MV_GETVIYAFILEEXTPARMS
); )
%mp_abort( %mp_abort(
iftrue=(%mf_isBlank(&typeDefNameVar) and iftrue=(%mf_isBlank(&typeDefNameVar) and
@@ -28760,13 +28762,13 @@ libname &libref1 clear;
%mf_isBlank(&mediaTypeVar)) %mf_isBlank(&mediaTypeVar))
,msg=%str(MV_GETVIYAFILEEXTPARMS - No parameter was requested.) ,msg=%str(MV_GETVIYAFILEEXTPARMS - No parameter was requested.)
,mac=MV_GETVIYAFILEEXTPARMS ,mac=MV_GETVIYAFILEEXTPARMS
); )
%mp_abort( %mp_abort(
iftrue=(%mf_isBlank(&viyaFileExtRespLibDs)) iftrue=(%mf_isBlank(&viyaFileExtRespLibDs))
,msg=%str(No <libname.>dataset name provided to cache inital response.) ,msg=%str(No <libname.>dataset name provided to cache inital response.)
,mac=MV_GETVIYAFILEEXTPARMS ,mac=MV_GETVIYAFILEEXTPARMS
); )
/* Declare requested parameters as global macro vars and initialize blank */ /* Declare requested parameters as global macro vars and initialize blank */
%if not %mf_isBlank(&typeDefNameVar) %then %do; %if not %mf_isBlank(&typeDefNameVar) %then %do;
@@ -28783,9 +28785,7 @@ libname &libref1 clear;
%end; %end;
%let base_uri=%mf_getplatform(VIYARESTAPI); %let base_uri=%mf_getplatform(VIYARESTAPI);
%if &mdebug=1 %then %do; %if &mdebug=1 %then %put DEBUG: &=base_uri;
%put DEBUG: &=base_uri;
%end;
%let ext=%lowcase(&ext); %let ext=%lowcase(&ext);
@@ -28809,7 +28809,7 @@ libname &libref1 clear;
%if (&SYS_PROCHTTP_STATUS_CODE ne 200) %then %do; %if (&SYS_PROCHTTP_STATUS_CODE ne 200) %then %do;
/* To avoid a breaking change, exit early if the request failed. /* 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.; %put INFO: &sysmacroname File extension details were not retrieved.;
filename &viyatypedefs clear; filename &viyatypedefs clear;
%return; %return;
@@ -28830,11 +28830,12 @@ libname &libref1 clear;
/* Convert the content of that JSON into SAS datasets */ /* Convert the content of that JSON into SAS datasets */
/* First prepare a new WORK-based folder to receive the datasets */ /* First prepare a new WORK-based folder to receive the datasets */
%local jsonworkfolder jsonlib opt_dlcreatedir; %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); %let jsonlib=%mf_getuniquelibref(prefix=json);
/* And point a libname at it */ /* And point a libname at it */
%let opt_dlcreatedir = %sysfunc(getoption(dlcreatedir)); %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 */ /* Read the json output once and copy datasets to its work folder */
%local libref1; %local libref1;
@@ -28863,20 +28864,22 @@ libname &libref1 clear;
%end; /* If initial filetype query response didn't exist */ %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; %local itemRowGroup;
%let itemRowGroup = data _null_;
%mf_getValue( set &viyaFileExtRespLibDs;
&viyaFileExtRespLibDs where p1='items' and p2='extensions' and value="&ext";
,_viyaItemIdx call symputx('itemRowGroup',_viyaItemIdx,'l');
,filter=%quote(p1='items' and p2='extensions' and value="&ext") %if &mdebug %then %do;
); putlog (_all_)(=);
%end;
run;
%if &mdebug %then %put DEBUG: &=itemRowGroup; %if &mdebug %then %put DEBUG: &=itemRowGroup;
%if %mf_isBlank(&itemRowGroup) %then %do; %if %mf_isBlank(&itemRowGroup) %then %do;
/* extension was not found */ /* 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; %return;
%end; %end;
@@ -28890,14 +28893,17 @@ libname &libref1 clear;
/* Populate typeDefName, if requested */ /* Populate typeDefName, if requested */
%if (not %mf_isBlank(&typeDefNameVar)) %then %do; %if (not %mf_isBlank(&typeDefNameVar)) %then %do;
%let &typeDefNameVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="name")); %let &typeDefNameVar = %mf_getvalue(
%if &mdebug=1 %then %put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar; &dsItems,value,filter=%quote(p1="items" and p2="name"));
%if &mdebug %then
%put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar;
%end; %end;
/* Populate mediaType, if requested */ /* Populate mediaType, if requested */
%if (not %mf_isBlank(&mediaTypeVar)) %then %do; %if (not %mf_isBlank(&mediaTypeVar)) %then %do;
%let &mediaTypeVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="mediaType")); %let &mediaTypeVar = %mf_getvalue(
%if &mdebug=1 %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar; &dsItems,value,filter=%quote(p1="items" and p2="mediaType"));
%if &mdebug %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar;
%end; %end;
/* Populate properties macro variable, if requested */ /* Populate properties macro variable, if requested */
@@ -28914,7 +28920,8 @@ libname &libref1 clear;
/* Check for 1+ properties */ /* Check for 1+ properties */
%if ( %mf_nobs(&dsProperties) = 0 ) %then %do; %if ( %mf_nobs(&dsProperties) = 0 ) %then %do;
%let &propertiesVar = %str(); %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; %end;
%else %do; %else %do;
/* Properties potentially span multiple rows in the input table */ /* Properties potentially span multiple rows in the input table */
@@ -28944,7 +28951,8 @@ libname &libref1 clear;
end; end;
run; run;
%if &mdebug=1 %then %put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar; %if &mdebug %then
%put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar;
%end; %end;
%end; %end;
+3 -2
View File
@@ -206,7 +206,8 @@ run;
%mv_getViyaFileExtParms(&ext %mv_getViyaFileExtParms(&ext
,propertiesVar=viyaProperties ,propertiesVar=viyaProperties
,typeDefNameVar=viyaTypeDefName ,typeDefNameVar=viyaTypeDefName
,mdebug=&mdebug); ,mdebug=&mdebug
)
/* fetch job info */ /* fetch job info */
%local fname1; %local fname1;
@@ -296,7 +297,7 @@ run;
run; run;
%end; %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(); %let fref=%mf_getuniquefileref();
filename &fref "&viyapatch"; filename &fref "&viyapatch";
%let url=&base_uri&fileuri; %let url=&base_uri&fileuri;
+30 -23
View File
@@ -23,6 +23,7 @@
@li mf_existds.sas @li mf_existds.sas
@li mf_getplatform.sas @li mf_getplatform.sas
@li mf_getuniquefileref.sas @li mf_getuniquefileref.sas
@li mf_getuniquelibref.sas
@li mf_getuniquename.sas @li mf_getuniquename.sas
@li mf_getvalue.sas @li mf_getvalue.sas
@li mf_getvarlist.sas @li mf_getvarlist.sas
@@ -48,7 +49,7 @@
iftrue=(%mf_isBlank(&ext)) iftrue=(%mf_isBlank(&ext))
,msg=%str(No file extension provided.) ,msg=%str(No file extension provided.)
,mac=MV_GETVIYAFILEEXTPARMS ,mac=MV_GETVIYAFILEEXTPARMS
); )
%mp_abort( %mp_abort(
iftrue=(%mf_isBlank(&typeDefNameVar) and iftrue=(%mf_isBlank(&typeDefNameVar) and
@@ -56,13 +57,13 @@
%mf_isBlank(&mediaTypeVar)) %mf_isBlank(&mediaTypeVar))
,msg=%str(MV_GETVIYAFILEEXTPARMS - No parameter was requested.) ,msg=%str(MV_GETVIYAFILEEXTPARMS - No parameter was requested.)
,mac=MV_GETVIYAFILEEXTPARMS ,mac=MV_GETVIYAFILEEXTPARMS
); )
%mp_abort( %mp_abort(
iftrue=(%mf_isBlank(&viyaFileExtRespLibDs)) iftrue=(%mf_isBlank(&viyaFileExtRespLibDs))
,msg=%str(No <libname.>dataset name provided to cache inital response.) ,msg=%str(No <libname.>dataset name provided to cache inital response.)
,mac=MV_GETVIYAFILEEXTPARMS ,mac=MV_GETVIYAFILEEXTPARMS
); )
/* Declare requested parameters as global macro vars and initialize blank */ /* Declare requested parameters as global macro vars and initialize blank */
%if not %mf_isBlank(&typeDefNameVar) %then %do; %if not %mf_isBlank(&typeDefNameVar) %then %do;
@@ -79,9 +80,7 @@
%end; %end;
%let base_uri=%mf_getplatform(VIYARESTAPI); %let base_uri=%mf_getplatform(VIYARESTAPI);
%if &mdebug=1 %then %do; %if &mdebug=1 %then %put DEBUG: &=base_uri;
%put DEBUG: &=base_uri;
%end;
%let ext=%lowcase(&ext); %let ext=%lowcase(&ext);
@@ -105,7 +104,7 @@
%if (&SYS_PROCHTTP_STATUS_CODE ne 200) %then %do; %if (&SYS_PROCHTTP_STATUS_CODE ne 200) %then %do;
/* To avoid a breaking change, exit early if the request failed. /* 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.; %put INFO: &sysmacroname File extension details were not retrieved.;
filename &viyatypedefs clear; filename &viyatypedefs clear;
%return; %return;
@@ -126,11 +125,12 @@
/* Convert the content of that JSON into SAS datasets */ /* Convert the content of that JSON into SAS datasets */
/* First prepare a new WORK-based folder to receive the datasets */ /* First prepare a new WORK-based folder to receive the datasets */
%local jsonworkfolder jsonlib opt_dlcreatedir; %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); %let jsonlib=%mf_getuniquelibref(prefix=json);
/* And point a libname at it */ /* And point a libname at it */
%let opt_dlcreatedir = %sysfunc(getoption(dlcreatedir)); %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 */ /* Read the json output once and copy datasets to its work folder */
%local libref1; %local libref1;
@@ -159,20 +159,22 @@
%end; /* If initial filetype query response didn't exist */ %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; %local itemRowGroup;
%let itemRowGroup = data _null_;
%mf_getValue( set &viyaFileExtRespLibDs;
&viyaFileExtRespLibDs where p1='items' and p2='extensions' and value="&ext";
,_viyaItemIdx call symputx('itemRowGroup',_viyaItemIdx,'l');
,filter=%quote(p1='items' and p2='extensions' and value="&ext") %if &mdebug %then %do;
); putlog (_all_)(=);
%end;
run;
%if &mdebug %then %put DEBUG: &=itemRowGroup; %if &mdebug %then %put DEBUG: &=itemRowGroup;
%if %mf_isBlank(&itemRowGroup) %then %do; %if %mf_isBlank(&itemRowGroup) %then %do;
/* extension was not found */ /* 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; %return;
%end; %end;
@@ -186,14 +188,17 @@
/* Populate typeDefName, if requested */ /* Populate typeDefName, if requested */
%if (not %mf_isBlank(&typeDefNameVar)) %then %do; %if (not %mf_isBlank(&typeDefNameVar)) %then %do;
%let &typeDefNameVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="name")); %let &typeDefNameVar = %mf_getvalue(
%if &mdebug=1 %then %put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar; &dsItems,value,filter=%quote(p1="items" and p2="name"));
%if &mdebug %then
%put DEBUG: &=typeDefNameVar &typeDefNameVar=&&&typeDefNameVar;
%end; %end;
/* Populate mediaType, if requested */ /* Populate mediaType, if requested */
%if (not %mf_isBlank(&mediaTypeVar)) %then %do; %if (not %mf_isBlank(&mediaTypeVar)) %then %do;
%let &mediaTypeVar = %mf_getvalue(&dsItems,value,filter=%quote(p1="items" and p2="mediaType")); %let &mediaTypeVar = %mf_getvalue(
%if &mdebug=1 %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar; &dsItems,value,filter=%quote(p1="items" and p2="mediaType"));
%if &mdebug %then %put DEBUG: &=mediaTypeVar &mediaTypeVar=&&&mediaTypeVar;
%end; %end;
/* Populate properties macro variable, if requested */ /* Populate properties macro variable, if requested */
@@ -210,7 +215,8 @@
/* Check for 1+ properties */ /* Check for 1+ properties */
%if ( %mf_nobs(&dsProperties) = 0 ) %then %do; %if ( %mf_nobs(&dsProperties) = 0 ) %then %do;
%let &propertiesVar = %str(); %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; %end;
%else %do; %else %do;
/* Properties potentially span multiple rows in the input table */ /* Properties potentially span multiple rows in the input table */
@@ -240,7 +246,8 @@
end; end;
run; run;
%if &mdebug=1 %then %put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar; %if &mdebug %then
%put DEBUG: &=propertiesVar &propertiesVar=&&&propertiesVar;
%end; %end;
%end; %end;