builtins actionSetInfo

Creación de una Macro de Diagnóstico para Validar Dependencias de ActionSet

Scénario de test & Cas d'usage

Contexto empresarial

Un Lead Data Scientist está desarrollando una macro SAS reutilizable para estandarizar los análisis. Antes de ejecutar una acción específica (p. ej., de 'deepLearn'), la macro debe verificar si el conjunto de acciones 'deepLearn' está disponible en el servidor y si está cargado. Si no está cargado pero está disponible, debe intentar cargarlo. Si no está disponible, debe detenerse con un error claro.
Sobre el conjunto : builtins

Comandos fundamentales del sistema del servidor CAS.

Descubrir todas las acciones de builtins
Preparación de datos

Se define una variable macro para simular la dependencia que la macro de diagnóstico necesita verificar.

¡Copiado!
1%let required_actionset = DEEPLEARN;

Étapes de réalisation

1
Obtener la lista completa de todos los conjuntos de acciones disponibles y su estado de carga.
¡Copiado!
1 
2PROC CAS;
3BUILTINS.actionSetInfo / all=TRUE RESULT=r_diag_sets;
4QUIT;
5 
2
Procesar los resultados con un DATA Step para encontrar el conjunto de acciones requerido y determinar su estado ('cargado', 'no cargado' o 'no encontrado').
¡Copiado!
1DATA _null_;
2 SET r_diag_sets.ActionSetInfo;
3 where upcase(SET) = "&required_actionset.";
4 IF loaded THEN call symputx('SET_STATUS', 'CARGADO');
5 ELSE call symputx('SET_STATUS', 'NO_CARGADO');
6 stop;
7RUN;
8 
9%IF not %symexist(SET_STATUS) %THEN %DO;
10 %let SET_STATUS = NO_ENCONTRADO;
11%END;
12 
13%put ESTADO DEL ACTIONSET &required_actionset.: &SET_STATUS.;
3
Simular la lógica condicional: si el estado es 'NO_CARGADO', intentar cargarlo.
¡Copiado!
1%IF &SET_STATUS. = NO_CARGADO %THEN %DO;
2 PROC CAS;
3 BUILTINS.LOADACTIONSET / actionSet="&required_actionset.";
4 QUIT;
5 %put 'Intento de carga para &required_actionset. ejecutado.';
6%END;

Resultado esperado


El escenario debe identificar correctamente el estado del conjunto de acciones 'DEEPLEARN'. El log de SAS debe imprimir el estado detectado ('CARGADO', 'NO_CARGADO', o 'NO_ENCONTRADO'). Si el estado es 'NO_CARGADO', se debe ejecutar un bloque `builtins.loadActionSet`. Este flujo de trabajo valida el uso de `actionSetInfo` como un componente clave en la programación defensiva y la automatización de flujos de trabajo complejos en SAS Viya.