Publicado el :
Général EXTERNE

Extracción de rutas de origen de Jobs desde 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.
Este programa se conecta a un servidor de metadatos de SAS© 9 (a través de las opciones `metaserver`, `metaport`, etc.) para inventariar todos los objetos de tipo 'Job'. Para cada Job encontrado, navega por las asociaciones de metadatos para identificar el archivo de código fuente asociado ('SourceCode') y su directorio padre ('Directories'), con el fin de reconstruir la ruta completa del archivo.
Análisis de datos

Type : EXTERNE


Los datos provienen del SAS Metadata Server (SAS 9). El script utiliza las funciones de interfaz de metadatos (`metadata_resolve`, `metadata_getnobj`, `metadata_getattr`, `metadata_getnasn`) para extraer la información.

1 Bloque de código
OPTIONS
Explicación :
Configuración de la conexión al servidor de metadatos de SAS 9. Se especifican las credenciales (aquí 'sasadm') y la dirección del servidor para permitir la consulta.
¡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 de datos principal que realiza la extracción. Inicializa una búsqueda de objetos 'Job' (Nota: la cadena de búsqueda `omsobj:Job?...` parece contener un artefacto de inyección de archivo en el prompt original, probablemente reemplazando ` @Id`). Luego, itera sobre cada trabajo encontrado para recuperar su nombre, el objeto de archivo fuente vinculado y el directorio de ese archivo, concatenando todo para formar la ruta `source`.
¡Copiado!
1DATA SOURCE;
2 
3 keep job_name SOURCE; /* Retain only the job name and it's source code full path. */
4 
5/* Initialize variables. */
6 
7 LENGTH type id job_uri job_name file_uri file_name dir_uri path $ 50;
8 call missing (of _character_);
9 
10 obj="omsobj:Job? @code_sas_json/_render_idcolumn.json contains '.'"; /* Search critera for Jobs. */
11 
12 job_count=metadata_resolve(obj,type,id); /* Count all jobs. Only run loop if jobs exist. */
13 
14 IF job_count > 0 THEN DO i=1 to job_count; /* Loop: For each job found, get attributes and associations. */
15 rc=metadata_getnobj(obj,i,job_uri);
16 rc=metadata_getattr(job_uri,"Name",job_name); /* Get job name. */
17 rc=metadata_getnasn(job_uri,"SourceCode",1,file_uri); /* Get file Metadata object id. */
18 rc=metadata_getattr(file_uri,"Name",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 jobs 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.