Publié le :
Macro SASHELP

Macro mf_existfunction

Ce code est également disponible en : Deutsch English Español
Cette macro recherche le nom d'une fonction fournie en paramètre dans la vue système SASHELP.VFUNC. Elle retourne 1 si la fonction est trouvée, et 0 sinon. L'auteur note que l'exécution peut être lente car elle nécessite l'ouverture de la table sashelp.vfuncs.
Analyse des données

Type : SASHELP


Utilise la vue système sashelp.vfunc pour vérifier l'existence de la fonction.

1 Bloc de code
MACRO
Explication :
La macro ouvre la table SASHELP.VFUNC filtrée sur le nom de la fonction (en majuscules). Elle tente de récupérer une observation avec %sysfunc(fetch). Si le fetch retourne 0 (succès), cela signifie que la fonction existe. Le résultat booléen (1 ou 0) est renvoyé via %sysevalf.
Copié !
1%macro mf_existfunction(name)/*/STORE SOURCE*/;
2 
3 %local dsid rc exist;
4 %let dsid=%sysfunc(open(sashelp.vfunc(where=(fncname="%upcase(&name)"))));
5 %let exist=1;
6 %let exist=%sysfunc(fetch(&dsid, NOSET));
7 %let rc=%sysfunc(close(&dsid));
8 
9 %sysevalf(0 = &exist)
10 
11%mend mf_existfunction;
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.