4D v15Get locked records info |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v15
Get locked records info
|
Get locked records info ( laTabla ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
laTabla | Tabla |
![]() |
Tabla para la cual usted quiere conocer los registros bloqueados | |||||
Resultado | Objeto |
![]() |
Descripción de los registros bloqueados (si los hay) | |||||
Originalmente introducido en 4D v14 R3
Tema: Registros (bloqueo)
El nuevo comando Get locked records info devuelve un objeto que contiene diferente información sobre los registros bloqueados actualmente en aTabla.
El objeto devuelto contiene una propiedad "registros", que es un array de objetos:
{
"records": [
objeto descripción,
(…)
]
}
Cada elemento del array "description object" identifica un registro bloqueado en la tabla especificada y contiene las siguientes propiedades:
Propiedad | Tipo | Descripción |
contextID | UUID (Cadena) | UUID del contexto de la base responsable del bloqueo |
contextAttributes | Objeto | Objeto que contiene la misma información que el comando LOCKED BY aplicado al registro, la diferencia es que Get locked records info devuelve el nombre de usuario definido en el sistema y no el del usuario 4D (ver más adelante). |
recordNumber | Entero largo | Número de registro del registro bloqueado |
Nota: para más claridad, el comando LOCKED ATTRIBUTES ha sido renombrado LOCKED BY a partir de 4D v14 R3.
El objeto contextAttributes se compone de las siguientes propiedades:
Nota: puede obtener el nombre de usuario 4D a partir del valor de user4d_id utilizando el siguiente código:
GET USER LIST($arrNames;$arrIDs)
$4DUserName:=Find in array($arrIDs;user4d_id)
Nota: el comando funciona únicamente con 4D y 4D Server. Siempre devuelve un objeto no válido cuando se llama desde un 4D remoto o un componente. Sin embargo, se le puede llamar en estos contextos, si se activa la opción "Ejecutar en el servidor". En este caso, el objeto devuelto contendrá, respectivamente, la información sobre el servidor o la base local.
Ejecute el siguiente código:
$vOlocked :=Get locked records info([Table])
Si dos registros están bloqueados en la tabla [Table], el siguiente objeto se devuelve en $vOlocked:
{
"records": [
{
"contextID": "A9BB84C0E57349E089FA44E04C0F2F25",
"contextAttributes": {
"task_id": 8,
"user_name": "roland",
"user4d_id": 1,
"host_name": "iMac de roland",
"task_name": "P_RandomLock",
"client_version": -1342106592
},
"recordNumber": 1
},
{
"contextID": "8916338D1B8A4D86B857D92F593CCAC3",
"contextAttributes": {
"task_id": 9,
"user_name": "roland",
"user4d_id": 1,
"host_name": "iMac de roland",
"task_name": "P_RandomLock",
"client_version": -1342106592
},
"recordNumber": 2
}
]
}
Si el código se ejecuta en un 4D Server y el bloqueo es causado por una máquina cliente remota, el siguiente objeto es devuelto en $vOlocked:
{
"records": [
{
"contextID": "B0EC087DC2FA704496C0EA15DC011D1C",
"contextAttributes": {
"task_id": 2,
"user_name": "achim",
"user4d_id": 1,
"host_name": "achim-pcwin",
"task_name": "P_RandomLock",
"is_remote_context": true,
"client_uid": "0696E66F6CD731468E6XXX581A87554A",
"client_version": -268364752
},
"recordNumber": 1
}
]
}
Producto: 4D
Tema: Lenguaje
4D v15 - Actualización (standard edition) ( 4D v15)