Variables dynamiques (DynVars) : Différence entre versions

De YoWiki
Sauter à la navigation Sauter à la recherche
 
(8 révisions intermédiaires par le même utilisateur non affichées)
Ligne 6 : Ligne 6 :
 
Une variable dynamique est une variable dont la valeur n'est pas figée, mais calculée à partir d'une formule.  
 
Une variable dynamique est une variable dont la valeur n'est pas figée, mais calculée à partir d'une formule.  
  
À la différence des variables de saisie, dont la valeur est fixée (lors du remplissage d'un champ de formulaire par exemple), la valeur d'une Variable Dynamique est calculée, en fonction d'une formule, lorsque l'on fait mention à elle.  
+
À la différence des variables de stockage, dont la valeur est fixée, par exemple, lors du remplissage d'un champ de formulaire, la valeur d'une Variable Dynamique est calculée dés qu'elle est mentionnée.  
 
   
 
   
  
Ligne 20 : Ligne 20 :
 
'''Notez que :'''
 
'''Notez que :'''
  
* Les variables dynamiques n'ont pas de type prédéfini (chaîne, nombre, date...) mais, afin de ne pas complexifié l'usage de ces variables, il est recommandé d'uniformiser les types des différentes valeurs que peut renvoyer une variable dynamique ;
+
* Les variables dynamiques n'ont pas de type prédéfini (chaîne, nombre, date...). Les valeurs issues d'une variable dynamique peuvent être de type numérique, une valeur booléenne (true / false), une chaîne de caractère, une date, une liste … selon la résolution de la [SmartExpressions]. Notez qu'afin de ne pas trop complexifier l'usage de ces variables, il est recommandé d'uniformiser les types des différentes valeurs que peut renvoyer une variable dynamique. En d'autres termes, une variable dynamique ne devrait jamais renvoyer, parfois une chaîne de caractère, ou parfois un nombre.
  
 
* Le nom d'une variable dynamique (son identifiant) répond à la même [norme de nommage que celle des variables du Datastore (voir ici)](DataStore#Id_de_la_variable) ;  
 
* Le nom d'une variable dynamique (son identifiant) répond à la même [norme de nommage que celle des variables du Datastore (voir ici)](DataStore#Id_de_la_variable) ;  
  
* La formule d'une variable dynamique est dans un format [SmartExpresions], avec quelques particularités spécifiques aux Variables Dynamiques, telle que les [Instructions de boucle] ;
+
* La formule d'une variable dynamique est dans un format [[SmartExpressions]], avec quelques particularités spécifiques aux Variables Dynamiques, telle que les [[Instructions_de_Boucle_dans_une_Variable_Dynamique_(DynVar_Loop_Statement)|Instructions de boucle]] ;
  
* Les valeurs des variables dynamiques peuvent être un nombre, une valeur booléenne (true / false), une chaîne de caractère, une date, une liste … puisque c'est la réponse d'une [SmartExpresions] ;
+
= Intégration via un tableur =
  
= Mise en place =
+
* Créer une feuille nommée <code>Dynvars "mainstore"</code> dans un tableur, avec trois colonnes nommée : ''"ID", "Formule", "Type"''.
  
<h2>Création d'une feuille Dynvars</h2>
+
* Chaque ligne de la feuille correspond à une Variable Dynamique ;
Le fichier de paramétrage doit contenir une feuille nommée <code>Dynvars "mainstore"</code>
+
 
[[Fichier:Capture d’écran 2019-08-22 à 11.27.17.png|thumb|néant|250px|Dynvars mainstore]]
+
* La colonne ''ID'' définie le nom de la variable Dynamique (selon les règles de [[DataStore#Id_de_la_variable|nommage des variables du Datastore, voir ici]]) ;
 +
 
 +
* La colonne ''Formule'' doit contenir la formule de la variable Dynamique (selon la syntaxe des SmartExpressions, améliorée par quelques spécificités des Variables Dynamiques, tel que [les instructions de boucle] ;
 +
 
 +
* La colonne ''Type'' doit contenir le terme "<code>dynvar</code>" ou "<code>source</code>" (voir plus bas) ;
  
Cette feuille doit contenir trois colonnes :
 
 
[[Fichier:Capture d’écran 2019-08-22 à 11.28.32.png|900px|thumb|néant]]
 
[[Fichier:Capture d’écran 2019-08-22 à 11.28.32.png|900px|thumb|néant]]
  
 
= ID =
 
= ID =
 +
 +
(à re-redigé)
 +
 
<p>'''ID : c'est le nom de la Dynvar'''</p>
 
<p>'''ID : c'est le nom de la Dynvar'''</p>
 
<p>- Les Dynvars doivent respecter les mêmes règles syntaxiques que les [[DataStore#Id_de_la_variable|Variables]], à savoir : </p>
 
<p>- Les Dynvars doivent respecter les mêmes règles syntaxiques que les [[DataStore#Id_de_la_variable|Variables]], à savoir : </p>
Ligne 46 : Ligne 52 :
  
 
= Formule =
 
= Formule =
 +
 +
=== Type "source" ===
 +
 +
Si le type est une <code>source</code>, le contenu de la variable dynamique correspondra au contenu de la liste nommée dans le champ "Formule".
 +
La liste ciblée doit être présente dans le configuration. 
 +
Dans ce contexte, la valeur de cette variable dynamique sera toujours du type "list".
 +
 +
=== Type "dynvar" ===
 +
 +
Si le type est une <code>dynvar</code>, le contenu de la variable dynamique correspondra à la valeur de résolution de la [[SmartExpressions|SmartExpression]].
 +
 +
Notez qu'il existe un format particulier de formule pour ce type de DynVar : voir les [[Instructions_de_Boucle_dans_une_Variable_Dynamique_(DynVar_Loop_Statement)|Instructions de boucle]].
 +
Exemple : <code>#map LISTE as L: …</code>.
 +
 +
 +
--
 +
 +
(Léo : à re-rédiger)
 
<p>'''Formule : c'est la formule utilisée pour donner une valeur à cette Dynvar'''</p>
 
<p>'''Formule : c'est la formule utilisée pour donner une valeur à cette Dynvar'''</p>
 
<h3>ID de la source</h3>
 
<h3>ID de la source</h3>

Version actuelle datée du 5 mai 2022 à 01:08

Cette page est encore en cours de rédaction

Vous y trouverez néanmoins les informations essentielles concernant les Dynvars. En cas de problème, contactez votre chef de projet

Introduction

Une variable dynamique est une variable dont la valeur n'est pas figée, mais calculée à partir d'une formule.

À la différence des variables de stockage, dont la valeur est fixée, par exemple, lors du remplissage d'un champ de formulaire, la valeur d'une Variable Dynamique est calculée dés qu'elle est mentionnée.


Exemple :

  • Soit une variable "PRIX_HT", associée à un champ numérique dans un formulaire.
  • Soit une variable dynamique nommée "PRIX_TTC" avec pour formule PRIX_HT * 1.20 .
  • Alors, si l'utilisateur a complété le champ avec le nombre "50" (donc "PRIX_HT" vaut 50.0), et la variable "PRIX_TTC" vaudra 60.0.
    Dés lors que l'utilisateur modifiera le champ associé à "PRIX_HT", alors la valeur de "PRIX_TTC" s'en trouvera impactée : sa valeur n'est pas figée mais dynamique.


Notez que :

  • Les variables dynamiques n'ont pas de type prédéfini (chaîne, nombre, date...). Les valeurs issues d'une variable dynamique peuvent être de type numérique, une valeur booléenne (true / false), une chaîne de caractère, une date, une liste … selon la résolution de la [SmartExpressions]. Notez qu'afin de ne pas trop complexifier l'usage de ces variables, il est recommandé d'uniformiser les types des différentes valeurs que peut renvoyer une variable dynamique. En d'autres termes, une variable dynamique ne devrait jamais renvoyer, parfois une chaîne de caractère, ou parfois un nombre.
  • Le nom d'une variable dynamique (son identifiant) répond à la même [norme de nommage que celle des variables du Datastore (voir ici)](DataStore#Id_de_la_variable) ;

Intégration via un tableur

  • Créer une feuille nommée Dynvars "mainstore" dans un tableur, avec trois colonnes nommée : "ID", "Formule", "Type".
  • Chaque ligne de la feuille correspond à une Variable Dynamique ;
  • La colonne Formule doit contenir la formule de la variable Dynamique (selon la syntaxe des SmartExpressions, améliorée par quelques spécificités des Variables Dynamiques, tel que [les instructions de boucle] ;
  • La colonne Type doit contenir le terme "dynvar" ou "source" (voir plus bas) ;
Capture d’écran 2019-08-22 à 11.28.32.png

ID

(à re-redigé)

ID : c'est le nom de la Dynvar

- Les Dynvars doivent respecter les mêmes règles syntaxiques que les Variables, à savoir :

- Le nom de la variable doit être en majuscules

- Les espaces ne sont pas autorisés. Pour marquer un espace, on préférera donc les tirets du bas qui eux sont autorisés : _

Les accents & et caractères spéciaux ne sont pas non plus autorisés.

Formule

Type "source"

Si le type est une source, le contenu de la variable dynamique correspondra au contenu de la liste nommée dans le champ "Formule". La liste ciblée doit être présente dans le configuration. Dans ce contexte, la valeur de cette variable dynamique sera toujours du type "list".

Type "dynvar"

Si le type est une dynvar, le contenu de la variable dynamique correspondra à la valeur de résolution de la SmartExpression.

Notez qu'il existe un format particulier de formule pour ce type de DynVar : voir les Instructions de boucle. Exemple : #map LISTE as L: ….


--

(Léo : à re-rédiger)

Formule : c'est la formule utilisée pour donner une valeur à cette Dynvar

ID de la source

ID de la source : pour l'instant, une seule valeur est possible (et obligatoire) ici : dynvar

Cas d'usages

Introduction : Les Dynvars reposent sur une syntaxe spécifique nommée SmartExpressions : vous trouverez des informations plus détaillée sur la page dédiée.

Cette page présente uniquement les SmartExpressions basiques les plus utilisées dans les Dynvars.

Pour plus d'informations et de précisions sur la syntaxe, rendez-vous sur la page dédiée.

Opérations mathématiques

Les Dynvars peuvent servir à effectuer des opérations mathématiques, en utilisant les opérateurs basiques, comme par exemple :

Dans cet exemple, une variable PRIX_HT est multipliée par 1.20 pour obtenir un prix TTC

Il est possible d'effectuer des opérations mathématiques entre plusieurs variables, et aussi entre plusieurs Dynvars.

Liste des opérateurs mathématiques pouvant être utilisés : *+-/

Factorisation du raisonnement

On peut aussi prévoir qu'une Dynvar prenne pour valeur TRUE ou FALSE en fonction de la valeur d'autres variables

Par exemple :

Si une des deux variables vaut "france", alors la variable FISCALITE_FR vaudra "vrai".

Cette formule signifie : la Dynvar nommée FISCALITE_FR vaudra TRUE si NATIONALITE_ACHETEUR ou NATIONALITE_VENDEUR est égal à "france"

Il sera donc possible d'utiliser la Dynvar FISCALITE_FR dans des Visible Ifs, ou même dans les formules d'autres Dynvars.

Utilisation des Dynvars pour stocker des chaînes de caractères

Coming Soon