Les données proviennent du SAS Metadata Server (SAS 9). Le script utilise les fonctions d'interface de métadonnées (`metadata_resolve`, `metadata_getnobj`, `metadata_getattr`, `metadata_getnasn`) pour extraire les informations.
1 Bloc de code
OPTIONS
Explication : Configuration de la connexion vers le serveur de métadonnées SAS 9. Les identifiants (ici 'sasadm') et l'adresse du serveur sont spécifiés pour permettre l'interrogation.
Explication : Étape Data principale qui effectue l'extraction. Elle initialise une recherche sur les objets 'Job' (Note: la chaîne de recherche `omsobj:Job?...` semble contenir un artefact d'injection de fichier dans le prompt original, remplaçant probablement `@Id`). Elle boucle ensuite sur chaque job trouvé pour récupérer son nom, l'objet fichier source lié, puis le répertoire de ce fichier, concaténant le tout pour former le chemin `source`.
Copié !
data source;
keep job_name source; /* Retain only the job name and it's source code full path. */
/* Initialize variables. */
length type id job_uri job_name file_uri file_name dir_uri path $ 50;
call missing (of _character_);
obj="omsobj:Job? @code_sas_json/_render_idcolumn.json contains '.'"; /* Search critera for Jobs. */
job_count=metadata_resolve(obj,type,id); /* Count all jobs. Only run loop if jobs exist. */
if job_count > 0 then do i=1 to job_count; /* Loop: For each job found, get attributes and associations. */
rc=metadata_getnobj(obj,i,job_uri);
rc=metadata_getattr(job_uri,"Name",job_name); /* Get job name. */
rc=metadata_getnasn(job_uri,"SourceCode",1,file_uri); /* Get file Metadata object id. */
rc=metadata_getattr(file_uri,"Name",file_name); /* Get file name. */
rc=metadata_getnasn(file_uri,"Directories",1,dir_uri); /* Get directory Metadata object id. */
rc=metadata_getattr(dir_uri,"DirectoryName",path); /* Get path to directory. */
source=catx('/',path,file_name); /* combine directory path and file name to create full path to file.*/
output;
end; /* End loop. */
else put "WARN: No jobs found in Metadata."; /* If no jobs are found, write a message to the log. */
run;
1
DATASOURCE;
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 THENDO 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. */
25
RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
« L'extraction programmatique des chemins sources des Jobs SAS Data Integration est une tâche critique pour tout administrateur souhaitant cartographier son patrimoine applicatif ou préparer une migration. Ce script illustre parfaitement la puissance des fonctions d'interface de métadonnées pour "recoller" les morceaux entre le monde logique (le Job en métadonnées) et le monde physique (le fichier .sas sur le serveur). »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.