dans ce chapitre nous allons apprendre à définir les types de variables, comprendre leur portée et donc leur cycle de vie et les bases de leur programmation.
Au cours des chapitres précédents, nous avons utilisé ponctuellement des variables (vNbRecords...). Voyons maintenant en quoi elles consistent, comment elles fonctionnent et, suivant leur définition, quelles sont les limites de leur utilisation. Si nous comparons le fonctionnement de 4D à une entreprise, nous pouvons en déduire les points suivants :
Il y a plusieurs services dans l’entreprise qui réalisent chacun une tâche particulière, souvent indépendamment des autres services.
Chaque service est prévu pour réaliser un certain nombre de tâches dans un ordre donné.
Une tâche peut être interrompue car elle dépend du résultat d’un autre traitement.
Ce nouveau traitement utilisera probablement des informations provenant du traitement précédent, mais également des informations qui lui sont propres.
Si on traduit cela avec un exemple pratique :
L’entreprise a une usine de production, un service commercial et un service relations humaines.
Le service Paye centralise les heures réalisées par les autres services et réalise les paies, calcule le nombre de jours de congés, etc.
Le traitement de la paie implique de connaître le taux des heures supplémentaires ainsi que les différents taux de cotisations. Ces informations sont fournies par le service juridique qui tient à jour la documentation.
Et maintenant faisons le parallèle avec 4D :
4D peut gérer plusieurs process simultanément (impression, visualisation du contenu de plusieurs tables, palettes d’outils, imports, serveur Web, réponse à des Web services, etc ...)
La méthode qui s’exécute dans chaque process peut comporter plusieurs phases.
Elle peut faire appel à d’autres méthodes au sein du même process (collègues du même service), ou demander des informations à un autre process (collègue dans un autre service)
Pour chacun des cas nécessaires de communication, nous disposons de variables adaptées :
Pour disposer d’informations accessibles (en lecture écriture) à tous les process, nous utiliserons des variables interprocess. Pour que 4D les considère comme telles, il faut les préfixer par les symboles <> (Ex : <>DateDuJour, <>TableauTaux- Horaires, etc.)
En cours d’exécution dans un process, une méthode peut avoir besoin d’une information pour elle seule. Dans ce cas, ce sera une variable locale, reconnue dans 4D par le symbole $ qui la préfixe (Ex : $Compteur, $ZoneTampon, etc.)
Toutes les autres variables (sans préfixe) sont des variables process, utilisables par plusieurs méthodes dans un même process. (Ex : vNbRecords, ...)
La dernière remarque concernant le besoin d’information provenant du service juridique permet d’introduire la notion de communication entre les process.
Il est en effet possible avec 4D de commander la lecture ou l’écriture de variables d’un process vers un autre (et même d’un poste client vers le serveur). (LIRE VARIABLE PROCESS et ECRIRE VARIABLE PROCESS)
Pour prendre un autre exemple de la vie courante, dans une école :
la variable locale est le cahier de l’élève (ou sa feuille de brouillon) : lui seul la voit, peut écrire dessus et la relire
la variable process est le tableau noir, utilisable et visible par tous les élèves d’une même classe, chacun pouvant lire, écrire, effacer le tableau
la variable interprocess est le panneau d’affichage à l’entrée de l’école sur lequel figureront les résultats des examens (tous les élèves de toutes les classes ainsi que tous les professeurs et le proviseur y auront accès)
La communication interprocess consiste pour un professeur à venir lire ce qui est écrit ou écrire sur le tableau de la classe (variable process) de son collègue ou sur le panneau d’affichage de l’école (variable interprocess).
La portée des variables expliquée, nous pouvons en détailler le mode de fonctionnement.
La variable existe toujours, son contenu est réinitialisé
Voyons ceci avec un exemple :
Pour nommer vos variables, prenez l’habitude de respecter une règle afin de vous y retrouver.
Soit vous utilisez une nomenclature “dure”
soit vous optez pour des noms de variables “parlants” et donc plus faciles à lire.
Pour commencer, je vous conseille des noms clairs et lisibles. Vous pourrez renommer vos variables ultérieurement grâce à la fonction de remplacement global de 4D.
Comme dans tout langage, les variables sont incontournables dans 4D. Vous devrez en user et en abuser.
Attention, l’essence même de certaines variables ne permet pas de les visualiser dans un formulaire :