Des améliorations passionnantes pour la gestion des processus et des sessions

La gestion des processus et des sessions est essentielle pour optimiser et contrôler vos applications 4D. Vous pouvez facilement manipuler et récupérer des informations cruciales sur ces éléments grâce à différentes commandes.

Avec 4D 20 R7, nous avons le plaisir d’annoncer une série d’améliorations qui rendent ces fonctions encore plus accessibles et efficaces. Ces nouvelles fonctionnalités sont conçues non seulement pour simplifier votre travail, mais aussi pour améliorer les performances de votre code. Les améliorations sont les suivantes

  • L’obtention des informations sur le processus dans un objet pour faciliter la manipulation des propriétés,
  • Permettre un accès direct aux informations de session à l’aide d’un identifiant de session pour faciliter la gestion,
  • Faciliter l’obtention du numéro d’un processus directement à partir de son ID,
  • Accès à la date de création d’un processus
  • Optimisation du filtrage des résultats renvoyés par la commande Process activity pour obtenir tous les processus d’une session.

 

Découvrez comment ces mises à jour peuvent transformer votre expérience de développement et améliorer l’efficacité de vos applications !

HDI : Propriétés du processus, propriétés de la session et activité du processus en action

Récupérer les informations d’un processus ou d’une session

Nouvelle commande Process info

La commande new Process info renvoie un objet. L’avantage de cette syntaxe réside dans sa capacité à récupérer les informations dans un objet, ce qui les rend plus faciles à manipuler que l’utilisation de multiples variables. La commande _O_PROCESS PROPERTIES est donc obsolète.

var $process : Object
$process:=Process info($processNumber)

La commande Process info renvoie une nouvelle propriété, creationDateTime.. Cette propriété permet de savoir quand un processus a été créé.

Exemple de sortie :

{
    "number" : 4,
    "name" : "Processus d'application",
    "sessionID" : "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
    "ID" : 4,
    "visible" : true,
    "type" : -18,
    "state" : -18, "state" : -18, "state" : -18, "state" : -18 0,
    "creationDateTime" : "2024-09-22T12:46:39.243Z",
    "preemptive" : false,
    "systemID" : "123145476132864",
    "cpuUsage" : 0,
    "cpuTime" : 0.006769
}

Par exemple, pour savoir si mon processus est préemptif :

var $preemptive : Boolean
$preemptive:=Process info($processNumber).preemptive

Nouvelle commande Session info

La commande new Session info vous permet de récupérer les informations d’une session en utilisant son identifiant (sessionID). Vous pouviez déjà récupérer ces informations avec la commande Process activity. L’avantage de cette nouvelle commande est qu’elle renvoie un objet simple, ce qui permet de gagner en temps et en performance.

var $session : Object
$session:=Session info($sessionID)
$session:=Session info(Process info($processNumber).sessionID)

Exemple de sortie :

{
    "ID" : "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
    "userName" : "Designer",
    "machineName" : "Mon ordinateur",
    "systemUserName" : "John Doe",
    "IPAddress" : "localhost",
    "hostType" : "mac",
    "type" : "remote",
    "state" : "active",
    "creationDateTime" : "2024-09-10T09:55:54Z",
    "persistentID" : "8FFDAE519F1F4DCDB81E8E8DB00AD101"
}

Récupérer le numéro de processus à partir de l’ID du processus

La commande Process number a été mise à jour. Il est désormais possible de passer l’ID du processus pour récupérer directement le numéro du processus, en plus de la méthode précédente qui consistait à utiliser le nom du processus.

var $processNumber Integer
var $processName : Text
var $processID : Integer

// From process name
$processNumber:=Process number($processName)

// From process ID
$processNumber:=Process number($processID)

Amélioration de la commande Process activity

Filtrer les processus par session

La commande Process activity vous permet de récupérer la liste des processus et des sessions. Si vous passez l ‘option Processes only ou Sessions only, vous récupérez soit la liste des processus, soit la liste des sessions.Vous pouvez désormais filtrer vos résultats plus efficacement. Il suffit de passer un identifiant de session pour récupérer la liste des processus liés à la session.

Voici les différentes combinaisons possibles :

// return all sessions and processes
$o:=Process activity()

// return all processes
$o:=Process activity(Processes only)

// return all sessions
$o:=Process activity(Sessions only)

// return the session passed in parameter and all linked processes
$o:=Process activity($sessionID)

// return all processes linked to the session passed in parameter
$o:=Process activity($sessionID; Processes only)

// return the session passed in parameter
$o:=Process activity($sessionID; Sessions only)

Récupérer la date de création d’un processus

La nouvelle propriété, creationDateTime, a également été ajoutée à l’objet Process renvoyé par la commande Process activity a également été ajoutée à l’objet Process renvoyé par la commande Ainsi, vous pouvez facilement récupérer la date de création de n’importe quel processus.

Exemple de résultat :

{
"processes" : [
          {
             "name" : "Processus d'application",
             "sessionID" : "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
             "number" : 4,
             "ID" : 4,
             "visible" : true,
             "systemID" : "123145476132864",
             "type" : -18,
             "state" : 0,
             "cpuUsage" : 0,
             "cpuTime" : 0.006769,
             "creationDateTime" : "2024-09-22T12:46:39.324Z",
             "preemptive" : false
           }
    ]
}

Approfondir

Pour plus de détails sur ces changements passionnants, veuillez consulter la documentation mise à jour sur ces commandes. Nous sommes impatients de connaître vos impressions, participez à la conversation sur notre forum!

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.