Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
Get locked records info
|
Get locked records info ( aTabela ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
aTabela | Tabela |
![]() |
Tabela da qual obter os registros bloqueados | |||||
Resultado | Objeto |
![]() |
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.
Nota: o comando funciona só com 4D e 4D Server. Devolve um objeto não válido quando for chamado desde um 4D remoto. Entretanto, pode ser chamado neste contexto se a opção "Executar em servidor" estiver ativada para o método de chamada. Nesse caso, o objeto devolvido conterá informação sobre o servidor. Quando chamar desde um componente, sempre se aplica ao banco de dados local.
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:
Propriedade | Tipo | Descrição |
contextID | UUID (Cadeia) | UUID do contexto da base responsável do bloqueio |
contextAttributes | Objeto | Objeto 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). |
recordNumber | Inteiro longo | Número de registro do registro bloqueado |
O objeto contextAttributes tem as propriedades abaixo:
Propriedade | Tipo | Descrição |
task_id | Número | Número de referência do processo |
user_name | Cadeia | Nome do usuário definido no sistema operativo |
user4d_alias | String | Apelido/alias definido com SET USER ALIAS, senão o nome do usuário no diretório de banco de dados 4D |
user4d_id | Número | Número do usuário 4D(*) |
host_name | Cadeia | Nome da máquina local |
task_name | Cadeia | Nome do processo |
client_version | Número | Versã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_context | Boolean | Indica se uma origem do bloqueio é um 4D remoto (sempre true já que caso contrário não está presente) |
client_uid | UUID (Cadeia) | UUID do 4D remoto na origem do bloqueio |
(*) Só retornado em bancos de dados binários. Pode obter o nome de usuário 4D a partir do valor de user4d_id usando o código abaixo
GET USER LIST($arrNames;$arrIDs)
$User4DName:=Find in array($arrIDs;user4d_id)
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
}
]
}
Produto: 4D
Tema: Bloqueio de Registros
Número
1316
Criado por: 4D v14 R3
Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)