/**
@file
@brief Creates a dataset with all available repositories
@param [out] outds= (work.mm_getrepos)
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=
"1"
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 '';
put "/GetRepositories/Repositories/Repository";
put "";
put '';
put "/GetRepositories/Repositories/Repository/@Id";
put "";
put "characterstring200";
put '';
put '';
put "/GetRepositories/Repositories/Repository/@Name";
put "";
put "characterstring200";
put '';
put '';
put "/GetRepositories/Repositories/Repository/@Desc";
put "";
put "characterstring200";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@DefaultNS";
put "characterstring200";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@RepositoryType";
put "characterstring20";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@RepositoryFormat";
put "characterstring10";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@Access";
put "characterstring16";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@CurrentAccess";
put "characterstring16";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@PauseState";
put "characterstring16";
put '';
put '';
put "/GetRepositories/Repositories/Repository/@Path";
put "";
put "characterstring256";
put '';
put '';
put "/GetRepositories/Repositories/Repository/@Engine";
put "";
put "characterstring8";
put '';
put '';
put "/GetRepositories/Repositories/Repository/@Options";
put "";
put "characterstring32";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@MetadataCreated";
put "characterstring24";
put '';
put '';
put "";
put "/GetRepositories/Repositories/Repository/@MetadataUpdated";
put "characterstring24";
put '';
put '
';
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 mm_getrepos;