Veröffentlicht am :
Makro CREATION_INTERNE

CDARS Systemmodul

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Makro, `AHGsendmsg`, wurde entwickelt, um einen SAS©-Datensatz (`allstd.msg_&receiver._&theuser`) zu erstellen oder zu aktualisieren, um Nachrichten darin zu speichern. Es nimmt den Empfänger (`receiver`) und den Inhalt der Nachricht (`message`) als Parameter entgegen. Der Absender wird automatisch über die Variable `&theuser` identifiziert und der Zeitstempel wird durch `datetime()` erfasst. Der Ausgabedatensatz wird dynamisch nach dem Empfänger und dem Benutzer benannt. Wenn der Zieldatensatz nicht existiert, wird er mit der neuen Nachricht als erste Beobachtung erstellt. Wenn er bereits existiert, wird die Nachricht als neue Beobachtung hinzugefügt, dank einer bedingten Logik (`%if %sysfunc(exist(...))`). Dies ermöglicht eine zentralisierte und nachvollziehbare Verwaltung von Kommunikationen oder geloggten Ereignissen.
Datenanalyse

Type : CREATION_INTERNE


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!
1DATA allstd.msg_&receiver._&theuser;
2 FORMAT receiver $20. deliverer $20. message $500. datetime datetime20.;
3 IF _n_<=1 THEN
4 DO;
5 deliverer="&theuser";
6 datetime=datetime();
7 receiver="&receiver";
8 message="&message";
9 OUTPUT;
10 END;
11 ;
12 %IF %sysfunc(exist(allstd.msg_&receiver._&theuser)) %THEN %DO;
13 SET allstd.msg_&receiver._&theuser;
14 OUTPUT;
15 %END;
16RUN;
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 : CDARS Systemmodul, $Author: Hui Liu $, $Revision: 1.1 $, Revisionsverlauf.