Das Skript verarbeitet keine externen Datensätze zur Analyse. Es manipuliert Zeichenketten (Makrovariablen), um die Ausführungsplattform zu bestimmen und die Parameter für die Aufrufe der Code-Retrieval-Makros zu konstruieren. Der `DATA _NULL_`-Schritt wird für die interne Transformation dieser Zeichenketten in Makrovariablen für Viya-spezifische Aufrufe verwendet.
1 Codeblock
Macro
Erklärung : Dieser Block initialisiert das Makro `%mx_getcode` mit den Parametern `loc` (Code-Speicherort) und `outref` (Ausgabedateireferenz). Anschließend deklariert er die lokalen Makrovariablen `platform`, `name` und `shortloc`. Das Makro `%mf_getplatform` wird aufgerufen, um die aktuelle SAS-Plattform zu erkennen, und sein Ergebnis wird in der Variable `platform` gespeichert.
Kopiert!
%macro mx_getcode(loc,outref=0
)/*/STORE SOURCE*/;
%local platform name shortloc;
%let platform=%mf_getplatform();
1
%macro mx_getcode(loc,outref=0
2
)/*/STORE SOURCE*/;
3
4
%local platform name shortloc;
5
%let platform=%mf_getplatform();
2 Codeblock
Macro Call
Erklärung : Wenn die erkannte Plattform `SASJS` ist, wird dieser Block ausgeführt. Er ruft das Makro `%ms_getfile` auf, um den Inhalt der SASjs-Datei abzurufen, deren Pfad durch die Makrovariable `loc` (mit der hinzugefügten `.sas`-Erweiterung) angegeben wird, und speichert ihn in der Dateireferenz `outref`.
Erklärung : Wenn die erkannte Plattform `SAS9` oder `SASMETA` ist, wird dieser Block ausgeführt. Er ruft das Makro `%mm_getstpcode` auf, um einen Stored Process abzurufen. Der Pfad zu diesem Stored Process wird durch den Parameter `tree` (die Makrovariable `loc`) bereitgestellt, und der abgerufene Code wird in der Dateireferenz `outref` gespeichert.
Kopiert!
%else %if &platform=SAS9 or &platform=SASMETA %then %do;
%mm_getstpcode(tree=&loc,outref=&outref)
%end;
1
%ELSE %IF &platform=SAS9 or &platform=SASMETA %THEN %DO;
2
%mm_getstpcode(tree=&loc,outref=&outref)
3
%END;
4
4 Codeblock
DATA STEP & Macro Call Data
Erklärung : Für die `SASVIYA`-Umgebung wird dieser Block aktiviert. Ein `DATA _NULL_`-Schritt wird ausgeführt, um die Makrovariable `loc` zu analysieren. Er extrahiert die letzte Komponente von `loc` als `name` (den Jobnamen) und den Rest des Pfads als `shortloc`. Diese Werte werden dann in lokalen Makrovariablen gespeichert. Schließlich wird das Makro `%mv_getjobcode` mit diesen `path`, `name` und `outref` aufgerufen, um den Viya-Job-Code abzurufen.
Kopiert!
%else %if &platform=SASVIYA %then %do;
/* extract name & path from &loc */
data _null_;
loc=symget('loc');
name=scan(loc,-1,'/');
shortloc=substr(loc,1,length(loc)-length(name)-1);
call symputx('name',name,'l');
call symputx('shortloc',shortloc,'l');
run;
%mv_getjobcode(
path=&shortloc,
name=&name,
outref=&outref
)
%end;
Erklärung : Wenn keine der Plattformen (`SASJS`, `SAS9`/`SASMETA`, `SASVIYA`) erkannt wird, wird dieser Block ausgeführt. Er schreibt eine Fehlermeldung in das SAS-Log, die besagt, dass die durch `platform` identifizierte Plattform nicht unterstützt wird. Das Makro `%mx_getcode` wird dann mit `%mend` beendet.
Kopiert!
%else %put &sysmacroname: &platform is unsupported!!!;
%mend mx_getcode;
1
%ELSE %put &sysmacroname: &platform is unsupported!!!;
2
%mend mx_getcode;
3
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.
Urheberrechtsinformationen : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Diese Datei ist Teil von SASUnit, dem Unit-Test-Framework für SAS(R)-Programme.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.