Publié le :
Macro CREATION_INTERNE

Test de récupération de code Job SAS Viya

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script a pour but de tester la macro `mv_getjobcode`. Il procède en trois étapes : 1) Création d'un fichier contenant du code SAS© arbitraire et déploiement de ce code sous forme de Job SAS© Viya via `mv_createjob`. 2) Récupération du code de ce Job dans une référence de fichier via `mv_getjobcode`, tout en surveillant la pollution des macro-variables avec `mp_assertscope`. 3) Comparaison du code récupéré avec le code original via une étape DATA et validation finale avec `mp_assert`.
Analyse des données

Type : CREATION_INTERNE


Le script génère ses propres données de test (code SAS stocké dans une variable) et utilise des fichiers temporaires système.

1 Bloc de code
DATA STEP
Explication :
Définition d'une chaîne de code SAS de test et écriture de cette chaîne dans un fichier temporaire via une étape DATA _NULL_.
Copié !
1%let incode=%str(DATA test; SET sashelp.class;RUN;);
2filename testref temp;
3DATA _null_;
4 file testref;
5 put "&incode";
6RUN;
2 Bloc de code
MACRO CALL
Explication :
Appel de la macro `mv_createjob` pour créer un Job SAS Viya à l'emplacement de test spécifié, contenant le code défini précédemment.
Copié !
1%mv_createjob(
2 code=testref,
3 path=&mcTestAppLoc/services/temp,
4 name=some_job
5)
3 Bloc de code
MACRO CALL
Explication :
Prise d'un instantané des macro-variables, appel de la fonction testée `mv_getjobcode` pour récupérer le code du job dans le fileref 'mycode', puis vérification qu'aucune macro-variable inattendue n'a été créée (fuite de portée).
Copié !
1%mp_assertscope(SNAPSHOT)
2%mv_getjobcode(
3 path=&mcTestAppLoc/services/temp,
4 name=some_job,
5 outref=mycode
6)
7%mp_assertscope(COMPARE,
8 ignorelist=MCLIB2_JADP1LEN MCLIB2_JADP2LEN MCLIB2_JADPNUM MCLIB2_JADVLEN
9 MCLIB2_JADP3LEN
10)
4 Bloc de code
DATA STEP Data
Explication :
Lecture du code récupéré (fileref 'mycode') et comparaison ligne par ligne avec la chaîne originale stockée dans la macro-variable 'incode'. Si correspondance, mise à jour du flag de succès.
Copié !
1%let diditexist=NO;
2DATA work.test1;
3 INFILE mycode;
4 INPUT;
5 putlog _infile_;
6 line=_infile_;
7 check=symget('incode');
8 IF _infile_=symget('incode') THEN call symputx('diditexist','YES');
9RUN;
5 Bloc de code
MACRO CALL
Explication :
Assertion finale pour valider que le test a réussi (le code a été correctement récupéré).
Copié !
1%mp_assert(
2 iftrue=(&diditexist=NO),
3 desc=Check IF the code that was sent was successfully retrieved
4)
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.