Publicado el :
Macro CREATION_INTERNE

Recuperación de Objetos de Metadatos (mm_getobjects)

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro `mm_getobjects` ejecuta una consulta XML a través de `PROC METADATA` para extraer los objetos (por defecto `SASLibrary`) del repositorio de metadatos. Genera dinámicamente un mapa XML (SXLEMAP) para analizar la respuesta XML y convierte los atributos 'Id' y 'Name' en una tabla SAS© ordenada. Este código es típico de las interacciones con el servidor de metadatos de SAS© 9 y podría no devolver resultados en un entorno Viya puro sin un puente a SAS© 9.
Análisis de datos

Type : CREATION_INTERNE


Los datos provienen de una consulta del sistema (PROC METADATA) y se transforman a través de archivos temporales y el motor XML.

1 Bloque de código
PROC METADATA
Explicación :
Envía una consulta XML formateada (`GetMetadataObjects`) al servidor de metadatos para recuperar los objetos del tipo especificado por la macro-variable `&type`.
¡Copiado!
1filename response temp;
2/* get list of libraries */
3PROC METADATA in=
4 "<GetMetadataObjects><Reposid>$METAREPOSITORY</Reposid>
5 <Type>&type</Type><Objects/><NS>SAS</NS>
6 <Flags>0</Flags><Options/></GetMetadataObjects>"
7 out=response;
8RUN;
2 Bloque de código
DATA STEP
Explicación :
Paso de depuración que escribe la respuesta XML bruta recibida del servidor de metadatos en el registro de SAS.
¡Copiado!
1DATA _null_;
2 INFILE response lrecl=1048576;
3 INPUT;
4 put _infile_;
5RUN;
3 Bloque de código
DATA STEP
Explicación :
Genera dinámicamente un archivo SXLEMAP (Mapa XML) para instruir al motor XML de SAS sobre cómo leer la respuesta jerárquica y aplanarla en las columnas 'id' y 'name'.
¡Copiado!
1filename sxlemap temp;
2DATA _null_;
3 file sxlemap;
4 put '<SXLEMAP version="1.2" name="SASObjects"><TABLE name="SASObjects">';
5 put "<TABLE-PATH syntax='XPath'>/GetMetadataObjects/Objects/&type";
6 put "</TABLE-PATH>";
7 /* ... (création du mapping XML) ... */
8 put '</COLUMN></TABLE></SXLEMAP>';
9RUN;
4 Bloque de código
PROC SORT Data
Explicación :
Utiliza el motor `LIBNAME XML` con el mapa generado para leer el archivo temporal como una tabla de SAS, ordena los datos por nombre y los guarda en la tabla de salida especificada por `&outds`.
¡Copiado!
1LIBNAME _XML_ xml xmlfileref=response xmlmap=sxlemap;
2 
3PROC SORT DATA= _XML_.SASObjects out=&outds;
4 BY name;
5RUN;
5 Bloque de código
Limpieza
Explicación :
Elimina las referencias a los archivos temporales y a la biblioteca XML para dejar el entorno limpio.
¡Copiado!
1filename sxlemap clear;
2filename response clear;
3LIBNAME _XML_ clear;
4 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Allan Bowe