Treatment : Différence entre versions
Sauter à la navigation
Sauter à la recherche
Ligne 44 : | Ligne 44 : | ||
:: — <code>remove</code> '''Le retrait d'un élément dans une liste'''. Pour une variable de liste (Ex: EMPLOYÉS), ce type d'instruction permet de supprimer une entrée en fonction d'une clé fournie au travers de la SmartExpression. | :: — <code>remove</code> '''Le retrait d'un élément dans une liste'''. Pour une variable de liste (Ex: EMPLOYÉS), ce type d'instruction permet de supprimer une entrée en fonction d'une clé fournie au travers de la SmartExpression. | ||
:::: Si la SmartExpression renvoie une liste plate de clés, alors chacune des clés citée seront retirées (si elles existent dans la liste bien sûr). Cela permet d'effectuer une suppression "multiple". | :::: Si la SmartExpression renvoie une liste plate de clés, alors chacune des clés citée seront retirées (si elles existent dans la liste bien sûr). Cela permet d'effectuer une suppression "multiple". | ||
+ | :::: - Voir [[Media:Treat-ex-remove.png|exemple illustré]] (suppression). | ||
:: — <code>merge</code> '''La fusion d'une liste sur une autre liste'''. La variable ciblée, de type "liste", se verra fusionnée à la liste renvoyée par la SmartExpression. Les valeurs indiquées dans cette dernière viendront donc remplacer les valeurs existantes dans la liste ciblée. De plus, si une des deux listes contient des éléments que l'autre liste ne connait pas (identifiés par leurs clés), alors ils seront rajoutés au résultat. | :: — <code>merge</code> '''La fusion d'une liste sur une autre liste'''. La variable ciblée, de type "liste", se verra fusionnée à la liste renvoyée par la SmartExpression. Les valeurs indiquées dans cette dernière viendront donc remplacer les valeurs existantes dans la liste ciblée. De plus, si une des deux listes contient des éléments que l'autre liste ne connait pas (identifiés par leurs clés), alors ils seront rajoutés au résultat. | ||
:::: Dans le cas de listes structurées, il est bien entendu nécéssaire que les deux listes soient similaires au niveau des définitions de leurs sous-variables. En effet, si la liste 2 définie des sous-variables qui n'existent pas dans la liste 1, après la fusion, la liste 1 va se retrouver avec des variables qu'elle ne connait pas, et cela posera un problème d'intégrité résultant en une erreur (fusion nulle). | :::: Dans le cas de listes structurées, il est bien entendu nécéssaire que les deux listes soient similaires au niveau des définitions de leurs sous-variables. En effet, si la liste 2 définie des sous-variables qui n'existent pas dans la liste 1, après la fusion, la liste 1 va se retrouver avec des variables qu'elle ne connait pas, et cela posera un problème d'intégrité résultant en une erreur (fusion nulle). | ||
+ | ::: - Voir exemple illustré (@TODO). | ||
:: — <code>merge-through-key</code> '''La fusion d'une liste 1 sur une liste 2, au travers d'une clé spécifiée dans la liste 2'''. Très similaire à l'instruction de fusion précédente, ce type de traitement permet de spécifier la clé de fusion de chaque élément. | :: — <code>merge-through-key</code> '''La fusion d'une liste 1 sur une liste 2, au travers d'une clé spécifiée dans la liste 2'''. Très similaire à l'instruction de fusion précédente, ce type de traitement permet de spécifier la clé de fusion de chaque élément. | ||
:::: La clé de fusion est indiquée avec la syntaxe <code>through key SUBVAR</code>, où <code>SUBVAR</code> est une sous-variable de la liste 2, ayant pour valeur une clé de la liste 1. Ce type de fusion est particulièrement utile dans le cas d'une mise à jour ciblée des éléments d'une liste. | :::: La clé de fusion est indiquée avec la syntaxe <code>through key SUBVAR</code>, où <code>SUBVAR</code> est une sous-variable de la liste 2, ayant pour valeur une clé de la liste 1. Ce type de fusion est particulièrement utile dans le cas d'une mise à jour ciblée des éléments d'une liste. | ||
+ | :::: - Voir [[Media:Treat-ex-merge-through-key.png|exemple illustré]] (exemple avec cumul de traitement). |
Version du 22 avril 2022 à 02:19
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'instructions de traitement
Il existe plusieurs "types" d'instructions 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).- - Voir exemple illustré n°1.
- - Voir exemple illustré n°2.
- —
- —
unset
Forcer à null la valeur d'une variable. À l'inverse de l'instruction précédente, cette instruction permet de "vider" la valeur de la variable spécifiée. Si cette instruction est appliquée sur une variable de type "liste" alors la liste sera vidée de tous ses éléments (sous-variables etc.).- - Voir exemple illustré.
- —
- —
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 (Ex: EMPLOYÉS.DATE_ENTRÉE).- - Voir exemple illustré n°1.
- - Voir exemple illustré n°2.
- —
- —
add-in-list
. L'ajout ou la mise à jour d'un élément spécifique dans une liste. Pour une variable de liste (Ex: EMPLOYÉS), ce type d'instruction permet d'ajouter une nouvelle entrée dans la liste et de définir sa valeur et celle de toutes ses potentielles sous-variables.
- —
- Par défaut, si aucune clé n'est définie, un nouvel élément est rajouté dans la liste.
- Si une SmartExpression est fournie, et que sa valeur correspond à la clé d'un élément existant de la liste, alors cet élément sera ciblé et mis-à-jour au lieu qu'un nouvel élément soit rajouté à la fin de la liste.
- Dans le cas d'une Liste Structurée (ex: EMPLOYÉS), les lignes suivantes dans la table permettront de définir la valeur à assigner aux sous-variables. Elles seront indiquée sous une forme simplifiée, sans re-citer la variable de liste, et donc reconnaissable car débutant par un "." (ex:
.DATE_ENTRÉE
pour définir la valeur deEMPLOYÉ.DATE_ENTRÉE
).
- Dans le cas d'une Liste Structurée (ex: EMPLOYÉS), les lignes suivantes dans la table permettront de définir la valeur à assigner aux sous-variables. Elles seront indiquée sous une forme simplifiée, sans re-citer la variable de liste, et donc reconnaissable car débutant par un "." (ex:
- Dans le cas d'une Liste Plate (ex: LIST_COULEURS), qui n'a pas de sous-variables par nature, il faudra utiliser la syntaxe
._VALUE
pour définir la valeur à rajouter dans la liste.
- Dans le cas d'une Liste Plate (ex: LIST_COULEURS), qui n'a pas de sous-variables par nature, il faudra utiliser la syntaxe
- - Voir exemple illustré n°1 (ajout).
- - Voir exemple illustré n°2 (remplacement).
- - Voir (@TODO) (ajout liste plate).
- —
remove
Le retrait d'un élément dans une liste. Pour une variable de liste (Ex: EMPLOYÉS), ce type d'instruction permet de supprimer une entrée en fonction d'une clé fournie au travers de la SmartExpression.- Si la SmartExpression renvoie une liste plate de clés, alors chacune des clés citée seront retirées (si elles existent dans la liste bien sûr). Cela permet d'effectuer une suppression "multiple".
- - Voir exemple illustré (suppression).
- —
- —
merge
La fusion d'une liste sur une autre liste. La variable ciblée, de type "liste", se verra fusionnée à la liste renvoyée par la SmartExpression. Les valeurs indiquées dans cette dernière viendront donc remplacer les valeurs existantes dans la liste ciblée. De plus, si une des deux listes contient des éléments que l'autre liste ne connait pas (identifiés par leurs clés), alors ils seront rajoutés au résultat.- Dans le cas de listes structurées, il est bien entendu nécéssaire que les deux listes soient similaires au niveau des définitions de leurs sous-variables. En effet, si la liste 2 définie des sous-variables qui n'existent pas dans la liste 1, après la fusion, la liste 1 va se retrouver avec des variables qu'elle ne connait pas, et cela posera un problème d'intégrité résultant en une erreur (fusion nulle).
- - Voir exemple illustré (@TODO).
- —
- —
merge-through-key
La fusion d'une liste 1 sur une liste 2, au travers d'une clé spécifiée dans la liste 2. Très similaire à l'instruction de fusion précédente, ce type de traitement permet de spécifier la clé de fusion de chaque élément.- La clé de fusion est indiquée avec la syntaxe
through key SUBVAR
, oùSUBVAR
est une sous-variable de la liste 2, ayant pour valeur une clé de la liste 1. Ce type de fusion est particulièrement utile dans le cas d'une mise à jour ciblée des éléments d'une liste. - - Voir exemple illustré (exemple avec cumul de traitement).
- La clé de fusion est indiquée avec la syntaxe
- —