Die Daten (`deliverer`, `datetime`, `receiver`, `message`) werden direkt innerhalb des DATA-Steps des Makros generiert. Sie werden entweder in einem neuen, vom Makro erstellten Datensatz gespeichert oder einem bereits existierenden Datensatz mit demselben Namen hinzugefügt. Es ist keine externe, nicht verwaltete Datenquelle erforderlich.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA STEP-Block ist die Hauptausführung des Makros `AHGsendmsg`. Er beginnt mit der Definition eines neuen Datensatzes (`allstd.msg_&receiver._&theuser`) und spezifiziert die Formate für die Variablen `receiver`, `deliverer`, `message` und `datetime`. Die Bedingung `if _n_<=1` stellt sicher, dass die Variablen `deliverer`, `datetime`, `receiver` und `message` nur während der ersten Iteration (Erstellung des Datensatzes) mit den Eingabe- oder automatischen Werten initialisiert werden. Der Bedingungsteil `%if %sysfunc(exist(...))` ist entscheidend: Wenn der Zieldatensatz bereits existiert, wird die `set`-Anweisung verwendet, um die vorhandenen Beobachtungen zu lesen und sie über `output` mit der neuen Beobachtung zu kombinieren, wodurch die Hinzufügung der neuen Nachricht sichergestellt wird. Wenn der Datensatz nicht existiert, erstellt die erste Ausführung des `output` im `if _n_<=1` ihn mit der ursprünglichen Nachricht.
Kopiert!
data allstd.msg_&receiver._&theuser;
format receiver $20. deliverer $20. message $500. datetime datetime20.;
if _n_<=1 then
do;
deliverer="&theuser";
datetime=datetime();
receiver="&receiver";
message="&message";
output;
end;
;
%if %sysfunc(exist(allstd.msg_&receiver._&theuser)) %then %do;
set allstd.msg_&receiver._&theuser;
output;
%end;
run;
1
DATA allstd.msg_&receiver._&theuser;
2
FORMAT receiver $20. deliverer $20. message $500. datetime datetime20.;
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.