Les données traitées par cette macro ne proviennent pas de jeux de données SAS traditionnels (qu'ils soient SASHELP, internes ou externes au script). Elles sont extraites de l'output textuel d'une commande système externe (`tabver`) exécutée via un pipe UNIX. Le résultat est une information textuelle (un numéro de version) stockée dans une macro-variable.
1 Bloc de code
MACRO DEFINITION
Explication : Ce bloc définit la macro `AHGtabver` qui encapsule la logique de récupération de version. Il utilise `%syslput` pour transférer les paramètres de la session locale vers la session distante avant le `rsubmit`. Le code entre `rsubmit;` et `endrsubmit;` est exécuté sur le serveur distant. Après l'exécution du `DATA _NULL_` sur le serveur distant, `%%sysrput` renvoie la valeur de la macro-variable `rtabver` (créée sur le distant) à la session locale, l'assignant à la macro-variable dont le nom est fourni par `&outver`.
Explication : Ce `DATA _NULL_` est exécuté sur le serveur distant (à l'intérieur du bloc `rsubmit`). Il ne crée pas de jeu de données permanent. Il est utilisé pour:
1. Définir un `filename` appelé `pip` comme un pipe (`pipe`) qui exécutera la commande shell `cd &root3; tabver &rtabno`.
2. Utiliser `infile pip` pour lire l'output de cette commande externe.
3. Lire la première ligne de l'output dans la variable `line`.
4. Utiliser `call symput('rtabver',line);` pour créer une macro-variable nommée `rtabver` (sur le serveur distant) et lui assigner le contenu de `line`. Cette macro-variable contiendra le numéro de version retourné par la commande système `tabver`.
Copié !
data _null_;
filename pip pipe "cd &root3; tabver &rtabno";
infile pip;
length line $100;
input line;
call symput('rtabver',line);
run;
1
DATA _null_;
2
filename pip pipe "cd &root3; tabver &rtabno";
3
INFILE pip;
4
LENGTH line $100;
5
INPUT line;
6
call symput('rtabver',line);
7
RUN;
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.