Publié le :
Administration CREATION_INTERNE

Extraction des répertoires de déploiement depuis les métadonnées SAS

Ce code est également disponible en : English
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Le programme se connecte à un serveur de métadonnées SAS© via les options système. Il utilise ensuite un DATA STEP avec les fonctions de métadonnées (`metadata_resolve`, `metadata_getnobj`, `metadata_getattr`, `metadata_getnasn`) pour rechercher tous les objets de type `Directory` qui sont des répertoires de déploiement. Pour chaque répertoire trouvé, il récupère les informations sur les fichiers déployés, les jobs de transformation associés et les propriétaires de ces jobs. Le résultat est stocké dans une table `work.deployfiles` et finalement affiché avec une `PROC PRINT`.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées dynamiquement en interrogeant le serveur de métadonnées SAS à l'aide des fonctions `metadata_*`. Aucune source de données externe n'est lue ou requise pour l'exécution.

1 Bloc de code
OPTIONS
Explication :
Ce bloc configure les paramètres de connexion au serveur de métadonnées SAS. Il définit le serveur, le port, l'utilisateur, le mot de passe, le référentiel et le protocole à utiliser. Ces options sont indispensables pour que les fonctions de métadonnées puissent communiquer avec le serveur.
Copié !
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metarepository=Foundation
7 metaprotocol=BRIDGE;
2 Bloc de code
DATA STEP Data
Explication :
Ce DATA STEP est le cœur du programme. Il interroge les métadonnées SAS pour trouver les répertoires de déploiement via une requête 'omsobj'. À l'aide de fonctions spécifiques aux métadonnées (`metadata_resolve`, `metadata_getnobj`, etc.), il navigue à travers les associations d'objets pour extraire les noms des applications, des répertoires, des fichiers, des jobs et de leurs propriétaires. Les informations collectées sont écrites dans la table `work.deployfiles`.
Copié !
1DATA work.deployfiles;
2 
3 /* declare and initialize variables */
4 
5 LENGTH app_name type dir_uri app_uri dir_name file_uri file_name owner 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 
10 keep app_name dir_name dir_path file_name owner job_name;
11 
12 dir_obj="omsobj:Directory?Directory[ @build_example_from_doc/SAS Help Center_ Bucket Binning and Weight-of-Evidence Computation.html contains '.'][DeployedComponents/ServerContext]";
13 dir_rc=metadata_resolve(dir_obj,type,id); /* Count number of directories with an associated server context. */
14
15 IF dir_rc > 0 THEN DO n=1 to dir_rc; /* if directories exist, pull data from them. */
16 
17 rc=metadata_getnobj(dir_obj,n,dir_uri);
18 rc=metadata_getnasn(dir_uri,"DeployedComponents",1,app_uri);
19 rc=metadata_getattr(app_uri,"Name",app_name);
20 rc=metadata_getattr(dir_uri,"Name",dir_name);
21 rc=metadata_getattr(dir_uri,"DirectoryName",dir_path);
22 
23 file_rc=metadata_getnasn(dir_uri,"Files",1,file_uri);
24 
25 IF file_rc > 0 THEN DO m=1 to file_rc; /* if files are associated with the directory, pull data on them. */
26 
27 rc=metadata_getnasn(dir_uri,"Files",m,file_uri);
28 rc=metadata_getattr(file_uri,"FileName",file_name);
29 trans_rc=metadata_getnasn(file_uri,"AssociatedTransformation",1,trans_uri);
30 
31 IF trans_rc > 0 THEN DO o=1 to trans_rc; /* if jobs are associated with the files, pull the responsible party of that job. */
32
33 rc=metadata_getnasn(file_uri,"AssociatedTransformation",o,trans_uri);
34 rc=metadata_getattr(trans_uri,"Name",job_name);
35 rc=metadata_getnasn(trans_uri,"ResponsibleParties",1,resp_uri);
36 rc=metadata_getattr(resp_uri,"Name",owner);
37 OUTPUT;
38 END;
39 ELSE put "INFO: No Associations Found";
40 END;
41 ELSE put "INFO: No Associated Files Found";
42 
43 END;
44 ELSE put "INFO: No Deployment Directories Found";
45RUN;
3 Bloc de code
PROC PRINT
Explication :
Cette procédure affiche le contenu de la table `work.deployfiles` qui a été créée dans l'étape de données précédente. Elle permet de visualiser la liste des répertoires de déploiement et les informations associées.
Copié !
1PROC PRINT DATA=deployfiles; 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.
Informations de Copyright : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0