Aller au contenu principal
Version: Next

PROCESS PROPERTIES

PROCESS PROPERTIES ( process ; procNom ; procStatut ; procTemps {; procMode {; uniqueID {; origine}}} )

ParamètreTypeDescription
processEntier long🡒Numéro du process
procNomChaîne🡘Nom du process
procStatutEntier long🡘Statut du process
procTempsEntier long🡘Temps d'exécution cumulé du process en ticks
procModeBooléen, Entier long🡘Si booléen : Visible (Vrai) ou Caché (Faux)Si entier long (champ de bits) : bit 0 = Visibilité, bit 1 = Exécution en préemptif
uniqueIDEntier long🡘Numéro unique du process
origineEntier long🡘Origine du process

Description

La commande PROCESS PROPERTIES retourne diverses informations sur le process dont vous passez le numéro dans process.

Note : Si le process n'existe pas, ce qui veut dire que vous n'avez pas passé, dans process, un nombre inclus dans l'intervalle [1>Count tasks], PROCESS PROPERTIES laisse les valeurs des variables passées en paramètres inchangées.

Après l'appel :

  • procNom retourne le nom du process. Quelques points sont à noter à propos du nom du process :

    • Si le process a été démarré depuis la boîte de dialogue Exécuter une méthode (avec l'option Nouveau process sélectionnée), son nom est “P_” suivi d'un numéro.
    • Si le process a été démarré à partir d'une commande de menu personnalisé dont la propriété Démarrer un process est sélectionnée, le nom du process est “M_” ou “ML_” suivi d'un numéro.
    • Si le process a été démarré par le serveur Web, son nom est "Web Process#" suivi d'un identifiant UUID.
    • Si un process a été stoppé (et son “espace” non encore réutilisé), son nom est encore retourné. Pour détecter si un process est stoppé, testez procStatut=-1 (voir ci-dessous).
  • procStatut retourne le statut du process au moment de l'appel. Ce paramètre peut retourner l'une des valeurs fournies par les constantes prédéfinies suivantes :
    | Constante | Type | Valeur |
    | ------------------------- | ----------- | ------ |
    | Does not exist | Entier long | -100 |
    | Aborted | Entier long | -1 |
    | Executing | Entier long | 0 |
    | Delayed | Entier long | 1 |
    | Waiting for user event | Entier long | 2 |
    | Waiting for input output | Entier long | 3 |
    | Waiting for internal flag | Entier long | 4 |
    | Paused | Entier long | 5 |

  • procTemps retourne le cumul du temps que le process a utilisé depuis qu'il a été démarré, en ticks (1/60e de seconde).

  • Le paramètre optionnel procMode peut être une variable de type booléen ou entier long :

    • s'il est de type booléen, il retourne Vrai si le process est visible et Faux s'il est caché.
    • s'il est de type entier long, il contient après l’exécution de la méthode un champ de bits où les deux premiers bits sont définis :
      * le bit 0 retourne la propriété de visibilité : 1 si le process est visible, et 0 s'il est caché
      * le bit 1 retourne la propriété de mode préemptif : 1 si le process est exécuté en mode préemptif, et 0 s'il est exécuté en mode coopératif. Pour plus d'informations, reportez-vous à la section Process 4D préemptifs.
  • uniqueID, s'il est spécifié, retourne le numéro unique du process. En effet, chaque process se voit attribuer un numéro de process ainsi qu’un numéro unique de process par session. Ce dernier permet de différencier strictement deux process ou sessions de process. Il correspond au nombre de process ayant été lancés au cours de la session de l’application 4D.

  • origin, s'il est spécifié, retourne une valeur décrivant l’origine du process. 4D propose les constantes prédéfinies suivantes (thème "Type du process") :
ConstanteTypeValeurComment
Apple event managerEntier long-7
Backup processEntier long-19
Cache managerEntier long-4
Client manager processEntier long-31
Compiler processEntier long-29
Created from execution dialogEntier long3
Created from menu commandEntier long2
Design processEntier long-2
Event managerEntier long-8
Execute on client processEntier long-14
Execute on server processEntier long1
External taskEntier long-9
HTTP Log flusherEntier long-58
Indexing processEntier long-5
Internal 4D server processEntier long-18
Internal timer processEntier long-25
Log file processEntier long-20
Main 4D processEntier long-39
Main processEntier long-1
Method editor macro processEntier long-17
Monitor processEntier long-26
MSC processEntier long-22
NoneEntier long0
On exit processEntier long-16
Other 4D processEntier long-10
Other user processEntier long4
Restore ProcessEntier long-21
Serial Port ManagerEntier long-6
Server interface processEntier long-15
SOAP processEntier long-33
SQL Method execution processEntier long-24
Web process on 4D remoteEntier long-12
Web process with no contextEntier long-3
Web server processEntier long-13
Web server spare processEntier long-32
Worker processEntier long5Process worker lancé par l’utilisateur

Note: Les process internes à 4D retournent une valeur négative et les process générés par l’utilisateur retournent une valeur positive.

Exemple 1

L'exemple suivant retourne le nom, le statut, et le temps écoulé dans les variables vNom, vStatut, et vTempsPassé pour le process courant :

 var vNom : Text //Initialiser les variables
 var vStatut : Integer
 var vTempsPassé : Integer
 PROCESS PROPERTIES(Current process;vNom;vStatut;vTempsPassé)

Exemple 2

Voir l'exemple de la section Semaphore.

Exemple 3

Pour connaître la visibilité et le mode d'exécution du process courant, vous pouvez écrire :

 var vNom : Text
 var vStatut : Integer
 var vDurée : Integer
 var vMode : Integer //peut être déclaré en booléen si on veut juste connaître la visibilité
 var estVisible : Boolean
 var estPreemptif : Boolean
 PROCESS PROPERTIES(Current process;vNom;vStatut;vDurée;vMode)
 estVisible:=vMode?? 0 //vrai si visible
 estPreemptif:=vMode?? 1 //vrai si préemptif

Voir aussi

Count tasks
Get process activity
Process 4D préemptifs
Process state