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!