sessionProp addFmtLib

Gestión de Formatos Globales para Clasificación de Riesgo Financiero

Scénario de test & Cas d'usage

Contexto empresarial

Una entidad financiera global necesita que un conjunto estándar y extenso de formatos para la clasificación de riesgo esté disponible para todos los analistas en el servidor CAS. El objetivo es probar la capacidad de la acción `addFmtLib` para 'promocionar' una biblioteca de formatos a un alcance global, asegurando consistencia y eliminando la necesidad de que cada usuario la cargue individualmente. Se simula un rol de administrador para realizar la promoción.
Sobre el conjunto : sessionProp

Configuración de las propiedades de la sesión.

Descubrir todas las acciones de sessionProp
Preparación de datos

Se crea una tabla de control de formatos (`formatos_riesgo_global`) que contiene clasificaciones de riesgo para diferentes tipos de activos financieros. Esta tabla simula una lista de formatos centralizada y gestionada por un equipo de gobierno de datos.

¡Copiado!
1DATA formatos_riesgo_global;
2 LENGTH FmtName $32 Start $10 Label $50;
3 FmtName='TipoActivoFmt'; Start='EQ'; Label='Renta Variable'; OUTPUT;
4 FmtName='TipoActivoFmt'; Start='FI'; Label='Renta Fija'; OUTPUT;
5 FmtName='TipoActivoFmt'; Start='DER'; Label='Derivados'; OUTPUT;
6 FmtName='RiesgoPaisFmt'; Start='US'; Label='Riesgo Bajo (AAA)'; OUTPUT;
7 FmtName='RiesgoPaisFmt'; Start='DE'; Label='Riesgo Bajo (AAA)'; OUTPUT;
8 FmtName='RiesgoPaisFmt'; Start='BR'; Label='Riesgo Especulativo (BB-)'; OUTPUT;
9RUN;
10 
11DATA activos_financieros;
12 INPUT id_activo $ tipo_activo $ pais_origen $;
13 DATALINES;
14ACT001 EQ US
15ACT002 FI DE
16ACT003 DER BR
17;
18RUN;

Étapes de réalisation

1
El administrador carga las tablas de control y de datos en una caslib compartida (p. ej., 'Public').
¡Copiado!
1PROC CAS;
2 TABLE.loadTable / caslib='Public' path='%sysfunc(pathname(work))/formatos_riesgo_global.sashdat' casout={name='FORMATOS_RIESGO_GLOBAL', replace=true, promote=true};
3 TABLE.loadTable / caslib='Public' path='%sysfunc(pathname(work))/activos_financieros.sashdat' casout={name='ACTIVOS_FINANCIEROS', replace=true, promote=true};
4QUIT;
2
El administrador asume un rol con privilegios y promociona la biblioteca de formatos 'RiesgoGlobal' a un alcance global. Se usa `replace=true` para asegurar que la operación sea idempotente.
¡Copiado!
1PROC CAS;
2 /* accessControl.assumeRole / role='CASHostAccountRequired'; */ /* Simulación de asunción de rol */
3 sessionprop.addFmtLib /
4 fmtLibName='RiesgoGlobal'
5 name='FORMATOS_RIESGO_GLOBAL'
6 caslib='Public'
7 replace=true
8 promote=true;
9QUIT;
3
Un analista, en una sesión CAS completamente nueva, accede a la tabla de activos y aplica los formatos globales sin haber cargado la biblioteca en su sesión. Se usa `freq` para verificar.
¡Copiado!
1/* --- Nueva Sesión CAS de Analista --- */
2PROC CAS;
3 SIMPLE.freq /
4 TABLE={name='ACTIVOS_FINANCIEROS', caslib='Public'}
5 inputs={{name='tipo_activo', FORMAT='TipoActivoFmt'}, {name='pais_origen', FORMAT='RiesgoPaisFmt'}};
6QUIT;

Resultado esperado


La acción `freq` en la sesión del analista debe ejecutarse correctamente y mostrar las frecuencias de los activos agrupados por las etiquetas de los formatos 'Renta Variable', 'Riesgo Bajo (AAA)', etc. Esto demuestra que la biblioteca 'RiesgoGlobal' fue promocionada exitosamente y está disponible de forma transparente para otras sesiones sin necesidad de acciones adicionales por parte del usuario final.