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é !
filename response temp;
/* get list of libraries */
proc metadata in=
"<GetMetadataObjects><Reposid>$METAREPOSITORY</Reposid>
<Type>&type</Type><Objects/><NS>SAS</NS>
<Flags>0</Flags><Options/></GetMetadataObjects>"
out=response;
run;
Explication : Étape de débogage écrivant la réponse XML brute reçue du serveur de métadonnées dans le journal SAS.
Copié !
data _null_;
infile response lrecl=1048576;
input;
put _infile_;
run;
1
DATA _null_;
2
INFILE response lrecl=1048576;
3
INPUT;
4
put _infile_;
5
RUN;
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é !
filename sxlemap temp;
data _null_;
file sxlemap;
put '<SXLEMAP version="1.2" name="SASObjects"><TABLE name="SASObjects">';
put "<TABLE-PATH syntax='XPath'>/GetMetadataObjects/Objects/&type";
put "</TABLE-PATH>";
/* ... (création du mapping XML) ... */
put '</COLUMN></TABLE></SXLEMAP>';
run;
1
filename sxlemap temp;
2
DATA _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>';
9
RUN;
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é !
libname _XML_ xml xmlfileref=response xmlmap=sxlemap;
proc sort data= _XML_.SASObjects out=&outds;
by name;
run;
1
LIBNAME _XML_ xml xmlfileref=response xmlmap=sxlemap;
2
3
PROC SORTDATA= _XML_.SASObjects out=&outds;
4
BY name;
5
RUN;
5 Bloc de code
Nettoyage
Explication : Supprime les références aux fichiers temporaires et à la bibliothèque XML pour laisser l'environnement propre.
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.
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.