Melhorias interessantes na gestão de processos e sessões

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!

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.