Explication : Boucle principale qui interroge les métadonnées pour chaque Stored Process, extrait les informations et reconstruit le chemin du dossier via une boucle 'do while' sur l'arbre parent.
Copié !
data work.stp_paths;
length type $ 13 id $ 17 stp_uri $ 38 tree_uri partree_uri $ 29 path $ 200 folder_name stp_name $ 100 stp_create stp_update $ 18;
call missing(type,id,stp_uri,tree_uri,partree_uri,path,folder_name,stp_name,stp_create,stp_update);
obj="omsobj:ClassifierMap? @PublicType='StoredProcess'";
stp_count=metadata_resolve(obj,type,id);
if stp_count > 0 then do n=1 to stp_count;
rc=metadata_getnobj(obj,n,stp_uri);
rc=metadata_getattr(stp_uri,"Name",stp_name);
rc=metadata_getattr(stp_uri,"MetadataCreated",stp_create);
rc=metadata_getattr(stp_uri,"MetadataUpdated",stp_update);
stp_create_num=input(stp_create,DATETIME18.);
stp_update_num=input(stp_update,DATETIME18.);
rc=metadata_getnasn(stp_uri,"Trees",1,tree_uri);
rc=metadata_getattr(tree_uri,"Name",folder_name);
path=catx("\",folder_name);
parent_rc=metadata_getnasn(tree_uri,"ParentTree",1,partree_uri);
do while (parent_rc > 0);
rc=metadata_getattr(partree_uri,"Name",folder_name);
path=catx("\",folder_name,path);
parent_rc=metadata_getnasn(partree_uri,"ParentTree",1,partree_uri);
end;
output;
end;
else put "No stored processes defined in Metadata.";
format stp_create_num stp_update_num datetime18.;
run;
else put "No stored processes defined in Metadata.";
29
FORMAT stp_create_num stp_update_num datetime18.;
30
RUN;
3 Bloc de code
PROC SQL Data
Explication : Création de la table finale 'stp_paths_sorted' en triant les résultats par date de mise à jour et chemin.
Copié !
PROC SQL;
CREATE TABLE work.stp_paths_sorted AS
SELECT path,stp_name,stp_create_num,stp_update_num
FROM work.stp_paths ORDER BY stp_update_num ,path;
quit;
FROM work.stp_paths ORDER BY stp_update_num ,path;
5
QUIT;
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 : Author: Greg Wootton Date: 07FEB2017
« Dans un environnement SAS 9 mature, les Stored Processes (STP) représentent une part critique de la logique métier. Cependant, leur gestion devient complexe à mesure que l'arborescence des dossiers se densifie. Ce script utilise une approche récursive pour transformer des URI de métadonnées abstraits en un inventaire opérationnel lisible.
Ce script est un excellent point de départ pour un projet de nettoyage. En couplant ces résultats avec les logs d'exécution du serveur (Stored Process Server), vous pouvez identifier les "STP orphelins" qui consomment de l'espace en métadonnées mais ne sont plus jamais appelés par les utilisateurs. »
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.