Die Daten stammen aus einer Systemabfrage des Metadatenservers (PROC METADATA) und werden über temporäre Dateien verarbeitet, die vom Skript generiert werden.
1 Codeblock
PROC METADATA
Erklärung : Sendet eine formatierte XML-Anfrage an den Metadatenserver, um die Liste der verfügbaren Objekttypen abzurufen. Die Antwort wird im temporären Fileref 'response' gespeichert.
Kopiert!
filename response temp;
/* get list of libraries */
proc metadata in=
'<GetTypes>
<Types/>
<NS>SAS</NS>
<!-- specify the OMI_SUCCINCT flag -->
<Flags>2048</Flags>
<Options>
<!-- include <REPOSID> XML element and a repository identifier -->
<Reposid>$METAREPOSITORY</Reposid>
</Options>
</GetTypes>'
out=response;
run;
1
filename response temp;
2
/* get list of libraries */
3
PROC METADATA in=
4
'<GetTypes>
5
<Types/>
6
<NS>SAS</NS>
7
<!-- specify the OMI_SUCCINCT flag -->
8
<Flags>2048</Flags>
9
<Options>
10
<!-- include <REPOSID> XML element and a repository identifier -->
11
<Reposid>$METAREPOSITORY</Reposid>
12
</Options>
13
</GetTypes>'
14
out=response;
15
RUN;
2 Codeblock
DATA STEP
Erklärung : Schreibt den Inhalt der rohen XML-Antwort zu Debugging-Zwecken in das SAS-Protokoll.
Kopiert!
data _null_;
infile response lrecl=1048576;
input;
put _infile_;
run;
1
DATA _null_;
2
INFILE response lrecl=1048576;
3
INPUT;
4
put _infile_;
5
RUN;
3 Codeblock
DATA STEP
Erklärung : Erstellt dynamisch eine 'XML Map'-Datei (sxlemap), die definiert, wie der von PROC METADATA zurückgegebene XML-Stream geparst wird, um eine tabellarische Struktur zu extrahieren.
Kopiert!
filename sxlemap temp;
data _null_;
file sxlemap;
put '<SXLEMAP version="1.2" name="SASTypes"><TABLE name="SASTypes">';
put '<TABLE-PATH syntax="XPath">//GetTypes/Types/Type</TABLE-PATH>';
put '<COLUMN name="ID"><LENGTH>64</LENGTH>';
put '<PATH syntax="XPath">//GetTypes/Types/Type/ @Id</PATH></COLUMN>';
/* ... (autres colonnes) ... */
put '</TABLE></SXLEMAP>';
run;
1
filename sxlemap temp;
2
DATA _null_;
3
file sxlemap;
4
put '<SXLEMAP version="1.2" name="SASTypes"><TABLE name="SASTypes">';
5
put '<TABLE-PATH syntax="XPath">//GetTypes/Types/Type</TABLE-PATH>';
6
put '<COLUMN name="ID"><LENGTH>64</LENGTH>';
7
put '<PATH syntax="XPath">//GetTypes/Types/Type/ @Id</PATH></COLUMN>';
8
/* ... (autres colonnes) ... */
9
put '</TABLE></SXLEMAP>';
10
RUN;
4 Codeblock
PROC SORT Data
Erklärung : Verwendet die LIBNAME XML Engine, um die Datei 'response' unter Anwendung der 'sxlemap' zu lesen und sortiert dann die extrahierten Daten nach der Spalte 'ID', um die endgültige Ausgabetabelle zu erstellen.
Kopiert!
libname _XML_ xml xmlfileref=response xmlmap=sxlemap;
/* sort the response by library name */
proc sort data=_XML_.sastypes out=&outds;
by id;
run;
1
LIBNAME _XML_ xml xmlfileref=response xmlmap=sxlemap;
2
/* sort the response by library name */
3
PROC SORTDATA=_XML_.sastypes out=&outds;
4
BY id;
5
RUN;
5 Codeblock
Nettoyage
Erklärung : Gibt die Verweise auf temporäre Dateien und die XML-Bibliothek frei.
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
« Dieser Code ist untrennbar mit der Open Metadata Architecture (OMA) verbunden. In SAS Viya wird dieses Typ-Konzept durch Ressourcen-Definitionen ersetzt, die von verschiedenen Microservices verwaltet werden. Daher kann dieser Code nicht zur Untersuchung nativer Viya-Infrastrukturen verwendet werden, es sei denn, Sie arbeiten in einer hybriden Umgebung, in der Viya mit einem entfernten SAS 9.4 Server kommuniziert. »
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.