?>Array ( [lang] => es [id] => 89 ) Gestión de Formatos Globales para Clasificación de Riesgo Financiero - WeAreCAS
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.
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.