Publicado el :
Administración CREACION_INTERNA

Extracción de rutas de origen de Stored Processes (Metadatos SAS 9)

Este código también está disponible en: English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
Este programa se conecta a un servidor de metadatos SAS© 9 a través de las opciones META*. Utiliza las funciones de interfaz de metadatos (metadata_resolve, metadata_getattr, etc.) para buscar todos los 'Stored Processes' definidos con un código fuente externo (archivo físico). Luego recupera el nombre del proceso, el nombre del archivo y el directorio asociado para construir y almacenar la ruta completa en una tabla de salida. Este código es específico de la arquitectura SAS© 9 y no es nativo de la arquitectura SAS© Viya (que ya no utiliza este tipo de servidor de metadatos), excepto en contextos de migración o puente.
Análisis de datos

Type : CREACION_INTERNA


Los datos se generan dinámicamente mediante la consulta al servidor de metadatos a través de las funciones del sistema SAS (metadata_*).

1 Bloque de código
OPTIONS
Explicación :
Configuración de la conexión al servidor de metadatos SAS 9 (dirección, puerto, identificadores, repositorio).
¡Copiado!
1options metaserver="meta.demo.sas.com"
2 metaport=8561
3 metauser="sasadm @saspw"
4 metapass="password"
5 metarepository=Foundation
6 metaprotocol=bridge;
2 Bloque de código
DATA STEP Data
Explicación :
Paso DATA principal que consulta los metadatos para encontrar objetos 'StoredProcess' con un código fuente de tipo 'File'. Itera sobre los resultados para extraer los atributos de nombre y ruta de acceso, concatenando el directorio y el nombre del archivo.
¡Copiado!
1DATA SOURCE;
2 
3 keep stp_name SOURCE; /* Retain only the stored process name and it's source code full path. */
4 
5/* Initialize variables. */
6 
7 LENGTH type id stp_uri stp_name file_uri file_name dir_uri path $ 50;
8 call missing (of _character_);
9 
10 obj="omsobj:ClassifierMap?ClassifierMap[ @PublicType='StoredProcess'][SourceCode/File]"; /* Search critera for Stored Processes that have an external file source. */
11 
12 stp_count=metadata_resolve(obj,type,id); /* Count all stored processes that meet our criteria. Only run loop if at least one exists. */
13 
14 IF stp_count > 0 THEN DO i=1 to stp_count; /* Loop: For each stp found, get attributes and associations. */
15 rc=metadata_getnobj(obj,i,stp_uri);
16 rc=metadata_getattr(stp_uri,"Name",stp_name); /* Get stp name. */
17 rc=metadata_getnasn(stp_uri,"SourceCode",1,file_uri); /* Get file Metadata object id. */
18 rc=metadata_getattr(file_uri,"FileName",file_name); /* Get file name. */
19 rc=metadata_getnasn(file_uri,"Directories",1,dir_uri); /* Get directory Metadata object id. */
20 rc=metadata_getattr(dir_uri,"DirectoryName",path); /* Get path to directory. */
21 SOURCE=catx('/',path,file_name); /* combine directory path and file name to create full path to file.*/
22 OUTPUT;
23 END; /* End loop. */
24 ELSE put "WARN: No Stored Processes with external source code files found in Metadata."; /* If no jobs are found, write a message to the log. */
25RUN;
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 : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.