accessControl

checkInAllObjects

Descripción

Libera todos los objetos que están actualmente desprotegidos (en 'check-out'). Esta acción es útil cuando la sesión del cliente actual no está operando dentro de una transacción explícita.

proc cas; accessControl.checkInAllObjects; run;
Preparación: Desproteger un Objeto

Para que `checkInAllObjects` tenga un efecto, primero debemos desproteger un objeto (check-out). Usaremos `checkOutObject` en una tabla como ejemplo para preparar el estado necesario.

¡Copiado!
1 
2PROC CAS;
3 
4SESSION casauto;
5datastep.runCode / code='
6data casuser.dummy;
7x=1;
8 
9run;
10';
11ACCESSCONTROL.checkOutObject / caslib='casuser' name='dummy' type='table';
12 
13RUN;
14 
15QUIT;
16 

Ejemplos

Este ejemplo muestra cómo invocar la acción `checkInAllObjects` para liberar todos los objetos que la sesión actual haya desprotegido previamente.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS; ACCESSCONTROL.checkInAllObjects; RUN;
Resultado :
La acción se ejecuta y libera el bloqueo de cualquier objeto que estuviera en 'check-out'. El resultado no mostrará una tabla de datos, pero el log de SAS indicará el éxito de la operación y que los bloqueos han sido eliminados.

Este ejemplo demuestra un ciclo completo: 1. Se desprotege una tabla. 2. Se verifica que el objeto está efectivamente en 'check-out' usando la acción `whatCheckoutsExist`. 3. Finalmente, se liberan todos los objetos con `checkInAllObjects` y se vuelve a verificar que ya no hay objetos desprotegidos.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3datastep.runCode / code='
4data casuser.dummy_detailed;
5x=1;
6 
7run;
8';
9ACCESSCONTROL.checkOutObject / caslib='casuser' name='dummy_detailed' type='table';
10PRINT '--- Objeto dummy_detailed desprotegido ---';
11whatCheckoutsExist;
12PRINT '--- Verificación de objetos desprotegidos (antes) ---';
13checkInAllObjects;
14PRINT '--- Ejecutando checkInAllObjects ---';
15whatCheckoutsExist;
16PRINT '--- Verificación de objetos desprotegidos (después) ---';
17 
18RUN;
19 
Resultado :
Inicialmente, la salida de `whatCheckoutsExist` mostrará la tabla 'dummy_detailed' como desprotegida. Después de ejecutar `checkInAllObjects`, la segunda llamada a `whatCheckoutsExist` mostrará una tabla vacía, confirmando que el objeto ha sido registrado (check-in) y liberado correctamente.

FAQ

¿Qué hace la acción `checkInAllObjects`?
¿En qué situación se debe utilizar la acción `checkInAllObjects`?
¿Cuál es la sintaxis básica para llamar a esta acción en CASL?
¿Qué relación tiene esta acción con las transacciones?
¿Cuál es el propósito de la acción `checkInAllObjects`?
¿En qué escenario específico se debe usar la acción `checkInAllObjects`?
¿Qué sucede si se intenta usar `checkInAllObjects` dentro de una transacción?

Escenarios asociados

Caso de uso
Actualización Masiva de Tablas de Referencia de Marketing

El equipo de marketing actualiza mensualmente las tablas de segmentación de clientes y códigos de productos. Para evitar conflictos de escritura durante la carga, bloquean (chec...

Caso de uso
Limpieza de Sesión tras Fallo en Script de Mantenimiento Masivo

Un administrador de sistemas ejecuta scripts que manipulan docenas de tablas temporales de configuración. Si el script falla a la mitad, muchas tablas pueden quedar en estado 'c...

Caso de uso
Validación de Robustez en Estado Limpio (Idempotencia)

En procesos automatizados críticos, es común ejecutar comandos de limpieza 'por si acaso' al inicio del flujo. Queremos validar que la acción no falle ni genere errores si se ej...