?>Array ( [lang] => es [id] => 54 )
Scénario de test & Cas d'usage
No se requiere preparación de datos. El objetivo es provocar un error haciendo referencia a un objeto que no existe.
| 1 | /* No se necesita código de preparación de datos. El error es intencional. */ |
| 1 | CAS sesion_usuario; |
| 2 | PROC 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'}; |
| 6 | QUIT; |
| 7 | CAS; |
| 1 | PROC 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; |
| 7 | QUIT; |
| 1 | PROC 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; |
| 15 | QUIT; |
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.