Publié le :

Création d'un dossier de métadonnées

Ce code est également disponible en : Deutsch English Español
Attention : Ce code nécessite des droits administrateur.
La macro `mmx_createmetafolder` prend en paramètres l'emplacement du dossier (`loc`), le nom d'utilisateur (`user`) et le mot de passe (`pass`) pour se connecter au serveur de métadonnées. Elle récupère les informations de connexion (hôte et port) à partir des options SAS© système (`metaserver`, `metaport`). Un chemin d'accès à un outil externe (`sas©-make-folder`) est construit. La macro exécute ensuite cette commande externe via une instruction `DATA _NULL_` avec l'option `pipe` pour créer le dossier de métadonnées en utilisant les informations de connexion et le chemin spécifié. Après la tentative de création, elle utilise la fonction `metadata_pathobj` pour vérifier si le dossier a bien été créé. Si le dossier n'existe pas, la macro `mp_abort` est appelée pour arrêter l'exécution et signaler une erreur.
Analyse des données

Type : EXTERNE


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_`.
Copié !
1%local host port path connx_string msg;
2%let host=%sysfunc(getoption(metaserver));
3%let port=%sysfunc(getoption(metaport));
4%let path=%mf_loc(POF)/tools;
5 
6%let connx_string= -host &host -port &port -user '&user' -password '&pass';
7/* remove directory */
8DATA _null_;
9 INFILE " &path/sas-make-folder &connx_string ""&loc"" 2>&1"
10 pipe lrecl=10000;
11 INPUT;
12 putlog _infile_;
13RUN;
2 Bloc de code
DATA STEP / MACRO CALL
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é !
1DATA _null_; /* check tree exists */
2 LENGTH type uri $256;
3 rc=metadata_pathobj("","&loc","Folder",type,uri);
4 call symputx('foldertype',type,'l');
5RUN;
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.
Informations de Copyright : Le code fait référence à plusieurs sources de copyright : 'Allan Bowe' (auteur mentionné dans le bloc d'aide du fichier principal), 'Copyright (c) 2001-2006 Rodney Sparapani' (sous licence GNU GPL, provenant de _version.sas), 'Copyright 2010-2023 HMS Analytical Software GmbH' (provenant de macro_without_brief_tag.sas), et 'Copyright © 2022, SAS Institute Inc.' (provenant de print_macro_parameters.sas et de la documentation HTML).


Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« 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. »