Veröffentlicht am :
Makro CREATION_INTERNE

SAS Viya Job Code Abruf-Test

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript testet das Makro `mv_getjobcode`. Es läuft in drei Schritten ab: 1) Erstellung einer Datei mit beliebigem SAS©-Code und Bereitstellung dieses Codes als SAS© Viya Job über `mv_createjob`. 2) Abrufen des Job-Codes in eine Dateireferenz über `mv_getjobcode`, dabei wird die Beeinflussung von Makrovariablen mit `mp_assertscope` überwacht. 3) Vergleich des abgerufenen Codes mit dem Originalcode über einen DATA-Schritt und abschließende Validierung mit `mp_assert`.
Datenanalyse

Type : CREATION_INTERNE


Das Skript generiert eigene Testdaten (SAS-Code, der in einer Variable gespeichert ist) und verwendet temporäre Systemdateien.

1 Codeblock
DATA STEP
Erklärung :
Definition einer SAS-Testcodekette und Schreiben dieser Kette in eine temporäre Datei über einen DATA _NULL_-Schritt.
Kopiert!
1%let incode=%str(DATA test; SET sashelp.class;RUN;);
2filename testref temp;
3DATA _null_;
4 file testref;
5 put "&incode";
6RUN;
2 Codeblock
MACRO CALL
Erklärung :
Aufruf des Makros `mv_createjob` zur Erstellung eines SAS Viya Jobs am angegebenen Testpfad, der den zuvor definierten Code enthält.
Kopiert!
1%mv_createjob(
2 code=testref,
3 path=&mcTestAppLoc/services/temp,
4 name=some_job
5)
3 Codeblock
MACRO CALL
Erklärung :
Erstellen eines Schnappschusses der Makrovariablen, Aufruf der getesteten Funktion `mv_getjobcode` zum Abrufen des Job-Codes in den Fileref 'mycode' und anschließende Überprüfung, dass keine unerwarteten Makrovariablen erstellt wurden (Scope-Leck).
Kopiert!
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 Codeblock
DATA STEP Data
Erklärung :
Lesen des abgerufenen Codes (Fileref 'mycode') und zeilenweiser Vergleich mit der ursprünglichen Zeichenkette, die in der Makrovariable 'incode' gespeichert ist. Bei Übereinstimmung wird das Erfolgsflag aktualisiert.
Kopiert!
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 Codeblock
MACRO CALL
Erklärung :
Abschließende Assertion zur Validierung, dass der Test erfolgreich war (der Code wurde korrekt abgerufen).
Kopiert!
1%mp_assert(
2 iftrue=(&diditexist=NO),
3 desc=Check IF the code that was sent was successfully retrieved
4)
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.