Check survey logic - Advanced/fr: Difference between revisions
From LimeSurvey Manual
Maren.fritz (talk | contribs) Created page with "*'''Texte<nowiki> [</nowiki> Aide] (Astuce)''' - affiche ce qui suit : **''Texte'' - le texte du groupe, de la question, de la sous-question ou de la réponse. Sa syntaxe est..." |
Maren.fritz (talk | contribs) Created page with "Les lignes sont codées par couleur comme suit : *'''Groupes''' - sont affichés avec un fond gris clair *'''Questions''' - sont affichés avec un fond vert clair *' « Sous..." |
||
Line 48: | Line 48: | ||
**''Attributs de la question'' - ceci affiche un tableau de tous les attributs de question pertinents pour cette question. Les attributs qui peuvent être des équations sont mis en évidence par la syntaxe afin que vous puissiez valider leur exactitude. | **''Attributs de la question'' - ceci affiche un tableau de tous les attributs de question pertinents pour cette question. Les attributs qui peuvent être des équations sont mis en évidence par la syntaxe afin que vous puissiez valider leur exactitude. | ||
Les lignes sont codées par couleur comme suit : | |||
*''' | *'''Groupes''' - sont affichés avec un fond gris clair | ||
*'''Questions''' - | *'''Questions''' - sont affichés avec un fond vert clair | ||
*' | *' « Sous-questions » - sont affichées sur un fond jaune pâle ! | ||
* | * » » Réponses » - sont affichées sur un fond blanc uni | ||
Answers have an additional attribute in the '''Relevance''' column: | Answers have an additional attribute in the '''Relevance''' column: |
Revision as of 09:21, 2 October 2023
Général
Une option importante qui vous aide à créer et à maintenir facilement des enquêtes complexes est « Vérifier la logique de l'enquête ».
Tout au long du développement et des tests de l'enquête, et avant de l'activer, il est très important de valider la logique de l'enquête. Cela est particulièrement vrai lorsque vous utilisez des équations complexes de pertinence, d'adaptation et de validation : vous devez être sûr que rien ne se brisera lorsque vous exécuterez l'enquête.
Cette fonctionnalité vous permet de valider rapidement l'exactitude de votre enquête, de vos groupes et de vos questions. Il est accessible à partir des options du menu de la barre supérieure situées sous les paramètres liés à l'enquête. Il est disponible via le menu Outils :
Comme vous pouvez le constater ci-dessus, vous pouvez exécuter cette option quatre fois, pour chaque langue utilisée dans une enquête.
Description
L'option « Vérifier la logique de l'enquête » affiche tout ce que vous avez spécifié pour chaque question et groupe (par exemple, nom, texte, aide, conditions/pertinence, règles de validation, valeurs par défaut, sous-questions, réponses) dans un format tabulaire pratique. Il met en évidence les erreurs et vous permet de cliquer sur les ID de question et de groupe (ou les variables utilisées dans les équations) pour ouvrir de nouveaux onglets de navigateur afin de modifier ces questions ou groupes. Cela facilite la modification rapide des erreurs et l'actualisation de la page de vérification logique pour confirmer l'exactitude de l'enquête avant de l'activer.
L'affichage est également conçu pour être lisible par les chercheurs et les promoteurs de l'étude afin qu'ils puissent valider l'exactitude de la conception et de la logique de l'enquête. La vérification de la logique de l'enquête met à jour le cache pour toutes les expressions utilisées dans une enquête active.
Il comprend les colonnes suivantes :
- # - affiche le nombre de séquences de groupes et de questions, en commençant par 0.
- Nom [ ID] - affiche le code de question pour le groupe/question/sous-question. Ces codes peuvent être utilisés comme variables dans expressions. ID est l'identifiant de la question (QID) ou l'identifiant du groupe (GID). Ce champ affiche également le type de question (par exemple, Choix multiple [M])).
- Pertinence [ Validation] (par défaut) - affiche les éléments suivants :
- Pertinence - l'équation de pertinence mise en évidence par la syntaxe pour la question ou le groupe. Si c'est toujours vrai (à afficher dans n'importe quel scénario), la valeur sera 1.
- Validation - ExpressionScript génère automatiquement le validation équation en fonction des attributs de question sélectionnés (par exemple, nombre min/max de réponses, valeurs de somme min/max/égales, valeurs individuelles min/max ou validation d'expression régulière). Cette section montre l'équation de validation générée afin que vous puissiez détecter s'il y a des erreurs (telles que des variables non définies).
- La validation au niveau de la question montre l'équation nécessaire pour vérifier les attributs de la question décrits ci-dessus
- **La validation au niveau de la sous-question montre l'équation nécessaire pour implémenter array_filter, array_filter_exclude et exclusive_option
- Default - si la question a une valeur par défaut, elle est affichée ici, avec une syntaxe mise en évidence (puisque la valeur par défaut pourrait être une expression).
- Texte [ Aide] (Astuce) - affiche ce qui suit :
- Texte - le texte du groupe, de la question, de la sous-question ou de la réponse. Sa syntaxe est mise en surbrillance pour afficher tous les tailoring intégrés, vous permettant ainsi de vérifier que vous avez déclaré toutes les variables que vous prévoyez d'utiliser dans la personnalisation.
- Aide - ceci affiche le texte d'aide pour la question, également mis en évidence par la syntaxe.
- Tip - cela montre l'astuce de validation générée en interne, basée sur les attributs de la question. Ce même conseil est utilisé dans tous les styles d'enquête, ainsi que dans les écrans d'enquête et de saisie de données imprimables.
- Attributs de la question - ceci affiche un tableau de tous les attributs de question pertinents pour cette question. Les attributs qui peuvent être des équations sont mis en évidence par la syntaxe afin que vous puissiez valider leur exactitude.
Les lignes sont codées par couleur comme suit :
- Groupes - sont affichés avec un fond gris clair
- Questions - sont affichés avec un fond vert clair
- ' « Sous-questions » - sont affichées sur un fond jaune pâle !
- » » Réponses » - sont affichées sur un fond blanc uni
Answers have an additional attribute in the Relevance column:
- Value - this is the default internal value used by calculations. If you are using Assessments, this will be the assessment value. Otherwise, this will be the same as the answer name.

Usage
At the top of the page, there is a summary message. If all is well, it will say "No syntax errors detected in this survey", or "This group" or "This question", "by itself, does not contain any syntax errors". If the opposite is true, it will say "X questions have syntax errors that need to be corrected".
Each question that has syntax errors gets the background of its leftmost column (i.e. #) color-coded red. Also, a warning stating the number of minimum errors of a question will be displayed under the Name [ID] column. The following errors are common:
- Undefined variable - if you have not defined all of your variables, or mistyped array_filter (or different sets of answer options for array_filter), then some of your validation questions will show errors. Undefined variables are shown in red text, boxed with a red line.
- Bad syntax - as you start to use relevance equations, you may use too many or too few parentheses. Such syntax problems are highlighted and boxed in red. If you hover the mouse over any such red-boxed text, a tool-tip will describe the error.
Colors in ExpressScript syntax
Conditions and equations are syntaxhighlighted to easier figure out what you are looking at:
- Green / Light Blue: A variable that references a question earlier in the survey
- Blue: A function
- Grey: A string expression
- Brown: A TOKEN expression (participant data)
- Black: Operator
Things to check:
- Purple: A variable that references a question later in the survey. Usually this is an error and needs to be checked.
- Red or red frame: A non-existing variable or reference to an earlier question or a syntax error - usually needs to be checked.
Undefined Variables
If undefined variables are used, the respective variable name will be color-coded in red and surrounded by a red line. If you hover your mouse over the variable name, it will say "undefined variable":



}}
Bad syntax
Most of the expression-related mistakes are related to bad syntax. This is related to the fact that survey administrators usually miss to add a curly bracket, to properly make use of parentheses, or they use expressions wrongly:


Here are many good examples on the usage of syntax highlighting.
Bad custom JavaScript
The JavaScript errors will also be highlighted in the survey logic check:

Speeding editing and validation
All of the syntax-highlighted text has tooltips embedded, which are clickable:
- Tooltips
- Functions - hovering the mouse lets you see the purpose and syntax definition of the function;
- Variable Names - hovering the mouse lets you see the position (group, question sequence), question text, and allowable answers for the question.
- Actions
- Variable Names - clicking on the variable name opens a new window that allows you to edit the question. This makes it easy to navigate and verify logic - simply keep clicking on variable names of relevance or validation criteria for the question to see where they come from and how they are used.
Examples
The following examples are taken from the ExpressionScript sample surveys. You can find screenshots of running surveys, explanations, and downloads on that page.
Body Mass Index
Here are screenshots of this example.
This is the question-reorder view of the Body Mass Index calculation. You can see the relevance equations for weight, height, and BMI under the Question column:

For a better survey overview, check the survey logic page:

This survey example is also a good example of nested if() statements to generate the "weightstatus".

Cascading logic
Here are screenshots of this example.
It shows the subquestion validation logic that is automatically generated when you use array_filter and array_filter_exclude. This example also shows how you can substitute the tailored "Other" value (the answer for Q02_other is Q01_other).

Q05 in this example shows simultaneous use of array_filter and array_filter_exclude on Q01 and Q02, respectively. This example demonstrates cascading array_filter capabilities. Note that one of the main reasons for showing the question and subquestion level validation criteria is to help ensure you have not made any typos in specifying the array_filter or array_filter_exclude variable names (or in case you use different variable names for your list of filtered subquestions). If you have such typos, all the invalid variable names will appear in red indicating that they are undefined, letting you quickly fix the problem.

Dynamic relevance
This example demonstrates dynamic cascading relevance logic to control display of question visibility. You can download this example here.
Also note that questions are displayed only if certain validation criteria are met. For example, if a person states that she has 2 kids, certain questions have to be filled in by the respondent (kid1 and kid2).

Group-level relevance
This example shows how group-level relevance appears in the logic check. Here are screenshots of the example described below.
As you can see, the group-level relevance equation (cohabs > 1 && p1_rel != "") appear in the grey Person 2 row for G-2.
You may also notice that all of the questions are mandatory. However, if the group is irrelevant, so are all its questions. As a result, those questions are only truly mandatory if the group is relevant.
You may also note that certain questions are displayed only if the answer to the previous question is not empty. You may see below that if p2_sex is not filled in, p2_name is not going to be displayed, even though it is a mandatory questions. The mandatory question p2_age is also not going to be displayed if p2_name is not filled in. These questions can be considered "conditionally mandatory".
Additionally, note that the tip messages are also automatically created for you. They are organized by value range (min/max), sum value range (min/max/equals), number of answers (min/max), etc (it depends on the used question type and active attributes). Sometimes you want to validate an answer range but don't want to display what might appear to be silly validation tips to the user. In such cases, you can use the hide_tip question option (as in this case, to avoid telling the user that the age must be between 0 and 115 unless they try to enter a bad value - see p2_age).

Comma as radix (decimal) separator
Although LimeSurvey fully supports the use of comma as radix (decimal) separator at run-time, you must still use a decimal as the radix separator at the design-time (e.g., when specifying min/max values in advanced question attributes). The working example can be found here.
Also, remember that the validation logic is created for you automatically from the enabled question attributes. The equations may look overwhelming, but you don't need to worry about them.
