4D v14

Process

Accueil

 
4D v14
Process

Process    


 

 

En complément des manipulations expliquées dans la vidéo, il faut noter que : 

Un process est un environnement qui possède :

  • son espace mémoire
  • ses sélections courantes (une par table)
  • ses variables propres (les variables process)
  • éventuellement son interface
  • etc.

Les process peuvent communiquer entre eux de différentes manières :

  • variables interprocess
  • lecture ou écriture de variables
  • ...

Ils peuvent :

  • se mettre en attente (process endormi)
  • en hibernation (process suspendus) jusqu’à ce qu’un autre process les réveille

Un process meurt seul, lorsque la méthode qu’il exécute se termine.
On ne peut pas le forcer à mourir par programmation, bien qu’on puisse le programmer pour qu’il meure sous certaines conditions (voir la commande Appeler process)

Les process servent en général à :

  • créer des traitements particuliers (batchs, contrôles “sous-marins”),
  • créer des palettes d’outils (fenêtre autonomes disposant de fonctions particulières),
  • afficher des dialogues de saisie/visualisation pour que l’utilisateur puisse travailler en multi-fenêtrage.

Certains process sont générés directement par 4D.

Par programmation, un process est créé via la commande Nouveau process

 vNumeroProcess:=Nouveau process(Méthode;Pile;Nomprocess;Paramètres;...)

Cette ligne de commande doit figurer elle-même dans une méthode. Pensez à utiliser le principe suivant, vous y gagnerez en temps et en clarté :

 C_TEXTE($1)
 Si(Nombre de paramètres=0) // si la méthode ne reçoit aucun paramètre il faut donc créer le process
    C_ENTIER LONG(<>NumeroProcess)
    <>NumeroProcess:=Nouveau process("Affichage_Stats2";1024*1024;"Statistiques";"Paramètre_Fictif") // on crée le process
 Sinon // la méthode a reçu un paramètre, il faut donc exécuter la méthode d'affichage
    C_ENTIER LONG($Fenetre//créer la fenêtre (conteneur) dans laquelle on affiche le dialogue (contenu)
    $Fenetre:=Creer fenetre formulaire("STATS";Fenêtre standard;Centrée horizontalement;Centrée verticalement)
    DIALOGUE("STATS") //afficher le dialogue
    FERMER FENETRE($Fenetre//une fois le dialogue refermé, refermer la fenêtre
 Fin de si

  • Lors de l’appel de la méthode (sans paramètre), 4D crée un process dans lequel il exécute la méthode
  • La méthode s’appelle elle-même (elle crée une deuxième instance de la méthode dans le nouveau process)
  • et se passe un paramètre :
  • La première instance de méthode se termine
  • tandis que la méthode exécutée par le process continue à se dérouler et présente le tableau de statistiques.

Vous pouvez ainsi continuer à travailler tout en ayant la fenêtre de statistiques à portée de main.

Pour tracer l’exécution d’un process (au moment ou vous exécutez la ligne Nouveau process), utilisez le bouton "pas à pas nouveau process" . Ce bouton exécute la ligne et ouvre une deuxième fenêtre de trace dans laquelle vous pouvez suivre le déroulement de la méthode exécutée dans le process, indépendamment de la méthode appelante.

Vous pouvez créez par exemple un process qui affiche l’heure et le temps écoulé depuis que ce nouveau process est lancé. Cet exemple vous donnera les bases de la mise en oeuvre des compteurs temps.


Les process vous permettent d'envisager des évolutions rapides de votre programmation :

  • vous concevez vos traitements
  • les testez
  • puis en quelques lignes pouvez les paramétrer pour une exécution autonome dans un process.

Les exemples d’utilisation de process sont nombreux. En voici un autre : vous avez des mises à jour à faire sur une base de données importante, or ces mises à jour peuvent être décalées de quelques secondes, voire minutes sans impact sur la bonne marche de l’entreprise. Vous pouvez donc :

  • prévoir une table dans laquelle vous enregistrez une liste de tâches à réaliser.
  • Pour chacune des tâches vous précisez une date, une heure, éventuellement un niveau de priorité et un descriptif du traitement à réaliser (quoi, sur quelle table, quel enregistrement...).
  • Ensuite, vous mettez en route un process dont la seule mission est de consulter cette table et de réaliser l’ensemble des tâches qui y figurent.
  • Lorsqu’il a terminé, il se suspend, jusqu’à ce qu’une nouvelle tâche soit enregistrée et que le process soit réactivé.

Ce fonctionnement est tout à fait réalisable en client/serveur où un process (procédure stockée) "tourne" sur le serveur et réalise les tâches à effectuer :

  • import
  • retraitements
  • impressions pdf
  • envoi de mails
  • ...

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Process
Nom intl. : Processes

 
UTILISATION DE L'ARTICLE

Autoformation ( 4D v13)
Autoformation ( 4D v14)