A gestão de processos e sessões é essencial para otimizar e monitorizar as suas aplicações 4D. Pode facilmente manipular e recuperar informação crucial sobre estes elementos graças a diferentes comandos.
Com 4D 20 R7, temos o prazer de anunciar uma série de melhorias que tornam essas funções ainda mais acessíveis e eficazes. Estas novas caraterísticas são desenhadas não só para simplificar o seu trabalho, mas também para aumentar a performance do seu código. As melhorias incluem:
- Obter as informações do processo num objeto para facilitar a manipulação das propriedades,
- Permitir o acesso direto às informações da sessão utilizando um ID de sessão para facilitar a gestão,
- Facilitar a obtenção de um número de processo diretamente a partir do seu ID,
- Acesso à data de criação de um processo
- Filtragem otimizada dos resultados retornados pelo comando Process activity para obter todos os processos de uma sessão.
Descubra como estas atualizações podem transformar a sua experiência de desenvolvimento e melhorar a eficiência das suas aplicações!
HDI: Propriedades do processo, propriedades da sessão e atividade do processo em ação
Recuperar as informações de um processo ou de uma sessão
Novo comando Informações do processo
O comando new Process info retorna um objeto. A vantagem desta sintaxe advém da sua capacidade de recuperar a informação num objeto, tornando-a mais fácil de manusear do que utilizando múltiplas variáveis. Portanto, o comando _O_PROCESS PROPERTIES foi descontinuado.
var $process : Object
$process :=Process info($processNumber)
O comando Process info retorna uma nova propriedade, creationDateTime. Esta propriedade permite-lhe saber quando um processo foi criado.
Exemplo de saída:
{
"number": 4,
"name": "Processo de candidatura",
"sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
"ID": 4,
"visível": verdadeiro,
"tipo": -18,
"estado": 0,
"creationDateTime": "2024-09-22T12:46:39.243Z",
"preemptivo": falso,
"systemID": "123145476132864",
"cpuUsage": 0,
"cpuTime": 0.006769
}
Por exemplo, para saber se o meu processo é preemptivo:
var $preemptive : Boolean
$preemptive :=Process info($processNumber).preemptive
Novo comando Session info
O comando new Session info permite recuperar as informações de uma sessão usando seu sessionID. Já era possível obter estas informações com o comando Atividade do processo. A vantagem deste novo comando é que retorna um objeto simples, poupando tempo e desempenho.
var $session : Object
$session :=Session info($sessionID)
$session :=Session info(Process info($processNumber).sessionID)
Exemplo de saída:
{ "ID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5", "userName": "Designer", "machineName": "O meu computador", "systemUserName": "John Doe", "IPAddress": "localhost", "hostType": "mac", "tipo": "remoto", "estado": "ativo", "creationDateTime": "2024-09-10T09:55:54Z", "persistentID": "8FFDAE519F1F4DCDB81E8E8DB00AD101" }
Recuperar o número do processo a partir do ID do processo
O comando Process number foi atualizado. Agora é possível passar o ID do processo para obter diretamente o número do processo, para além do método anterior de utilizar o nome do processo.
var $processNumber : Integer
var $processName : Text
var $processID : Integer
// Do nome do processo
$processNumber :=Process number($processName)
// Da ID do processo
$processNumber :=Process number($processID)
Melhoria do comando de atividade do processo
Filtrar processos por sessão
O comando Process activity permite obter a lista de processos e sessões. Se você passar a opção Processes only ou Sessions only, você recupera a lista de processos ou a lista de sessões. Agora, pode filtrar os resultados de forma mais eficiente. Basta passar uma ID de sessão para recuperar a lista dos processos vinculados à sessão.
Aqui estão as diferentes combinações possíveis:
// retorna todas as sessões e processos
$o:=Process activity()
// retorna todos os processos
$o :=Process activity(Processes only)
// retorna todas as sessões
$o :=Process activity(Sessions only)
// retorna a sessão passada no parâmetro e todos os processos linkados
$o :=Process activity($sessionID)
// retorna todos os processos linkados à sessão passados no parâmetro
$o :=Process activity($sessionID; Processes only)
// retorna a sessão passada no parâmetro
$o :=Process activity($sessionID; Sessions only)
Obter a data de criação de um processo
A nova propriedade, creationDateTime, também foi adicionada ao objeto Process devolvido pelo comando Process activity do comando. Assim, você pode facilmente recuperar a data de criação de qualquer processo.
Exemplo de saída:
{
"processes": [
{
"nome": "Processo de aplicação",
"sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
"número": 4,
"ID": 4,
"visível": verdadeiro,
"ID do sistema": "123145476132864",
"tipo": -18,
"estado": 0,
"cpuUsage": 0,
"cpuTime": 0.006769,
"creationDateTime": "2024-09-22T12:46:39.324Z",
"preemptive": falso
}
]
}
Mergulhar mais fundo
Para obter mais detalhes sobre essas mudanças interessantes, confira a documentação atualizada sobre esses comandos. Mal podemos esperar para ouvir a sua opinião, junte-se à conversa no nosso fórum!