Publicado el :
Macro CREATION_INTERNE

Gestión de variables de ruta de acceso del sistema operativo

Este código también está disponible en: Deutsch English Français
En espera de validación
La macro `%os_fvars` está diseñada para generar dinámicamente variables macro globales SAS© que apuntan a rutas de directorios específicas. Utiliza variables macro globales existentes como `_projpre` (prefijo del proyecto), `_divider` (separador de directorio del sistema operativo) y `_suffix` (sufijo de ruta). El argumento `projpath` permite especificar subdirectorios, donde los niveles de directorio están separados por dos puntos (':'). Estos dos puntos son luego reemplazados por el separador de directorio apropiado (`_divider`) para el sistema operativo actual. La macro asegura que la variable macro global se crea con el nombre especificado por el argumento `mvar` y muestra una nota informativa en el log de SAS© para confirmar la creación y el valor final de la variable.
Análisis de datos

Type : CREATION_INTERNE


El paso `DATA _NULL_` manipula cadenas de caracteres para construir una ruta de archivo basada en variables macro existentes y argumentos pasados a la macro. No se realiza ninguna lectura o procesamiento de datos de fuentes externas o tablas SASHELP directamente en este script. La salida principal es la creación de una variable macro global.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque define la macro `%os_fvars` que toma dos argumentos: `mvar` para el nombre de la variable macro global a crear, y `projpath` para la ruta relativa al proyecto. La macro declara la variable `mvar` como global. Dentro de un paso `DATA _NULL_`, determina la ruta `path`: si `projpath` está vacío, `path` se construye a partir de `_projpre` y `_suffix`. De lo contrario, incorpora `_divider` y reemplaza los caracteres ':' en `projpath` por `_divider`. `call symput` se utiliza luego para crear la variable macro global con el nombre y el valor de la ruta construidos. Se generan mensajes `PUT` en el log de SAS para confirmar la creación de la variable.
¡Copiado!
1 %macro os_fvars (mvar=, projpath=);
2 
3 %** SETUP GLOBAL MACRO VARIABLE ***;
4 %global &mvar;
5 DATA _null_;
6 mvar=upcase("&mvar");
7 %IF &projpath= %THEN %DO;
8 path="&_projpre"||"&_suffix";
9 %END;
10 %ELSE %DO;
11 path="&_projpre"||"&_divider"||trim(left(tranwrd("&projpath",":","&_divider")))
12 ||"&_suffix";
13 %END;
14 call symput(mvar,trim(left(path)));
15 put "NOTE: os_fvars macro has set-up the following global macro variable:-";
16 put "NOTE: " mvar ": " path;
17 RUN;
18 
19 %mend os_fvars;
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.