Actions

Umfragelogik prüfen – Erweitert

From LimeSurvey Manual

This page is a translated version of the page Check survey logic - Advanced and the translation is 100% complete.


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])).


Template:Hinweis


  • 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 Validierungsgleichung basierend auf den ausgewählten Frageattributen (z. B. minimale/maximale Anzahl von Antworten, minimale/maximale/gleiche 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, zum Implementieren von array_filter, array_filter_exclude und exclusive_option
    • Standard – 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.


Template:Hinweis

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“ „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:

  1. Grün/Hellblau: Eine Variable, die auf eine frühere Frage in der Umfrage verweist
  2. Blau: Eine Funktion
  3. Grau: Ein String-Ausdruck
  4. Braun: Ein TOKEN-Ausdruck (Teilnehmerdaten)
  5. Schwarz: Operator

Zu prüfende Dinge:

  1. Lila: Eine Variable, die auf eine spätere Frage in der Umfrage verweist. Normalerweise ist dies ein Fehler und muss überprüft werden.
  2. 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:



  Achtung : Bitte beachten Sie, dass LimeSurvey es Umfrageadministratoren nicht erlaubt, Fragen zu erstellen, die denselben Fragencode verwenden. Allerdings kann es vorkommen, dass innerhalb einer Umfrage ähnliche Fragecodes vorhanden sind, wenn Sie eine Fragengruppe oder eine Frage importieren, die denselben Fragecode wie eine Ihrer bereits definierten Fragen verwendet. Die Frage kann weiterhin importiert werden, da die Fragen-IDs unterschiedlich sind. Wenn Sie jedoch die Umfrageergebnisse exportieren möchten, um die Umfrageergebnisse (R oder SPSS) weiter zu untersuchen, seien Sie vorsichtig, da der Fragecode als Variable betrachtet wird!



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 verwenden:



Hier finden Sie viele gute Beispiele für die Verwendung von Syntaxhervorhebung.


Fehlerhaftes benutzerdefiniertes JavaScript

Die JavaScript-Fehler werden auch bei der Umfragelogikprüfung hervorgehoben:


Beschleunigung der Bearbeitung und Validierung

In den gesamten syntaxhervorgehobenen Text sind Tooltips eingebettet, die anklickbar sind:

  1. Tooltips
    • Funktionen – wenn Sie mit der Maus darüber fahren, sehen Sie den Zweck und die Syntaxdefinition der Funktion;
    • Variablennamen – Wenn Sie mit der Maus darüber fahren, können Sie die Position (Gruppe, Fragenreihenfolge), den Fragetext und die zulässigen Antworten für die Frage sehen.
  2. Aktionen
    • Variablennamen – Durch Klicken auf den Variablennamen wird ein neues Fenster geöffnet, in dem Sie Folgendes tun können um die Frage zu bearbeiten. Dies erleichtert die Navigation und Überprüfung der Logik – klicken Sie einfach weiter auf die relevanten Variablennamen oder Validierungskriterien für die Frage, um zu sehen, woher sie kommen und wie sie verwendet werden.


Beispiele

Die folgenden Beispiele stammen aus den ExpressionScript-Beispielumfragen. Auf dieser Seite finden Sie Screenshots laufender Umfragen, Erklärungen und Downloads.


Body-Mass-Index

Hier sind Screenshots dieses Beispiels.

Dies ist die Frage-Neuordnungsansicht der Body-Mass-Index-Berechnung. Die Relevanzgleichungen für Gewicht, Größe und BMI finden Sie in der Spalte „Frage“:



Eine bessere Übersicht über die Umfrage finden Sie auf der Seite zur Umfragelogik:



Dieses Umfragebeispiel ist auch ein gutes Beispiel für verschachtelte if()-Anweisungen zur Generierung des „weightstatus“.


Kaskadierende Logik

Hier sind Screenshots dieses Beispiels.

Es zeigt die Unterfragen-Validierungslogik, die automatisch generiert wird, wenn Sie array_filter und array_filter_exclude verwenden. Dieses Beispiel zeigt auch, wie Sie den maßgeschneiderten Wert „Andere“ ersetzen können (die Antwort für Q02_andere ist Q01_andere).



Q05 zeigt in diesem Beispiel die gleichzeitige Verwendung von array_filter und array_filter_exclude auf Q01 bzw. Q02. Dieses Beispiel demonstriert kaskadierende array_filter-Funktionen. Beachten Sie, dass einer der Hauptgründe für die Anzeige der „Validierungskriterien“ auf Fragen- und Unterfragenebene darin besteht, sicherzustellen, dass Sie bei der Angabe der Variablennamen „array_filter“ oder „array_filter_exclude“ keine Tippfehler gemacht haben (oder falls Sie unterschiedliche Variablennamen für Ihre Liste der gefilterten Unterfragen verwenden). Wenn Sie solche Tippfehler haben, werden alle ungültigen Variablennamen in Rot angezeigt, was darauf hinweist, dass sie undefiniert sind, sodass Sie das Problem schnell beheben können.



Dynamische Relevanz

Dieses Beispiel demonstriert eine dynamische kaskadierende Relevanzlogik zur Steuerung der Anzeige der Sichtbarkeit von Fragen. Sie können dieses Beispiel hier herunterladen.

Beachten Sie außerdem, dass Fragen nur angezeigt werden, wenn bestimmte Validierungskriterien erfüllt sind. Wenn eine Person beispielsweise angibt, zwei Kinder zu haben, müssen bestimmte Fragen vom Befragten ausgefüllt werden (Kind1 und Kind2).


Relevanz auf Gruppenebene

Dieses Beispiel zeigt, wie die Relevanz auf Gruppenebene bei der Logikprüfung angezeigt wird. Hier sind Screenshots des unten beschriebenen Beispiels.

Wie Sie sehen können, erscheint die Relevanzgleichung auf Gruppenebene (cohabs > 1 && p1_rel != "") in der grauen Zeile „Person 2“ für G-2.

Möglicherweise stellen Sie auch fest, dass alle Fragen obligatorisch sind. Wenn die Gruppe jedoch irrelevant ist, sind es auch alle ihre Fragen. Daher sind diese Fragen nur dann wirklich obligatorisch, wenn die Gruppe relevant ist.

Beachten Sie möglicherweise auch, dass bestimmte Fragen nur angezeigt werden, wenn die Antwort auf die vorherige Frage nicht leer ist. Unten sehen Sie möglicherweise, dass p2_name nicht angezeigt wird, wenn p2_sex nicht ausgefüllt ist, obwohl es sich um eine Pflichtfrage handelt. Die Pflichtfrage p2_age wird ebenfalls nicht angezeigt, wenn p2_name nicht ausgefüllt ist. Diese Fragen können als „bedingt obligatorisch“ betrachtet werden.

Beachten Sie außerdem, dass auch die „Tipp“-Nachrichten automatisch für Sie erstellt werden. Sie sind nach Wertebereich (Min./Max.), Summenwertebereich (Min./Max./Gleich), Anzahl der Antworten (Min./Max.) usw. organisiert (dies hängt vom verwendeten Fragetyp und den aktiven Attributen ab). Manchmal möchten Sie einen Antwortbereich validieren, dem Benutzer aber keine möglicherweise albern erscheinenden Validierungstipps anzeigen. In solchen Fällen können Sie die Frageoption hide_tip verwenden (wie in diesem Fall, um dem Benutzer nicht mitzuteilen, dass das Alter zwischen 0 und 115 liegen muss, es sei denn, er versucht, einen falschen Wert einzugeben – siehe p2_age).


Komma als Basis-(Dezimal-)Trennzeichen

Obwohl LimeSurvey die Verwendung von Kommas als Basistrennzeichen (Dezimaltrennzeichen) zur Laufzeit vollständig unterstützt, müssen Sie zur Entwurfszeit immer noch eine Dezimalzahl als Basistrennzeichen verwenden (z. B. wenn Sie Min/Max-Werte in erweiterten Fragenattributen angeben). Das Arbeitsbeispiel kann hier gefunden sein.

Denken Sie außerdem daran, dass die „Validierungslogik“ automatisch aus den aktivierten Frageattributen für Sie erstellt wird. Die Gleichungen sehen vielleicht überwältigend aus, aber Sie brauchen sich darüber keine Sorgen zu machen.