4D v16.3

Get locked records info

Página Inicial

 
4D v16.3
Get locked records info

Get locked records info 


 

Get locked records info ( aTabela ) -> Resultado 
Parâmetro Tipo   Descrição
aTabela  Tabela in Tabela da qual obter os registros bloqueados
Resultado  Objeto in Descrição dos registros bloqueados (se houver)

O comando Get locked records info devolve um objeto que contém diferente informação sobre os registros bloqueados atualmente em aTabela.

O objeto devolvido contém uma propriedade "registros", que é um array de objetos:

{
    "records": [
        objeto descrição,
        (…)
    ]
}

Cada elemento do array "description object" identifica um registro bloqueado na tabela especificada e contém as seguintes propriedades:

PropriedadeTipoDescrição
contextIDUUID (Cadeia)UUID do contexto da base responsável do bloqueio
contextAttributesObjetoObjeto que contém a mesma informação que o comando LOCKED BY aplicado ao registro, a diferença é que Get locked records info devolve o nome do usuário definido no sistema e não o do usuário 4D, assim como informação adicional (ver mais a frente).
recordNumberInteiro longoNúmero de registro do registro bloqueado

Nota: por consistência, o comando LOCKED ATTRIBUTES foi renomeado LOCKED BY a partir de 4D v14 R3.

PropriedadeTipoDescrição
task_idNúmeroNúmero de referência do processo
user_nameCadeiaNome do usuário definido no sistema operativo
user4d_idNúmeroNúmero do usuário 4D(*)
host_nameCadeiaNome da máquina local
task_nameCadeiaNome do processo
client_versionNúmeroVersão da aplicação cliente
Unicamente quando o comando se executa em 4D Server e se o bloqueio do registro provém de um 4D remoto:
is_remote_contextBooleanIndica se uma origem do bloqueio é um 4D remoto (sempre true já que caso contrário não está presente)
client_uidUUID (Cadeia)UUID do 4D remoto na origem do bloqueio

(*) Pode obter o nome do usuário 4D a partir do valor de user4d_id utilizando o seguinte código:

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

Nota: o comando funciona unicamente com 4D e 4D Server. Sempre devolve um objeto não válido quando é chamado desde um 4D remoto ou um recipiente. No entanto, pode ser chamado nestes contextos, se for ativada a opção "Executar no servidor". Neste caso, o objeto devolvido conterá, respectivamente, a informação sobre o servidor ou a base local.

Exemplo  

Execute o seguinte código:

 $vOlocked :=Get locked records info([Table])

Se dois registros estão bloqueados na tabela [Table], o seguinte objeto se devolve em $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
        }
    ]
}

Se o código é executado em um 4D Server e o bloqueio é causado por uma máquina cliente remota, o seguinte objeto é devolvido em $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 também 

Locked

 
PROPRIEDADES 

Produto: 4D
Tema: Bloqueio de Registros
Número 1316

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v14 R3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)