Macros for SAS Application Developers
https://github.com/sasjs/core
Loading...
Searching...
No Matches
mm_getrepos.sas
Go to the documentation of this file.
1
/**
2
@file
3
@brief Creates a dataset with all available repositories
4
5
@param [out] outds= (work.mm_getrepos)
6
The dataset to create that contains the list of repos
7
8
@returns outds dataset containing all repositories
9
10
@note The following filenames are created and then de-assigned:
11
12
filename sxlemap clear;
13
filename response clear;
14
libname _XML_ clear;
15
16
@version 9.2
17
@author Allan Bowe
18
19
**/
20
21
%macro mm_getrepos(
22
outds=work.mm_getrepos
23
)
/*/STORE SOURCE*/
;
24
25
/* use a temporary fileref to hold the response */
26
filename response temp;
27
/* get list of libraries */
28
proc metadata in=
29
"<GetRepositories><Repositories/><Flags>1</Flags><Options/></GetRepositories>"
30
out=response;
31
run;
32
33
/* write the response to the log for debugging */
34
/*
35
data _null_;
36
infile response lrecl=1048576;
37
input;
38
put _infile_;
39
run;
40
*/
41
42
/* create an XML map to read the response */
43
filename sxlemap temp;
44
data _null_;
45
file sxlemap;
46
put
'<SXLEMAP version="1.2" name="SASRepos"><TABLE name="SASRepos">'
;
47
put
"<TABLE-PATH syntax='XPath'>/GetRepositories/Repositories/Repository"
;
48
put
"</TABLE-PATH>"
;
49
put
'<COLUMN name="id">'
;
50
put
"<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Id"
;
51
put
"</PATH>"
;
52
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>"
;
53
put
'</COLUMN>'
;
54
put
'<COLUMN name="name">'
;
55
put
"<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Name"
;
56
put
"</PATH>"
;
57
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>"
;
58
put
'</COLUMN>'
;
59
put
'<COLUMN name="desc">'
;
60
put
"<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Desc"
;
61
put
"</PATH>"
;
62
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>"
;
63
put
'</COLUMN>'
;
64
put
'<COLUMN name="DefaultNS">'
;
65
put
"<PATH syntax='XPath'>"
;
66
put
"/GetRepositories/Repositories/Repository/@DefaultNS</PATH>"
;
67
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>"
;
68
put
'</COLUMN>'
;
69
put
'<COLUMN name="RepositoryType">'
;
70
put
"<PATH syntax='XPath'>"
;
71
put
"/GetRepositories/Repositories/Repository/@RepositoryType</PATH>"
;
72
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>20</LENGTH>"
;
73
put
'</COLUMN>'
;
74
put
'<COLUMN name="RepositoryFormat">'
;
75
put
"<PATH syntax='XPath'>"
;
76
put
"/GetRepositories/Repositories/Repository/@RepositoryFormat</PATH>"
;
77
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>10</LENGTH>"
;
78
put
'</COLUMN>'
;
79
put
'<COLUMN name="Access">'
;
80
put
"<PATH syntax='XPath'>"
;
81
put
"/GetRepositories/Repositories/Repository/@Access</PATH>"
;
82
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>"
;
83
put
'</COLUMN>'
;
84
put
'<COLUMN name="CurrentAccess">'
;
85
put
"<PATH syntax='XPath'>"
;
86
put
"/GetRepositories/Repositories/Repository/@CurrentAccess</PATH>"
;
87
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>"
;
88
put
'</COLUMN>'
;
89
put
'<COLUMN name="PauseState">'
;
90
put
"<PATH syntax='XPath'>"
;
91
put
"/GetRepositories/Repositories/Repository/@PauseState</PATH>"
;
92
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>"
;
93
put
'</COLUMN>'
;
94
put
'<COLUMN name="Path">'
;
95
put
"<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Path"
;
96
put
"</PATH>"
;
97
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>256</LENGTH>"
;
98
put
'</COLUMN>'
;
99
put
'<COLUMN name="Engine">'
;
100
put
"<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Engine"
;
101
put
"</PATH>"
;
102
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>8</LENGTH>"
;
103
put
'</COLUMN>'
;
104
put
'<COLUMN name="Options">'
;
105
put
"<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Options"
;
106
put
"</PATH>"
;
107
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>32</LENGTH>"
;
108
put
'</COLUMN>'
;
109
put
'<COLUMN name="MetadataCreated">'
;
110
put
"<PATH syntax='XPath'>"
;
111
put
"/GetRepositories/Repositories/Repository/@MetadataCreated</PATH>"
;
112
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>24</LENGTH>"
;
113
put
'</COLUMN>'
;
114
put
'<COLUMN name="MetadataUpdated">'
;
115
put
"<PATH syntax='XPath'>"
;
116
put
"/GetRepositories/Repositories/Repository/@MetadataUpdated</PATH>"
;
117
put
"<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>24</LENGTH>"
;
118
put
'</COLUMN>'
;
119
put
'</TABLE></SXLEMAP>'
;
120
run;
121
libname _XML_ xml xmlfileref=response xmlmap=sxlemap;
122
123
proc sort data= _XML_.SASRepos out=&outds;
124
by name;
125
run;
126
127
/* clear references */
128
filename sxlemap clear;
129
filename response clear;
130
libname _XML_ clear;
131
132
%mend mm_getrepos;
meta
mm_getrepos.sas
Generated by
1.9.8
For more information visit the
Macro Core library
.