Variables dynamiques (DynVars) : Différence entre versions

De YoWiki
Sauter à la navigation Sauter à la recherche
 
(42 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
''Cette page est en cours de rédaction''
+
<p>''Cette page est encore en cours de rédaction''</p>
 +
<p>''Vous y trouverez néanmoins les informations essentielles concernant les Dynvars. En cas de problème, contactez votre chef de projet''</p>
  
<h1>Introduction</h1>
+
= Introduction =
  
''Coming Soon''
+
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 <code>PRIX_HT * 1.20</code> .
 +
 
 +
* Alors, si l'utilisateur a complété le champ avec le nombre "50" (donc ''"PRIX_HT"'' vaut <code>50.0</code>), et la variable ''"PRIX_TTC"'' vaudra <code>60.0</code>. <br/> 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) ;
 +
 
 +
* 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]] ;
 +
 
 +
= Intégration via un tableur =
 +
 
 +
* Créer une feuille nommée <code>Dynvars "mainstore"</code> dans un tableur, avec trois colonnes nommée : ''"ID", "Formule", "Type"''.
 +
 
 +
* Chaque ligne de la feuille correspond à une Variable Dynamique ;
 +
 
 +
* 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) ;
 +
 
 +
[[Fichier:Capture d’écran 2019-08-22 à 11.28.32.png|900px|thumb|néant]]
 +
 
 +
= ID =
 +
 
 +
(à re-redigé)
 +
 
 +
<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>- Le nom de la variable doit être en majuscules </p>
 +
<p>- 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 : _</p>
 +
<p>Les accents & et caractères spéciaux ne sont pas non plus autorisés.</p>
 +
</p>
 +
 
 +
= 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" ===
  
<h1>Mise en place</h1>
+
Si le type est une <code>dynvar</code>, le contenu de la variable dynamique correspondra à la valeur de résolution de la [[SmartExpressions|SmartExpression]].
  
<h2>Création d'une feuille Dynvars</h2>
+
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]].
Le fichier de paramétrage doit contenir une feuille nommée <code>Dynvars "mainstore"</code>
+
Exemple : <code>#map LISTE as L: …</code>.
[[Fichier:Capture d’écran 2019-08-22 à 11.27.17.png|thumb|néant|300|Dynvars mainstore]]
 
  
Cette feuille doit contenir trois colonnes :
 
[[Fichier:Capture d’écran 2019-08-22 à 11.28.32.png|500|thumb|néant]]
 
  
ID : c'est le nom de la variable
+
--
Formule : c'est la formule utilisée pour donner une valeur à cette Dynvar
 
ID de la source : ''dynvar''
 
  
 +
(Léo : à re-rédiger)
 +
<p>'''Formule : c'est la formule utilisée pour donner une valeur à cette Dynvar'''</p>
 +
<h3>ID de la source</h3>
 +
<p>'''ID de la source :''' pour l'instant, une seule valeur est possible (et '''obligatoire''') ici : <code>dynvar</code></p>
 
<h1>Cas d'usages</h1>
 
<h1>Cas d'usages</h1>
 +
<p>'''Introduction :''' Les Dynvars reposent sur une syntaxe spécifique nommée [[SmartExpressions]] : vous trouverez des informations plus détaillée sur la [[SmartExpressions|page dédiée]].</p>
 +
<p>Cette page présente uniquement les [[SmartExpressions]] basiques les plus utilisées dans les Dynvars.</p>
 +
<p>Pour plus d'informations et de précisions sur la syntaxe, rendez-vous sur la [[SmartExpressions|page dédiée]].</p>
 +
<h2>Opérations mathématiques</h2>
 +
<p>Les Dynvars peuvent servir à effectuer des opérations mathématiques, en utilisant les opérateurs basiques, comme par exemple : </p>
 +
<p>
 +
[[Fichier:Dynvar Maths.png|900px|thumb|néant|Dans cet exemple, une variable PRIX_HT est multipliée par 1.20 pour obtenir un prix TTC]]
 +
</p>
 +
<p> Il est possible d'effectuer des opérations mathématiques entre plusieurs variables, et aussi entre plusieurs Dynvars.</p>
 +
<p>Liste des opérateurs mathématiques pouvant être utilisés : <code>*</code><code>+</code><code>-</code><code>/</code></p>
 +
<h2>Factorisation du raisonnement</h2>
 +
<p>On peut aussi prévoir qu'une Dynvar prenne pour valeur <code>TRUE</code> ou <code>FALSE</code> en fonction de la valeur d'autres variables</p>
 +
<p>Par exemple :</p>
 +
<p>
 +
[[Fichier:Dynvars - true or false.png|900px|thumb|néant|Si une des deux variables vaut "france", alors la variable FISCALITE_FR vaudra "vrai".]]
 +
</p>
 +
<p>Cette formule signifie : la Dynvar nommée <code>FISCALITE_FR</code> vaudra <code>TRUE</code> si <code>NATIONALITE_ACHETEUR</code> ou <code>NATIONALITE_VENDEUR</code> est égal à <code>"france"</code>
 +
<p>Il sera donc possible d'utiliser la Dynvar <code>FISCALITE_FR</code> dans des [[Conditions|Visible Ifs]], ou même dans les formules d'autres Dynvars.</p>
 +
<h2>Utilisation des Dynvars pour stocker des chaînes de caractères</h2>
 +
''Coming Soon''

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