Publicado el :
Macro CREATION_INTERNE

Macro de recuperación de código multiplataforma

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro, `%mx_getcode`, ofrece un enfoque unificado para extraer código fuente de diferentes entornos SAS©. Determina el entorno de ejecución (SASjs, SAS© 9 o SAS© Viya) utilizando la macro `%mf_getplatform`. Dependiendo de la plataforma identificada, delega la tarea de recuperación a una macro específica: `%ms_getfile` para SASjs, `%mm_getstpcode` para SAS© 9 o SAS© Metadata, y `%mv_getjobcode` para SAS© Viya. Para SAS© Viya, se utiliza un paso `DATA _NULL_` para analizar la ruta proporcionada (`loc`) y extraer el nombre del trabajo (`name`) y su ubicación (`shortloc`) antes de la llamada a `%mv_getjobcode`. En caso de plataforma no reconocida, se genera un mensaje de error.
Análisis de datos

Type : CREATION_INTERNE


El script no procesa conjuntos de datos externos para el análisis. Manipula cadenas de caracteres (variables macro) para determinar la plataforma de ejecución y para construir los parámetros de las llamadas a las macros de recuperación de código. El paso `DATA _NULL_` se utiliza para la transformación interna de estas cadenas en variables macro para las llamadas específicas a Viya.

1 Bloque de código
Macro
Explicación :
Este bloque inicializa la macro `%mx_getcode` con los parámetros `loc` (ubicación del código) y `outref` (referencia de archivo de salida). Luego declara las variables macro locales `platform`, `name` y `shortloc`. Se llama a la macro `%mf_getplatform` para detectar la plataforma SAS actual, y su resultado se almacena en la variable `platform`.
¡Copiado!
1%macro mx_getcode(loc,outref=0
2)/*/STORE SOURCE*/;
3 
4%local platform name shortloc;
5%let platform=%mf_getplatform();
2 Bloque de código
Macro Call
¡Copiado!
1%IF &platform=SASJS %THEN %DO;
2%ms_getfile(&loc..sas, outref=&outref)
3%END;
4 
3 Bloque de código
Macro Call
Explicación :
Si la plataforma detectada es `SAS9` o `SASMETA`, se ejecuta este bloque. Llama a la macro `%mm_getstpcode` para recuperar un Stored Process. La ruta a este Stored Process se proporciona mediante el parámetro `tree` (la variable macro `loc`), y el código recuperado se almacena en la referencia de archivo `outref`.
¡Copiado!
1%ELSE %IF &platform=SAS9 or &platform=SASMETA %THEN %DO;
2%mm_getstpcode(tree=&loc,outref=&outref)
3%END;
4 
4 Bloque de código
DATA STEP & Macro Call Data
¡Copiado!
1%ELSE %IF &platform=SASVIYA %THEN %DO;
2 /* extract name & path from &loc */
3 DATA _null_;
4 loc=symget('loc');
5 name=scan(loc,-1,'/');
6 shortloc=substr(loc,1,LENGTH(loc)-LENGTH(name)-1);
7 call symputx('name',name,'l');
8 call symputx('shortloc',shortloc,'l');
9 RUN;
10 %mv_getjobcode(
11 path=&shortloc,
12 name=&name,
13 outref=&outref
14 )
15%END;
5 Bloque de código
Message log
¡Copiado!
1%ELSE %put &sysmacroname: &platform is unsupported!!!;
2%mend mx_getcode;
3 
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. Este archivo forma parte de SASUnit, el framework de prueba unitaria para los programas SAS(R).