Cette macro, `assert_not_empty`, sert de routine d'assertion. Elle vérifie d'abord l'existence du jeu de données passé via le paramètre `DS`. Si le jeu de données n'existe pas, ou s'il existe mais ne contient aucune observation, un événement est déclenché par l'appel à une macro externe `%generate_event`. Les détails de cet événement (message, niveau, type, etc.) peuvent être personnalisés via des paramètres. Si aucun message personnalisé n'est fourni, un message par défaut est automatiquement généré pour indiquer la nature du problème (inexistant ou vide).
Analyse des données
Type : EXTERNE
La macro est conçue pour opérer sur un jeu de données dont le nom est fourni via le paramètre `DS`, qui est donc externe à la macro elle-même. Son fonctionnement dépend également de la macro `%generate_event`, qui n'est pas définie dans ce script et doit être disponible dans l'environnement SAS.
1 Bloc de code
Macro
Explication : Ce bloc définit la macro `assert_not_empty`. Elle utilise les fonctions macro `%exist` pour vérifier si le jeu de données existe et `%obs` pour en compter les observations. Si le jeu de données est inexistant ou vide, une variable locale `EVENT_COUNT` est mise à 1. Dans ce cas, la macro externe `%generate_event` est appelée pour signaler l'anomalie, en lui transmettant les paramètres correspondants. La variable globale `futs_tst_cnt` est incrémentée, ce qui suggère que cette macro fait partie d'un framework de test plus large.
%IF &MESSAGE = %str() %THEN %let MESSAGE = DATASET &DS does not exist;
20
%END;
21
%ELSE %DO;
22
%IF %obs(&DS) eq 0 %THEN %DO;
23
%let EVENT_COUNT = 1;
24
%IF &MESSAGE = %str() %THEN
25
%let MESSAGE = DATASET &DS is empty;
26
%END;
27
%END;
28
29
%let futs_tst_cnt = %eval(&futs_tst_cnt.+1);
30
31
%IF &EVENT_COUNT gt 0 %THEN
32
%generate_event(TYPE=&TYPE, LEVEL=&LEVEL,
33
MESSAGE=&MESSAGE,
34
ATTACHDATA=&ATTACHDATA, ATTACHFILE=&ATTACHFILE,
35
METRIC=&METRIC,
36
PROPERTIES=&PROPERTIES,
37
ON_EVENT=&ON_EVENT,
38
DESCRIPTION=&DESCRIPTION, ABORT=&ABORT);
39
40
%mend assert_not_empty;
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 : Copyright (c) 2015 John Jacobs. All rights reserved.
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.