Treatment

De YoWiki
Sauter à la navigation Sauter à la recherche

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.
- 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 :
— 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 de ENFANT.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 de LIST.add pour définir la valeur à intégrer.
- 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.