Los datos procesados por esta macro no provienen de conjuntos de datos SAS tradicionales (ya sean SASHELP, internos o externos al script). Se extraen de la salida textual de un comando de sistema externo (`tabver`) ejecutado a través de un pipe UNIX. El resultado es una información textual (un número de versión) almacenada en una macrovariable.
1 Bloque de código
MACRO DEFINITION
Explicación : Este bloque define la macro `AHGtabver` que encapsula la lógica de recuperación de la versión. Utiliza `%syslput` para transferir los parámetros de la sesión local a la sesión remota antes del `rsubmit`. El código entre `rsubmit;` y `endrsubmit;` se ejecuta en el servidor remoto. Después de la ejecución del `DATA _NULL_` en el servidor remoto, `%%sysrput` devuelve el valor de `rtabver` (creada en el remoto) a la sesión local, asignándolo a la macrovariable cuyo nombre es proporcionado por `&outver`.
Explicación : Este `DATA _NULL_` se ejecuta en el servidor remoto (dentro del bloque `rsubmit`). No crea un conjunto de datos permanente. Se utiliza para:
1. Definir un `filename` llamado `pip` como un pipe (`pipe`) que ejecutará el comando shell `cd &root3; tabver &rtabno`.
2. Utilizar `infile pip` para leer la salida de este comando externo.
3. Leer la primera línea de la salida en la variable `line`.
4. Utilizar `call symput('rtabver',line);` para crear una macrovariable llamada `rtabver` (en el servidor remoto) y asignarle el contenido de `line`. Esta macrovariable contendrá el número de versión devuelto por el comando de sistema `tabver`.
¡Copiado!
data _null_;
filename pip pipe "cd &root3; tabver &rtabno";
infile pip;
length line $100;
input line;
call symput('rtabver',line);
run;
1
DATA _null_;
2
filename pip pipe "cd &root3; tabver &rtabno";
3
INFILE pip;
4
LENGTH line $100;
5
INPUT line;
6
call symput('rtabver',line);
7
RUN;
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.