Publié le :
Macro CREATION_INTERNE

Exécution de commande système distante vers table SAS

En attente de validation
Attention : Ce code nécessite des droits administrateur.
La macro `rcmd2ds` utilise les fonctionnalités de SAS©/CONNECT (`RSUBMIT`) pour exécuter du code sur une session distante. Elle utilise un `FILENAME` de type `PIPE` pour lancer une commande système spécifiée en paramètre. La sortie de cette commande est lue ligne par ligne via un `DATA STEP` et stockée dans une table SAS© (par défaut `_rcmd2ds`) contenant une variable `STR` de longueur 256.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées dynamiquement en capturant la sortie standard d'une commande système exécutée via un pipe.

1 Bloc de code
DATA STEP Data
Explication :
Définition de la macro qui transfère les paramètres à la session distante (`%syslput`) puis lance un bloc `RSUBMIT`. Ce bloc contient un Data Step qui lit le pipe de la commande système (`infile _rcmd2ds`) et stocke chaque ligne dans la variable `str` de la table de sortie.
Copié !
1%put MACRO CALLED: rcmd2ds v2.0;
2 
3%macro rcmd2ds(cmd,dsout);
4 %IF not %LENGTH(&dsout) %THEN %let dsout=_rcmd2ds;
5 %syslput _rcmd=&cmd;
6 %syslput _dsout=&dsout;
7 RSUBMIT;
8 filename _rcmd2ds pipe "&_rcmd";
9 DATA &_dsout;
10 LENGTH str $ 256;
11 INFILE _rcmd2ds;
12 INPUT;
13 str=_infile_;
14 RUN;
15 filename _rcmd2ds CLEAR;
16 ENDRSUBMIT;
17%mend rcmd2ds;
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 : This is public domain software.


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« Cette macro est particulièrement utile pour construire des outils d'audit dynamique. Par exemple, vous pouvez l'utiliser pour lister tous les fichiers .sas7bdat d'un répertoire distant, puis utiliser cette liste pour automatiser des processus de vérification de données (Data Quality) sur des serveurs distants sans jamais quitter votre interface locale. »