Publié le :
Macro CREATION_INTERNE

Récupération d'Objets Métadonnées (mm_getobjects)

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cette macro `mm_getobjects` exécute une requête XML via `PROC METADATA` pour extraire les objets (par défaut `SASLibrary`) du référentiel de métadonnées. Elle génère dynamiquement une carte XML (SXLEMAP) pour parser la réponse XML et convertit les attributs 'Id' et 'Name' en une table SAS© triée. Ce code est typique des interactions avec le serveur de métadonnées SAS© 9 et peut ne pas retourner de résultats dans un environnement Viya pur sans pont vers SAS© 9.
Analyse des données

Type : CREATION_INTERNE


Les données proviennent d'une interrogation système (PROC METADATA) et sont transformées via des fichiers temporaires et le moteur XML.

1 Bloc de code
PROC METADATA
Explication :
Envoie une requête XML formatée (`GetMetadataObjects`) au serveur de métadonnées pour récupérer les objets du type spécifié par la macro-variable `&type`.
Copié !
1filename response temp;
2/* get list of libraries */
3PROC METADATA in=
4 "<GetMetadataObjects><Reposid>$METAREPOSITORY</Reposid>
5 <Type>&type</Type><Objects/><NS>SAS</NS>
6 <Flags>0</Flags><Options/></GetMetadataObjects>"
7 out=response;
8RUN;
2 Bloc de code
DATA STEP
Explication :
Étape de débogage écrivant la réponse XML brute reçue du serveur de métadonnées dans le journal SAS.
Copié !
1DATA _null_;
2 INFILE response lrecl=1048576;
3 INPUT;
4 put _infile_;
5RUN;
3 Bloc de code
DATA STEP
Explication :
Génère dynamiquement un fichier SXLEMAP (XML Map) pour instruire le moteur XML SAS sur la façon de lire la réponse hiérarchique et de l'aplatir en colonnes 'id' et 'name'.
Copié !
1filename sxlemap temp;
2DATA _null_;
3 file sxlemap;
4 put '<SXLEMAP version="1.2" name="SASObjects"><TABLE name="SASObjects">';
5 put "<TABLE-PATH syntax='XPath'>/GetMetadataObjects/Objects/&type";
6 put "</TABLE-PATH>";
7 /* ... (création du mapping XML) ... */
8 put '</COLUMN></TABLE></SXLEMAP>';
9RUN;
4 Bloc de code
PROC SORT Data
Explication :
Utilise le moteur `LIBNAME XML` avec la carte générée pour lire le fichier temporaire comme une table SAS, trie les données par nom et les sauvegarde dans la table de sortie spécifiée par `&outds`.
Copié !
1LIBNAME _XML_ xml xmlfileref=response xmlmap=sxlemap;
2 
3PROC SORT DATA= _XML_.SASObjects out=&outds;
4 BY name;
5RUN;
5 Bloc de code
Nettoyage
Explication :
Supprime les références aux fichiers temporaires et à la bibliothèque XML pour laisser l'environnement propre.
Copié !
1filename sxlemap clear;
2filename response clear;
3LIBNAME _XML_ clear;
4 
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 : Allan Bowe