?>
Cambia una acción que se está ejecutando actualmente de modo síncrono a modo de lote (asíncrono). Esto permite que la sesión del cliente se libere y ejecute otras tareas sin esperar a que la acción original, a menudo de larga duración, se complete. La acción original continúa procesándose en segundo plano en el servidor CAS.
| Parámetro | Descripción |
|---|---|
| uuid | Especifica el identificador universal único (UUID) de la sesión que contiene la acción que se cambiará a modo de lote. Este es un parámetro obligatorio. |
La acción `batchresults` no opera sobre una tabla CAS directamente, sino sobre una sesión CAS existente y su trabajo en ejecución. Por lo tanto, no es necesario cargar o crear datos para utilizar esta acción. El requisito principal es tener una acción ejecutándose en una sesión cuyo UUID se conozca.
1 /* No se necesita código de preparación de datos. La acción opera sobre el estado de la sesión. */
Este ejemplo muestra cómo cambiar una acción que se está ejecutando en otra sesión a modo de lote. Se asume que se conoce el UUID de la sesión de destino y se proporciona como una cadena de texto.
| 1 | PROC CAS; SESSION.batchresults uuid="a1b2c3d4-e5f6-7890-1234-567890abcdef"; RUN; |
En este escenario, primero iniciamos una nueva sesión CAS (`long_running_session`) y ejecutamos una acción que consume mucho tiempo (simulada aquí con `builtins.sleep`). Luego, desde nuestra sesión principal, usamos la acción `listSessions` para encontrar el UUID de `long_running_session` y finalmente usamos `batchresults` para pasar la acción de suspensión a segundo plano.
| 1 | PROC CAS; |
| 2 | |
| 3 | /* 1. Iniciar una nueva sesión y una acción de larga duración de forma asíncrona para obtener su UUID. */ |
| 4 | SESSION sessTwo; |
| 5 | ACTION BUILTINS.sleep / seconds=120 async='sleepJob'; |
| 6 | |
| 7 | /* 2. Obtener el UUID de la sesión 'sessTwo' */ |
| 8 | listSessions RESULT=r; |
| 9 | string sessTwoUuid = r.SESSION.UUID[2]; /* Suponiendo que es la segunda sesión en la lista */ |
| 10 | PRINT 'El UUID de la sesión de destino es: ' sessTwoUuid; |
| 11 | |
| 12 | /* 3. Usar el UUID obtenido para cambiar la acción a modo de lote */ |
| 13 | SESSION.batchresults uuid=sessTwoUuid; |
| 14 | |
| 15 | RUN; |