Publicado el :
Macro CREATION_INTERNE

Módulo del Sistema CDARS

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro, `AHGsendmsg`, está diseñada para crear o actualizar un conjunto de datos SAS© (`allstd.msg_&receiver._&theuser`) para registrar mensajes. Toma como parámetros el destinatario (`receiver`) y el contenido del mensaje (`message`). El remitente se identifica automáticamente a través de la variable `&theuser` y la marca de tiempo es capturada por `datetime()`. El conjunto de datos de salida se nombra dinámicamente según el destinatario y el usuario. Si el conjunto de datos de destino no existe, se crea con el nuevo mensaje como primera observación. Si ya existe, el mensaje se añade como una nueva observación, gracias a una lógica condicional (`%if %sysfunc(exist(...))`). Esto permite una gestión centralizada y trazable de las comunicaciones o eventos registrados.
Análisis de datos

Type : CREATION_INTERNE


Los datos (`deliverer`, `datetime`, `receiver`, `message`) se generan directamente dentro del paso DATA de la macro. Se almacenan en un nuevo conjunto de datos creado por la macro o se añaden a un conjunto de datos existente con el mismo nombre. No se requiere ninguna fuente de datos externa no gestionada.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP es la ejecución principal de la macro `AHGsendmsg`. Comienza definiendo un nuevo conjunto de datos (`allstd.msg_&receiver._&theuser`) y especificando los formatos para las variables `receiver`, `deliverer`, `message` y `datetime`. La condición `if _n_<=1` garantiza que las variables `deliverer`, `datetime`, `receiver` y `message` se inicialicen con los valores de entrada o automáticos solo durante la primera iteración (creación del conjunto de datos). La parte condicional `%if %sysfunc(exist(...))` es crucial: si el conjunto de datos de destino ya existe, utiliza la instrucción `set` para leer las observaciones existentes y las combina con la nueva observación a través de `output`, asegurando así la adición del nuevo mensaje. Si el conjunto de datos no existe, la primera ejecución de `output` en `if _n_<=1` lo crea con el mensaje inicial.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : CDARS System Module, $Author: Hui Liu $, $Revision: 1.1 $, Modification History.