Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v20 R7
Get locked records info

Get locked records info 


 

Get locked records info ( laTabla ) -> Resultado 
Parámetro Tipo   Descripción
laTabla  Tabla in Tabla de la cual obtener los registros bloqueados
Resultado  Objeto in Descripción de los registros bloqueados (si los hay)

El comando Get locked records info devuelve un objeto que contiene diferente información sobre los registros bloqueados actualmente en laTabla.

Nota: el comando funciona solo con 4D y 4D Server. Devuelve un objeto no válido cuando se llama desde un 4D remoto. Sin embargo, puede llamarse en este contexto si la opción "Ejecutar en servidor" está activada para el método de llamada. En este caso, el objeto devuelto contendrá información sobre el servidor. Cuando se llama desde un componente, siempre se aplica a la base local.

El objeto devuelto contiene una propiedad "registros", que es una colección de objetos:

{
    "records": [
        objeto descripción,
        (…)
    ]
}

Cada elemento de la colección "description object" identifica un registro bloqueado en la tabla especificada. Contiene diferentes propiedades dependiendo del origen del bloqueo (proceso 4D o REST API).

  • Si el registro fue bloqueado por un proceso 4D:
PropiedadTipoDescripción
contextIDUUID (Cadena)UUID del contexto de la base responsable del bloqueo
contextAttributesObjetoObjeto 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 del usuario definido en el sistema y no el del usuario 4D, así como también información adicional (ver más adelante).
recordNumberEntero largoNúmero de registro del registro bloqueado

El objeto contextAttributes se compone de las siguientes propiedades:

PropiedadTipoDescripción
task_idNúmeroNúmero de referencia del proceso
user_nameCadenaNombre del usuario definido en el sistema operativo
user4d_aliasCadenaAlias de usuario definido con SET USER ALIAS, o bien nombre de usuario en el directorio de la base 4D
user4d_idNúmeroNúmero del usuario 4D(*)
host_nameCadenaNombre de la máquina local
task_nameCadenaNombre del proceso
client_versionNúmeroVersión de la aplicación cliente
Únicamente cuando el comando se ejecuta en 4D Server y si el bloqueo del registro proviene de un 4D remoto:
is_remote_contextBooleanIndica si un el origen del bloqueo es un 4D remoto (siempre true ya que de lo contrario no está presente)
client_uidUUID (Cadena)UUID del 4D remoto en el origen del bloqueo

(*) Solo devuelto en bases binarias. Puede obtener el nombre del usuario 4D a partir del valor de user4d_id utilizando el siguiente código:

 GET USER LIST($arrNames;$arrIDs)
 $User4DName:=Find in array($arrIDs;user4d_id)

PropiedadTipoDescripción
hostCadenaURL con la que se ha bloqueado la entidad, p. Ej. "127.0.0.1:8044"
IPAddrCadenaDirección IP utilizada en la URL con la que se ha bloqueado la entidad, p. Ej. "127.0.0.1"
recordNumberEnteroNúmero de registro del registro bloqueado
userAgentCadenaAgente de usuario del locker, e.g. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"

Ejemplo  

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
        }
    ]
}



Ver también 

Locked

 
PROPIEDADES 

Producto: 4D
Tema: Registros (bloqueo)
Número 1316

This command can be run in preemptive processesComportamiento diferente en modo remoto

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v14 R3
Modificado: 4D v19 R4

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v20 R7)