mirror of
https://github.com/sasjs/core.git
synced 2026-01-19 14:30:05 +00:00
feat(*): recreate library as scoped package
This commit is contained in:
117
meta/mm_getrepos.sas
Normal file
117
meta/mm_getrepos.sas
Normal file
@@ -0,0 +1,117 @@
|
||||
/**
|
||||
@file
|
||||
@brief Creates a dataset with all available repositories
|
||||
|
||||
@param outds= the dataset to create that contains the list of repos
|
||||
|
||||
@returns outds dataset containing all repositories
|
||||
|
||||
@warning The following filenames are created and then de-assigned:
|
||||
|
||||
filename sxlemap clear;
|
||||
filename response clear;
|
||||
libname _XML_ clear;
|
||||
|
||||
@version 9.2
|
||||
@author Allan Bowe
|
||||
|
||||
**/
|
||||
|
||||
%macro mm_getrepos(
|
||||
outds=work.mm_getrepos
|
||||
)/*/STORE SOURCE*/;
|
||||
|
||||
|
||||
* use a temporary fileref to hold the response;
|
||||
filename response temp;
|
||||
/* get list of libraries */
|
||||
proc metadata in=
|
||||
"<GetRepositories><Repositories/><Flags>1</Flags><Options/></GetRepositories>"
|
||||
out=response;
|
||||
run;
|
||||
|
||||
/* write the response to the log for debugging */
|
||||
/*
|
||||
data _null_;
|
||||
infile response lrecl=1048576;
|
||||
input;
|
||||
put _infile_;
|
||||
run;
|
||||
*/
|
||||
|
||||
/* create an XML map to read the response */
|
||||
filename sxlemap temp;
|
||||
data _null_;
|
||||
file sxlemap;
|
||||
put '<SXLEMAP version="1.2" name="SASRepos"><TABLE name="SASRepos">';
|
||||
put "<TABLE-PATH syntax='XPath'>/GetRepositories/Repositories/Repository</TABLE-PATH>";
|
||||
put '<COLUMN name="id">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Id</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="name">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Name</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="desc">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Desc</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="DefaultNS">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@DefaultNS</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="RepositoryType">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@RepositoryType</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>20</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="RepositoryFormat">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@RepositoryFormat</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>10</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="Access">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Access</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="CurrentAccess">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@CurrentAccess</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="PauseState">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@PauseState</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="Path">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Path</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>256</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="Engine">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Engine</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>8</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="Options">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Options</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>32</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="MetadataCreated">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@MetadataCreated</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>24</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '<COLUMN name="MetadataUpdated">';
|
||||
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@MetadataUpdated</PATH>";
|
||||
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>24</LENGTH>";
|
||||
put '</COLUMN>';
|
||||
put '</TABLE></SXLEMAP>';
|
||||
run;
|
||||
libname _XML_ xml xmlfileref=response xmlmap=sxlemap;
|
||||
|
||||
proc sort data= _XML_.SASRepos out=&outds;
|
||||
by name;
|
||||
run;
|
||||
|
||||
/* clear references */
|
||||
filename sxlemap clear;
|
||||
filename response clear;
|
||||
libname _XML_ clear;
|
||||
|
||||
%mend;
|
||||
Reference in New Issue
Block a user