Les contrôles de formats sont désormais portés par le modèle (Eno les ajoute à partir des métadonnées décrites dans Pogues. Exemple : min, max, nombre de décimales).
Les contrôles de format (standardisés) sont les suivants :
Pour les nombres : vérification du nombre de décimales et des bornes
Pour les dates : vérification des bornes
Un typage de contrôle typeOfControl a été ajouté. Les valeurs possibles sont :
FORMAT (contrôle de format ajouté par Eno non modifiable)
CONSISTENCY (contrôle métier saisi dans Pogues)
Exemple :
Lunatic V2 :
"controls" :
[
{ "id" : "k5nw0w05-format-borne-inf-sup",
"typeOfControl" : "FORMAT",
"criticality" : "ERROR",
"control" :
{ "value" : "not(not(isnull(DURATIONH)) and (0.00>DURATIONH or 70.00<DURATIONH))",
"type" : "VTL" },
"errorMessage" :
{ "value" : "\" La valeur doit être comprise entre 0.00 et 70.00.\"",
"type" : "VTL|MD" } },
{ "id" : "k5nw0w05-format-decimal",
"typeOfControl" : "FORMAT",
"criticality" : "ERROR",
"control" :
{ "value" : "not(not(isnull(DURATIONH)) and round(DURATIONH,2)<>DURATIONH)",
"type" : "VTL" },
"errorMessage" :
{ "value" : "\"Le nombre doit comporter au maximum 2 chiffre(s) après la virgule.\"",
"type" : "VTL|MD" } }
Ajout d'un type pour les objets pouvant contenir du texte ou des formules VTL
Tous les objets pouvant contenir du texte et du VTL (de type label, control, errorMessage, expression, conditionFilter, iterations, min et max des "lines" des Loop) passent de string ou value à un duo type/value.
Les type permettront à terme la valorisation par STRING, VTL, MD, VTL|MD.
Cela a été mis en place afin de remédier aux exécutions inutiles VTL ou markdown.
(Pas encore mis en oeuvre côté lib. A utiliser VTL et VTL|MD)
Exemple :
Lunatic V1 :
"label": "Hello"
Lunatic V2 :
"label": {
"value": "Hello",
"type": "VTL|MD"
}
Bloc cleaning à la racine
Ce nouveau bloc ajouté à la racine du json Lunatic sert à gérer le “vidage” des variables sans objet (ie appartenant à des questions non filtrées puis filtrées).
Ce bloc se présente comme la liste des variables dépendant d'une variable sur laquelle porte un filtre. L'expression de la condition du filtre (et donc du maintien de la variable) est donnée.
Exemple : Ici un filtre dépend d'une variable : si COCHECASE = true, alors les questions dont les variables sont TABLEAU2A41, TABLEAU2A42, BOOLEN et UNITD s'affichent.
Ce block résume les liens entre response et missing response
Block resizing à la racine
Ce nouveau bloc ajouté à la racine permet de "retailler des vecteurs de boucle en fonction de ce qui instancie ces boucles (vecteur ou itération).
Il se présente comme une liste de variables permettant de calculer une taille de boucle et pour chacune, la liste des variables impactées et la longueur effective.
L'étape json-cleaner a été mise à jour pour prendre en compte les nouveautés . Pour rappel, cette étape technique permet de "nettoyer" le XML pour obtenir ce que l'on souhaite en Json lorsque c'est non modélisable en XSD ou pas exactement ce qu'il y a dans le XML.
Contrôles
Les contrôles de formats sont désormais portés par le modèle (Eno les ajoute à partir des métadonnées décrites dans Pogues. Exemple : min, max, nombre de décimales). Les contrôles de format (standardisés) sont les suivants :
Un typage de contrôle
typeOfControl
a été ajouté. Les valeurs possibles sont :FORMAT
(contrôle de format ajouté par Eno non modifiable)CONSISTENCY
(contrôle métier saisi dans Pogues)Exemple :
Lunatic V2 :
Ajout d'un type pour les objets pouvant contenir du texte ou des formules VTL
Tous les objets pouvant contenir du texte et du VTL (de type
label
,control
,errorMessage
,expression
,conditionFilter
,iterations
,min
etmax
des "lines" des Loop) passent destring
ouvalue
à un duotype/value
.Les type permettront à terme la valorisation par
STRING
,VTL
,MD
,VTL|MD
. Cela a été mis en place afin de remédier aux exécutions inutiles VTL ou markdown. (Pas encore mis en oeuvre côté lib. A utiliserVTL
etVTL|MD
)Exemple :
Lunatic V1 :
Lunatic V2 :
Bloc
cleaning
à la racineCe nouveau bloc ajouté à la racine du json Lunatic sert à gérer le “vidage” des variables sans objet (ie appartenant à des questions non filtrées puis filtrées).
Ce bloc se présente comme la liste des variables dépendant d'une variable sur laquelle porte un filtre. L'expression de la condition du filtre (et donc du maintien de la variable) est donnée.
Exemple : Ici un filtre dépend d'une variable : si
COCHECASE = true
, alors les questions dont les variables sontTABLEAU2A41
,TABLEAU2A42
,BOOLEN
etUNITD
s'affichent.Exemple :
Lunatic V2
Block
missingBlock
à la racineCe block résume les liens entre response et missing response
Block
resizing
à la racineCe nouveau bloc ajouté à la racine permet de "retailler des vecteurs de boucle en fonction de ce qui instancie ces boucles (vecteur ou itération).
Il se présente comme une liste de variables permettant de calculer une taille de boucle et pour chacune, la liste des variables impactées et la longueur effective.
Exemple :
Lunatic V2 :
Tableau
Pour les
Table
, plus un unique parentcells
contenant au début desheaderCell
le cas échéant mais un découpageheader
etbody
.Exemple :
Lunatic V1
Lunatic V2
Variables
Disparition de l'attribut
componentRef
Exemple :
Lunatic V1
Lunatic V2
Changement dans la lib Lunatic-model
L'étape json-cleaner a été mise à jour pour prendre en compte les nouveautés . Pour rappel, cette étape technique permet de "nettoyer" le XML pour obtenir ce que l'on souhaite en Json lorsque c'est non modélisable en XSD ou pas exactement ce qu'il y a dans le XML.