Treatment : Différence entre versions

De YoWiki
Sauter à la navigation Sauter à la recherche
m
m
Ligne 1 : Ligne 1 :
 
= Introduction =
 
= Introduction =
  
Un traitement est un procédé qui peut s'appliquer sur un Dataset, permettant de transformer les données existantes.
+
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 le Thème YoProcess par exemple).
+
Les traitements sont déclenchés manuellement par l'application (via un Thème par exemple).
  
Une Configuration peut définir plusieurs traitements, avec pour chacun d'eux un identifiant unique (une chaîne de caractère, sans espace).
+
Une Configuration peut définir plusieurs table de traitements, chacune ayant un identifiant unique (une chaîne de caractère, sans espace).
  
[[File:Video-short.mp4 |thumbtime=12 |thumb |200px |New York City timelapse]]
+
Les instructions de la table de traitement sont exécutés dans l'ordre de le lecture.  
[[Fichier:Video-short.mp4|thumb |200px |New York City Time Lapse]]
 
  
[[Fichier:Xxx.ogg|thumb]]
+
= Types d'instruction de traitement =
  
= Types de traitement =
+
Il existe plusieurs "types" d'instruction de traitement :
  
La configuration d'une table de traitement peut contenir 5 types de traitements différents :
+
:: - <code>set</code>. 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). 
  
:: - La plus élémentaire, '''l'assignation''' d'une nouvelle valeur : on va indiquer qu'une variable définie prend la valeur résultante d'une SmartExpression. Très simple à configurer : il suffit d'indiquer le nom de la variable ciblée, et la SmartExpression qui permettra de calculer sa valeur ;
+
:: - <code>set-all</code>. '''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'').  
 
 
:: - '''L'assignation multiples'''' d'une valeur sur une sous-variable de tous les éléments d'une liste. Si la variable ciblée par le traitement est une sous-variable (ex: ENFANT.AGE) alors le résultat de la SmartExpression sera assigné à TOUS les éléments de la liste pour la sous-variable en question.  
 
  
 
:: - '''Le retrait d'un élément dans une liste''' : Si la variable ciblée par le traitement est fournie sous la syntaxe <code>LIST.remove</code> (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 <code>LIST.remove</code> (avec LIST une variable de type "Liste"), alors la SmartExpression fournie devra indiquer la clé de l'entrée à supprimer dans la liste.

Version du 21 avril 2022 à 21:56

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.