Publicado el :
Administración CREATION_INTERNE

Extracción de Directorios de Despliegue de Metadatos

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El programa establece una conexión con el servidor de metadatos SAS© utilizando las opciones 'metaserver', 'metaport', 'metauser', 'metapass', 'metarepository' y 'metaprotocol'. Luego inicializa un paso DATA para consultar los metadatos. El script utiliza las funciones 'metadata_resolve', 'metadata_getnobj', 'metadata_getnasn' y 'metadata_getattr' para identificar objetos 'Directory' que tienen un 'ServerContext' asociado (designando directorios de despliegue). Para cada directorio encontrado, recupera su nombre, ruta, aplicaciones asociadas, archivos contenidos y, si hay transformaciones (jobs) vinculadas a los archivos, el nombre del job y el responsable. La información recopilada se almacena en la tabla 'work.deployfiles'. Finalmente, se utiliza PROC PRINT para mostrar el contenido de esta tabla.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan dinámicamente consultando el entorno de metadatos SAS a través de las funciones de la interfaz de metadatos de SAS. Ninguna fuente de datos externa (archivos, bases de datos, etc.) es leída directamente por el script.

1 Bloque de código
OPTIONS
Explicación :
Este bloque configura la conexión al servidor de metadatos SAS, especificando la dirección, el puerto, las credenciales, el repositorio y el protocolo. Estas opciones son cruciales para permitir que el script interactúe con el entorno de metadatos.
¡Copiado!
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metarepository=Foundation
7 metaprotocol=BRIDGE;
2 Bloque de código
DATA STEP Data
Explicación :
Este paso DATA se conecta a los metadatos de SAS para extraer información sobre los directorios de despliegue. Utiliza las funciones de la interfaz de metadatos de SAS para resolver los objetos de directorio, recuperar sus atributos (nombre, ruta) así como las aplicaciones, archivos y jobs asociados. Las variables se declaran y mantienen para formar un nuevo conjunto de datos 'work.deployfiles' que contiene los detalles de los directorios, archivos y propietarios de jobs.
¡Copiado!
1DATA work.deployfiles;
2 
3 /* declare and initialize variables */
4 LENGTH app_name type dir_uri app_uri dir_name file_uri file_name owner
5 trans_uri resp_uri job_name $ 50 id $ 17 dir_path $ 255;
6 call missing(of _character_);
7 
8 /* variables to store to table */
9 keep app_name dir_name dir_path file_name owner job_name;
10 
11 /* Define a query to find deployment directories (directory objects with an */
12 /* associated server context). */
13 dir_obj="omsobj:Directory?Directory[ @code_sas_json/downside_frequency_test.json contains '.'][DeployedComponents/ServerContext]";
14 /* Count number of directories with an associated server context. */
15 dir_rc=metadata_resolve(dir_obj,type,id);
16 
17 /* if directories exist, pull data from them. */
18 IF dir_rc > 0 THEN DO n=1 to dir_rc;
19 
20 rc=metadata_getnobj(dir_obj,n,dir_uri);
21 rc=metadata_getnasn(dir_uri,"DeployedComponents",1,app_uri);
22 rc=metadata_getattr(app_uri,"Name",app_name);
23 rc=metadata_getattr(dir_uri,"Name",dir_name);
24 rc=metadata_getattr(dir_uri,"DirectoryName",dir_path);
25 
26 file_rc=metadata_getnasn(dir_uri,"Files",1,file_uri);
27 
28 /* if files are associated with the directory, pull data on them. */
29 IF file_rc > 0 THEN DO m=1 to file_rc;
30 
31 rc=metadata_getnasn(dir_uri,"Files",m,file_uri);
32 rc=metadata_getattr(file_uri,"FileName",file_name);
33 trans_rc=metadata_getnasn(file_uri,"AssociatedTransformation",1,trans_uri);
34 
35 /* if jobs are associated with the files, pull the responsible */
36 /* party of that job. */
37 IF trans_rc > 0 THEN DO o=1 to trans_rc;
38 
39 rc=metadata_getnasn(file_uri,"AssociatedTransformation",o,trans_uri);
40 rc=metadata_getattr(trans_uri,"Name",job_name);
41 rc=metadata_getnasn(trans_uri,"ResponsibleParties",1,resp_uri);
42 rc=metadata_getattr(resp_uri,"Name",owner);
43 OUTPUT;
44 END;
45 ELSE put "INFO: No Associations Found";
46 END;
47 ELSE put "INFO: No Associated Files Found";
48 
49 END;
50 ELSE put "INFO: No Deployment Directories Found";
51RUN;
3 Bloque de código
PROC PRINT
Explicación :
Este procedimiento genera un informe legible mostrando el contenido de la tabla 'work.deployfiles' que fue creada en el paso DATA anterior. Permite visualizar los directorios de despliegue y su información extraída de los metadatos.
¡Copiado!
1PROC PRINT DATA=deployfiles; RUN;
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 : This program pulls a list of Deployment Directories to Metadata. Author: Greg Wootton Date: 09DEC2016