Treatment
Révision datée du 21 avril 2022 à 21:56 par Damien (discussion | contributions)
Introduction
Une table de traitement est un liste d'instruction qui peuvent s'appliquer sur un Dataset, permettant de transformer les données existantes. Les traitements sont déclenchés manuellement par l'application (via un Thème par exemple).
Une Configuration peut définir plusieurs table de traitements, chacune ayant un identifiant unique (une chaîne de caractère, sans espace).
Les instructions de la table de traitement sont exécutés dans l'ordre de le lecture.
Types d'instruction de traitement
Il existe plusieurs "types" d'instruction de traitement :
- -
set
. Instruction la plus élémentaire, elle consiste à assigner une nouvelle valeur à une variable à partir d'une SmartExpression fournie. La SmartExpression peut faire appel à d'autres variables du Dataset, mais aussi à d'éventuelles DynVars. Ce type d'assignation ne peut s'appliquer que sur une variable simple (de premier niveau).
- -
- -
set-all
. L'assignation multiple' consiste à assigner une valeur à une sous-variable, pour TOUS les éléments d'une liste. La valeur est calculée à partir d'une SmartExpression qui peut faire appel à d'autres variables du Dataset, ainsi qu'à d'éventuelles DynVars. La sous-variable ciblée est indiquée sous la forme de sa définition VAR.SUBVAR (Ex: EMPLOYÉ.DATE_ENTRÉE).
- -
- - Le retrait d'un élément dans une liste : Si la variable ciblée par le traitement est fournie sous la syntaxe
LIST.remove
(avec LIST une variable de type "Liste"), alors la SmartExpression fournie devra indiquer la clé de l'entrée à supprimer dans la liste.
- - Le retrait d'un élément dans une liste : Si la variable ciblée par le traitement est fournie sous la syntaxe
- - L'ajout ou la mise à jour d'une élément spécifique d'une liste : Si la variable ciblée par le traitement est fournie sous la syntaxe
LIST.add
(avec LIST une variable de type Liste), alors :
- - L'ajout ou la mise à jour d'une élément spécifique d'une liste : Si la variable ciblée par le traitement est fournie sous la syntaxe
- — le résultat de la SmartExpression fournie doit correspondre à la clé de l'élément ciblé (élément à créer ou à mettre à jour).
- Si rien n'est précisé, alors une nouvelle clé sera créée automatiquement.
- — Dans le cas d'une Liste Structurée (ex: ENFANTS), les lignes suivantes dans la table permettront de définir les sous-variables à créer ou mettre à jour. Elle seront définie sans citer la variable de liste, et donc reconnaissable car débutant par un "." (ex:
.AGE
pour définir la valeur deENFANT.AGE
de l'enfant correspondant à la clé indiquée par la SmartExpression de la liste "ENFANT.AGE". - Dans le cas d'une Liste Plate (ex: LIST_COULEURS), il n'y a pas de sous-variable, et il faudra donc utiliser la syntaxe
._VALUE
sur la ligne au dessous deLIST.add
pour définir la valeur à intégrer.
- — Dans le cas d'une Liste Structurée (ex: ENFANTS), les lignes suivantes dans la table permettront de définir les sous-variables à créer ou mettre à jour. Elle seront définie sans citer la variable de liste, et donc reconnaissable car débutant par un "." (ex:
- - La fusion d'une liste sur une autre liste : Si la variable ciblée par le traitement est fournie sous la syntaxe "LIST.merge" (avec LIST une variable de type "Liste"), et que la SmartExpression fournie renvoie aussi une liste, alors cette dernière viendra se fusionner à la liste existante. Notez que, si la clé d'un élément n'existe pas dans LIST alors elle sera rajoutée à LIST (c'est un simple ajout), mais si elle existe, sa donnée viendra surcharger les valeurs existantes.