Le script interagit avec le serveur de métadonnées SAS pour la création et la vérification du dossier. Il utilise les options système `metaserver` et `metaport` pour la connexion. De plus, il exécute une commande système externe (`sas-make-folder`) via l'instruction `pipe`, ce qui implique une interaction avec l'environnement d'exploitation sous-jacent. Il ne traite pas de fichiers de données externes traditionnels (CSV, Excel, etc.) qui ne seraient pas gérés par le script lui-même ou les bibliothèques SASHELP.
1 Bloc de code
MACRO CALL / DATA STEP
Explication : Ce bloc initialise des macro-variables locales (`host`, `port`, `path`, `connx_string`, `msg`). Il récupère l'hôte et le port du serveur de métadonnées SAS via la fonction `getoption`. Il construit ensuite la chaîne de connexion (`connx_string`) incluant les identifiants fournis, et un chemin (`path`) vers un outil externe `sas-make-folder` (la macro `%mf_loc` est une dépendance externe). Une étape `DATA _NULL_` est utilisée avec l'instruction `infile ... pipe` pour exécuter la commande externe `sas-make-folder` avec les paramètres définis, afin de créer le dossier de métadonnées. La sortie de la commande est dirigée vers le log SAS via `putlog _infile_`.
Explication : Ce bloc procède à la vérification de la création du dossier et à la gestion des erreurs. Une étape `DATA _NULL_` utilise la fonction `metadata_pathobj` pour interroger le serveur de métadonnées sur le type d'objet existant à l'emplacement spécifié par `&loc`. Le résultat, indiquant le type d'objet (par exemple, 'Tree' pour un dossier), est stocké dans la macro-variable locale `foldertype` via `call symputx`. Si `foldertype` n'est pas 'Tree', la macro `%mp_abort` (une macro d'interruption avec message d'erreur) est appelée, signalant que l'emplacement n'a pas été créé correctement.
Copié !
data _null_; /* check tree exists */
length type uri $256;
rc=metadata_pathobj("","&loc","Folder",type,uri);
call symputx('foldertype',type,'l');
run;
%let msg=Location (&loc) was not created!!;
%mp_abort(iftrue= (&foldertype ne Tree)
,mac=&_program..sas
,msg=%superq(msg)
)
1
DATA _null_; /* check tree exists */
2
LENGTH type uri $256;
3
rc=metadata_pathobj("","&loc","Folder",type,uri);
4
call symputx('foldertype',type,'l');
5
RUN;
6
%let msg=Location (&loc) was not created!!;
7
%mp_abort(iftrue= (&foldertype ne Tree)
8
,mac=&_program..sas
9
,msg=%superq(msg)
10
)
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.
« Cette macro mmx_createmetafolder illustre une méthode robuste pour industrialiser l'administration des métadonnées SAS. Plutôt que de s'appuyer sur une création manuelle via la console Management Console, elle utilise une approche hybride mêlant commandes système et fonctions de validation internes. »
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.