Instructions de Boucle dans une Variable Dynamique (DynVar Loop Statement)
Sommaire
Introduction
Les Variables Dynamiques (DynVar) permettent de définir une valeur à partir d'une formulaire, contrairement aux variables de saisie pour lesquelles une valeur est fixée lors du remplissage d'un formulaire par exemple.
L'Instruction de Boucle (loop-statement) au sein d'une Variable Dynamique correspond à une syntaxe spécifique, à placer en première ligne de la formule d'une Variable Dynamique, et qui permet d'indiquer que, pour une variable de liste et une formule (SmartExpression) données, la formule doit être exécutée (calculée) autant de fois que d'éléments présents dans la liste.
Syntaxe
Il existe deux types d'instruction de boucle :
- "map" qui permet de produire une liste à partir d'une liste existante (mapping), où chaque élément de la liste produite est le résultat d'une formule (une SmartExpression) ;
- "reduce" qui permet de produire une valeur simple (un nombre, une date, une chaîne de caractère…) à partir d'une liste existante, sur laquelle aura été appliqué une formule (une SmartExpression) sur chacun de ses éléments ;
Le Mapping
(coming soon)
- Exemple de DynVar
PARTNERS_POURCENT_LIST
Obtenir une liste, où pour chaque associé d'une liste ASSOCIES, on va calculer le pourcentage de part qui revient à chacun d'eux, sur un total de 5000 parts :
#map list ASSOCIES as ASSOCIE_ITEM (ASSOCIE_ITEM.ACTIONS / 5000) * 100
Reduce
- Exemple de DynVar
IS_ANY_ASSOCIEE_NAMED_DAM
Obtenir une valeur booléenne, si pour une liste d'ASSOCIES, au moins un membre s'appelle "Damien" :
#reduce list ASSOCIES as ASSOCIE_ITEM, false as _PREV : _PREV or ASSOCIE_ITEM.PRENOM == "DAMIEN"
- Exemple de DynVar
IS_ALL_PARTNERS_TEN_POURCENT
Obtenir une valeur booléenne, si pour une liste d'ASSOCIES, tous les membres ont plus de 500 parts :
#reduce list ASSOCIES as ASSOCIE_ITEM, true as _PREV : _PREV and ASSOCIE_ITEM.ACTIONS > 500.0
- Exemple de DynVar
COUNT_PARTNERS_WITH_500_OR_MORE
Obtenir le nombre des associés qui ont au moins 500 parts :
#reduce list ASSOCIES as ASSOCIE_ITEM, 0 as _PREV : _PREV + (ASSOCIE_ITEM.ACTIONS > 500.0 ? 1 : 0)
- Exemple de DynVar
AVERAGE_PARTNERS_YEARS_OLD
Obtenir la moyenne d'âge de tous les associés :
#reduce list ASSOCIES as ASSOCIE_ITEM, 0 as _PREV : _PREV + (ASSOCIE_ITEM.AGE / ASSOCIES._COUNT)
(coming soon)