Die von diesem Makro verarbeiteten Daten stammen nicht aus traditionellen SAS-Datensätzen (weder SASHELP, intern noch extern zum Skript). Sie werden aus der textuellen Ausgabe eines externen Systembefehls (`tabver`) extrahiert, der über eine UNIX-Pipe ausgeführt wird. Das Ergebnis ist eine textuelle Information (eine Versionsnummer), die in einer Makrovariable gespeichert ist.
1 Codeblock
MACRO DEFINITION
Erklärung : Dieser Block definiert das Makro `AHGtabver`, das die Logik zur Versionsabfrage kapselt. Es verwendet `%syslput`, um die Parameter von der lokalen Sitzung vor dem `rsubmit` an die entfernte Sitzung zu übertragen. Der Code zwischen `rsubmit;` und `endrsubmit;` wird auf dem entfernten Server ausgeführt. Nach der Ausführung des `DATA _NULL_` auf dem entfernten Server sendet `%%sysrput` den Wert der Makrovariable `rtabver` (auf dem entfernten Server erstellt) an die lokale SAS-Sitzung zurück und weist ihn der Makrovariable zu, deren Name durch `&outver` bereitgestellt wird.
Erklärung : Dieses `DATA _NULL_` wird auf dem entfernten Server (innerhalb des `rsubmit`-Blocks) ausgeführt. Es erstellt keinen permanenten Datensatz. Es wird verwendet, um:
1. Einen `filename` namens `pip` als Pipe (`pipe`) zu definieren, der den Shell-Befehl `cd &root3; tabver &rtabno` ausführt.
2. `infile pip` zu verwenden, um die Ausgabe dieses externen Befehls zu lesen.
3. Die erste Zeile der Ausgabe in die Variable `line` zu lesen.
4. `call symput('rtabver',line);` zu verwenden, um eine Makrovariable namens `rtabver` (auf dem entfernten Server) zu erstellen und ihr den Inhalt von `line` zuzuweisen. Diese Makrovariable enthält die vom Systembefehl `tabver` zurückgegebene Versionsnummer.
Kopiert!
data _null_;
filename pip pipe "cd &root3; tabver &rtabno";
infile pip;
length line $100;
input line;
call symput('rtabver',line);
run;
1
DATA _null_;
2
filename pip pipe "cd &root3; tabver &rtabno";
3
INFILE pip;
4
LENGTH line $100;
5
INPUT line;
6
call symput('rtabver',line);
7
RUN;
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.
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.