Check survey logic - Advanced/de: Difference between revisions
From LimeSurvey Manual
Maren.fritz (talk | contribs) Created page with "==Fehlerhafte Syntax==" |
Maren.fritz (talk | contribs) Created page with "Die meisten ausdrucksbezogenen Fehler sind auf eine fehlerhafte Syntax zurückzuführen. Dies hängt damit zusammen, dass Umfrageadministratoren es in der Regel versäumen, ei..." |
||
Line 100: | Line 100: | ||
Die meisten ausdrucksbezogenen Fehler sind auf eine fehlerhafte Syntax zurückzuführen. Dies hängt damit zusammen, dass Umfrageadministratoren es in der Regel versäumen, eine geschweifte Klammer einzufügen, Klammern richtig zu verwenden oder Ausdrücke falsch zu verwenden: | |||
Revision as of 14:02, 3 August 2023
Allgemein
Eine wichtige Option, die Ihnen bei der Erstellung und einfachen Pflege komplexer Umfragen hilft, ist „Umfragelogik prüfen“.
Während der Entwicklung und dem Testen der Umfrage und vor ihrer Aktivierung ist es sehr wichtig, die Umfragelogik zu validieren. Dies gilt insbesondere dann, wenn Sie komplexe Relevanz-, Anpassungs- und Validierungsgleichungen verwenden – Sie müssen sicher sein, dass bei der Durchführung der Umfrage nichts kaputt geht.
Mit dieser Funktion können Sie die Genauigkeit Ihrer Umfrage, Gruppe(n) und Frage(n) schnell überprüfen. Der Zugriff erfolgt über die Menüoptionen in der oberen Leiste, die sich unter den umfragebezogenen Einstellungen befinden. Es ist über das Menü „Extras“ verfügbar:
Wie Sie oben sehen können, können Sie diese Option viermal für jede in einer Umfrage verwendete Sprache ausführen.
Beschreibung
Die Option „Umfragelogik prüfen“ zeigt alles, was Sie für jede Frage und Gruppe angegeben haben (z. B. Name, Text, Hilfe, Bedingungen/Relevanz, Validierungsregeln, Standardeinstellungen, Unterfragen, Antworten) in einem praktischen Tabellenformat an. Es hebt die Fehler hervor und ermöglicht Ihnen, auf die Fragen- und Gruppen-IDs (oder in Gleichungen verwendeten Variablen) zu klicken, um neue Browser-Registerkarten zu öffnen und diese Fragen oder Gruppen zu bearbeiten. Dadurch ist es einfach, etwaige Fehler schnell zu bearbeiten und die Logikprüfungsseite zu aktualisieren, um die Richtigkeit der Umfrage vor der Aktivierung zu bestätigen.
Die Anzeige ist außerdem so gestaltet, dass sie von Forschern und Studiensponsoren lesbar ist, damit sie die Genauigkeit des Umfragedesigns und der Umfragelogik überprüfen können. Durch die Überprüfung der Umfragelogik wird der Cache für alle Ausdrücke aktualisiert, die in einer aktiven Umfrage verwendet werden.
Es enthält die folgenden Spalten:
- # – zeigt die Anzahl der Gruppen- und Fragensequenzen an, beginnend bei 0.
- Name [ ID] – zeigt den Fragencode für die Gruppe/Frage/Unterfrage an. Diese Codes können als Variablen in Ausdrücke verwendet werden. ID ist die Frage-ID (QID) oder Gruppen-ID (GID). Dieses Feld zeigt auch den Fragetyp (z. B. Multiple Choice [M])).
- Relevanz [ Validierung] (Standard) – zeigt Folgendes an:
- Relevanz – die syntaxhervorgehobene Relevanzgleichung für die Frage oder Gruppe. Wenn es immer wahr ist (in jedem Szenario angezeigt werden soll), ist der Wert '1.
- Validierung – ExpressionScript generiert automatisch die Validierung Gleichung basierend auf den ausgewählten Frageattributen (z. B. minimale/maximale Anzahl von Antworten, minimale/maximale/gleich Summenwerte, minimale/maximale Einzelwerte oder Validierung regulärer Ausdrücke). In diesem Abschnitt wird die generierte Validierungsgleichung angezeigt, damit Sie erkennen können, ob Fehler vorliegen (z. B. undefinierte Variablen).
- Die Validierung auf Fragenebene zeigt die Gleichung, die zur Überprüfung der oben beschriebenen Fragenattribute erforderlich ist
- **Die Validierung auf Unterfrageebene zeigt die Gleichung an, die zum Implementieren von array_filter, array_filter_exclude und exclusive_option
- Standard erforderlich ist – Wenn die Frage einen Standardwert hat, wird dieser hier mit hervorgehobener Syntax angezeigt (da der Standardwert ein Ausdruck sein könnte).
- Text [ Hilfe] (Tipp) – zeigt Folgendes an:
- Text – der Text der Gruppe, Frage, Unterfrage oder Antwort. Es ist syntaxhervorgehoben, um alle eingebetteten tailoring anzuzeigen, sodass Sie überprüfen können, ob Sie alle Variablen deklariert haben, die Sie im Tailoring verwenden möchten.
- Hilfe – Dies zeigt den Hilfetext für die Frage, auch syntaktisch hervorgehoben.
- Tip – Dies zeigt den intern generierten Validierungstipp, basierend auf den Fragenattributen. Derselbe Tipp wird in allen Umfragestilen sowie in den druckbaren Umfrage- und Dateneingabebildschirmen verwendet.
- „Frageattribute“ – Hier wird eine Tabelle aller relevanten Frageattribute für diese Frage angezeigt. Attribute, bei denen es sich möglicherweise um Gleichungen handelt, werden syntaktisch hervorgehoben, sodass Sie ihre Genauigkeit überprüfen können.
Zeilen sind wie folgt farblich gekennzeichnet:
- Gruppen - werden mit einem hellgrauen Hintergrund angezeigt
- 'Fragen - werden mit einem hellgrünen Hintergrund angezeigt
- ' „Unterfragen“ – werden mit einem hellgelben Hintergrund angezeigt
- „“Antworten“ – werden mit einem einfachen weißen Hintergrund angezeigt
Antworten haben ein zusätzliches Attribut in der Spalte „Relevanz“:
- ‘‘Wert‘‘ – dies ist der standardmäßige interne Wert, der von Berechnungen verwendet wird. Wenn Sie Bewertungen verwenden, ist dies der Bewertungswert. Andernfalls ist dies derselbe wie der Antwortname.
Verwendung
Oben auf der Seite befindet sich eine zusammenfassende Meldung. Wenn alles in Ordnung ist, wird angezeigt: „In dieser Umfrage wurden keine Syntaxfehler festgestellt“ oder „Diese Gruppe“ oder „Diese Frage“ lautet „enthält selbst keine Syntaxfehler“. Wenn das Gegenteil der Fall ist, heißt es: „X Fragen weisen Syntaxfehler auf, die korrigiert werden müssen“.
Bei jeder Frage mit Syntaxfehlern wird der Hintergrund der Spalte ganz links (z. B. „#“) rot gefärbt. Außerdem wird in der Spalte „Name [ID]“ eine Warnung mit der Anzahl der Mindestfehler einer Frage angezeigt. Folgende Fehler kommen häufig vor:
- Undefinierte Variable – Wenn Sie nicht alle Ihre Variablen definiert oder array_filter (oder verschiedene Antwortoptionen für array_filter) falsch eingegeben haben, werden bei einigen Ihrer Validierungsfragen Fehler angezeigt . Undefinierte Variablen werden in rotem Text angezeigt und mit einer roten Linie umrahmt.
- Fehlerhafte Syntax – Wenn Sie mit der Verwendung von Relevanzgleichungen beginnen, verwenden Sie möglicherweise zu viele oder zu wenige Klammern. Solche Syntaxprobleme werden hervorgehoben und rot eingerahmt. Wenn Sie mit der Maus über einen solchen rot umrahmten Text fahren, wird der Fehler in einer QuickInfo beschrieben.
Farben in der ExpressScript-Syntax
Bedingungen und Gleichungen werden syntaktisch hervorgehoben, damit Sie leichter erkennen können, was Sie sehen:
- Grün/Hellblau: Eine Variable, die auf eine frühere Frage in der Umfrage verweist
- Blau : Eine Funktion
- Grau: Ein String-Ausdruck
- Braun: Ein TOKEN-Ausdruck (Teilnehmerdaten)
- Schwarz: Operator
Zu prüfende Dinge:
- Lila: Eine Variable, die auf a verweist Frage später in der Umfrage. Normalerweise ist dies ein Fehler und muss überprüft werden.
- Roter oder roter Rahmen: Eine nicht vorhandene Variable oder ein Verweis auf eine frühere Frage oder ein Syntaxfehler – muss normalerweise überprüft werden.
Undefinierte Variablen
Werden undefinierte Variablen verwendet, wird der jeweilige Variablenname rot farblich gekennzeichnet und von einer roten Linie umgeben. Wenn Sie mit der Maus über den Variablennamen fahren, wird „undefinierte Variable“ angezeigt:



}}
Fehlerhafte Syntax
Die meisten ausdrucksbezogenen Fehler sind auf eine fehlerhafte Syntax zurückzuführen. Dies hängt damit zusammen, dass Umfrageadministratoren es in der Regel versäumen, eine geschweifte Klammer einzufügen, Klammern richtig zu verwenden oder Ausdrücke falsch zu verwenden:


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.
