Publicado el :
Macro CREATION_INTERNE

Añadir una ruta al autocall de SAS (SASAUTOS)

Este código también está disponible en: Français Deutsch English
Attention : Este código requiere privilegios de administrador.
Esta macro, `_insertAutoCallPath`, toma como entrada una ruta (`autocallpath`). Verifica si esta ruta ya está definida en la opción del sistema SASAUTOS para evitar duplicados. Si la ruta no se encuentra, determina si es un fileref válido (longitud de 8 caracteres o menos y ya asignado) o una ruta de directorio. Luego, añade la ruta o el fileref a SASAUTOS usando `OPTIONS APPEND`, asegurándose de que las rutas de directorio estén correctamente entrecomilladas.
Análisis de datos

Type : CREATION_INTERNE


La macro no procesa ningún conjunto de datos. Interactúa con el entorno SAS leyendo y modificando una opción del sistema (`SASAUTOS`) a través de las funciones `%sysfunc(getoption(...))` y `OPTIONS APPEND`.

1 Bloque de código
MACRO
Explicación :
Este bloque define la macro `%_insertAutoCallPath`. Declara variables macro locales, luego verifica si el parámetro de entrada `autocallpath` está vacío. Utiliza `%sysfunc(getoption())` para recuperar el valor actual de SASAUTOS y `%sysfunc(findw())` para buscar si la ruta ya está allí. Si la ruta no está, verifica con `%sysfunc(fileref())` si el parámetro es un fileref. Finalmente, utiliza `OPTIONS APPEND` para añadir el fileref o la ruta (colocada entre comillas) a la lista SASAUTOS.
¡Copiado!
1%macro _insertAutoCallPath(autocallpath);
2
3 %local
4 l_currentAutoCallPath
5 l_found
6 l_autoCallPath
7 l_paramIsFileRef
8 ;
9
10 %IF (%LENGTH(&autocallpath.)=0) %THEN %goto exit;
11 
12 %*-- %_issueTraceMessage (&g_currentLogger., Searching for Autocallpath &autocallpath); --*;
13 
14 %let l_currentAutoCallPath=%sysfunc (getoption (SASAUTOS));
15 %let l_found=%sysfunc (findw (&l_currentAutoCallPath., &autocallpath., %str(% %"%(%)), I));
16
17 %if (&l_found. > 0) %then %do;
18 %*-- %_issueDebugMessage (&g_currentLogger., Autocallpath &autocallpath already set.); --*;
19 %end;
20 %else %do;
21 %let l_paramIsFileRef = 0;
22 %if (%length(&autocallpath.) <= 8) %then %do;
23 %let l_paramIsFileRef = %eval(%sysfunc (fileref (&autocallpath.))=0);
24 %end;
25
26 %if (&l_paramIsFileRef.) %then %do;
27 options append=(SASAUTOS=(&autocallpath.));
28 %end;
29 %else %do;
30 options append=(SASAUTOS=("&autocallpath."));
31 %END;
32 %END;
33
34 %exit:
35%mend _insertAutoCallPath;
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 : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. This file is part of SASUnit, the Unit testing framework for SAS(R) programs.