?>Array ( [lang] => es [id] => 54 ) Diagnóstico de un Fallo de Acción y Verificación de Estado entre Sesiones de Usuario - WeAreCAS
session actionstatus

Diagnóstico de un Fallo de Acción y Verificación de Estado entre Sesiones de Usuario

Scénario de test & Cas d'usage

Contexto empresarial

Un administrador de SAS Viya necesita diagnosticar por qué el trabajo de un usuario ha fallado. El administrador, con los permisos adecuados, debe poder inspeccionar el estado de las acciones en la sesión del usuario para identificar el error. Se simulará una acción que falla al hacer referencia a una tabla inexistente.
Preparación de datos

No se requiere preparación de datos. El objetivo es provocar un error haciendo referencia a un objeto que no existe.

¡Copiado!
1/* No se necesita código de preparación de datos. El error es intencional. */

Étapes de réalisation

1
Crear una nueva sesión de CAS para simular un usuario e iniciar una acción que fallará.
¡Copiado!
1CAS sesion_usuario;
2PROC CAS;
3 SESSION sesion_usuario;
4 /* Esta acción fallará porque la tabla no existe */
5 async 'trabajo_fallido', SIMPLE.summary / TABLE={name='tabla_inexistente'};
6QUIT;
7CAS;
2
Desde la sesión principal (del administrador), listar todas las sesiones para encontrar el UUID de la sesión del usuario.
¡Copiado!
1PROC CAS;
2 SESSION casauto;
3 /* Listar sesiones para encontrar el UUID de 'sesion_usuario' */
4 SESSION.listSessions RESULT=r;
5 /* En un caso real, se filtraría por el nombre de usuario */
6 PRINT r.SESSION;
7QUIT;
3
Usar el UUID de la sesión del usuario para verificar el estado de sus acciones. Se espera ver el estado 'Fallida'.
¡Copiado!
1PROC CAS;
2 SESSION casauto;
3 /* NOTA: Reemplace 'UUID_DE_SESION_USUARIO' con el UUID real obtenido en el paso 2 */
4 /* El código se presenta de forma conceptual */
5 * SESSION.actionStatus / uuid='UUID_DE_SESION_USUARIO';
6 /* Para una prueba automatizada, se usaría una macro variable */
7 SESSION.listSessions RESULT=r;
8 DO i = 1 to dim(r.SESSION);
9 IF (r.SESSION[i]['SessionName'] = 'SESION_USUARIO') THEN DO;
10 uuid_usuario = r.SESSION[i]['UUID'];
11 PRINT 'Verificando estado para la sesión del usuario con UUID:' uuid_usuario;
12 SESSION.actionStatus / uuid=uuid_usuario;
13 END;
14 END;
15QUIT;

Resultado esperado


El administrador, operando desde su propia sesión, puede usar `actionstatus` con el UUID de la sesión del usuario. La salida mostrará la acción `simple.summary` con el estado 'Fallida', lo que permite un diagnóstico remoto y preciso del problema sin necesidad de acceder directamente a la sesión del usuario.