0 votes
in SoSci Survey (dt.) by s124155 (295 points)

Moin zusammen,

wir stolpern aktuell über folgendes Problem bei unseren Fargebögen.

Wir haben eine lineare Bearbeitung von Fragebögen, die bei Vollendung eine interne Variable auf 1 setzen wenn sie bearbeitet wurden. Über mehrere Fragebögen hinweg werden die Teilnehmer*innen durch eine REF eineindeutig identifiziert. Diese REF wird zufällig generiert, und ist 14 Zeichen lang (z.B. 8ed589ghok5t7u, 4c10fc1acaaf32, 9f96d1b3e06d7a [Alles problematische IDs, s.u.]

Wir überprüfen den Fortschritt der einzelnen Teilnehmer*innen durch den Aufruf der statistic()-Funktion, z.B.:

$ref = reference();
$n = statistic('filter', false, '(REF == "'.$ref.'") AND (QUESTNNR == "test")');
$numFach = intval(statistic('max', 'ED01_05'));

Bei Verwendung von 9f als führende Zeichen ergeben sich folgende Daten:

Diagnostik:
REF: 9fISTHISSHITRL
NUMFACH: 1
NUMBE: 1
NUMFILTER: 1
CHECKFILTER:
FINALCheck: 1
NUMPRO: 0
NUMASI: 0
Filter: 1 

Bei 8e:

Diagnostik:
REF: 8eAMUSINGBEHAV
NUMFACH: 0
NUMBE: 0
NUMFILTER: 1
CHECKFILTER:
FINALCheck: 0
NUMPRO: 0
NUMASI: 0
Filter: 1

Dabei sind beide IDs frisch und sollten alle keine Werte aufweisen:

Diagnostik:
REF: te8eUSINGBEHAV
NUMFACH: 0
NUMBE: 0
NUMFILTER:
CHECKFILTER:
FINALCheck: 0
NUMPRO: 0
NUMASI: 0
Filter: 0

Soweit sind wir, dass wir vermuten, dass führenden zwei Zeichen problematisch sind (Hex-Werte). Ist das etwas was in der Funktion statistic() ein Problem ist? Oder ist das an einer anderen Stelle ein Problem?

Liebe Gruesse

1 Answer

+1 vote
by SoSci Survey (330k points)
selected by s124155
 
Best answer

Dabei sind beide IDs frisch und sollten alle keine Werte aufweisen

Ich kann nicht ganz ausschließen, dass die eingesetzte Vergleichsfunktion sich durch "scheinbar" numerische Werte aus dem Tritt hat bringen lassen.

In Ihrem Benutzerkonto scheint kein aktives Befragungsprojekt zu liegen, deshalb vermute ich, Sie arbeiten auf einem lokalen Befragungsserver?

Auf www.soscisurvey.de haben wir auf Ihre Frage hin ein Update eingespielt, welches bei der Filter-Funktion nochmal genauer zwischen numerischen Werten und Texten unterscheidet. Allerdings bin ich nicht ganz sicher, ob der Fehler tatsächlich im statistic() passiert oder bei der weiteren Bearbeitung.

Dabei sind beide IDs frisch und sollten alle keine Werte aufweisen

Wenn Sie mit Filter: 1 in der Ausgabe meinen, dass die Funktion statistic() den Wert 1 zurückgibt, dann ist ein Fehler in der bisherigen statistic()-Funktion zumindest naheliegend. Ansonsten müssten wir uns mal den weiteren Code ansehen.

Nur zur Sicherheit: Gibt es in Ihrem Datensatz einen Fall, wo in der Variable REF tatsächlich der Wert "9fISTHISSHITRL" gespeichert ist? Oder wird hier etwas als Referenz ausgewiesen, was von ganz anderer Stelle kommt? Das würde mir nämlich im Moment noch deutlich mehr Sorgen machen als das beschriebene Problem.

Für Sie erst einmal folgende Lösungsoptionen:

  • Wenn Sie auf www.soscisurvey.de arbeiten und ich das Projekt nur nicht zuordnen konnte, dann testen Sie bitte, ob das Problem behoben ist.
  • Wenn Sie auf einem eigenen Server arbeiten und ein Update in die Wege leiten können, dann schreiben Sie einen kurze E-Mail an info@soscisurvey.de, damit wir Ihnen das Update-Paket zukommen lassen.
  • Wenn Sie auf einem eigenen Server arbeiten und kein Update durchführen können, dann verwenden Sie bitte vorerst nur Referenzen, die nicht mit einem Zeichen zwischen 0 und F (hexdezimal) anfangen...
by s124155 (295 points)
Guten Morgen,

vielen Dank für die schnelle und ausführliche Hilfestellung.
Wir sind durch die ersten zwei Zeichen ausgegangen, dass diese eine Hex-Zahl darstellen und Probleme machen. Also haben wir diese durch Konstanten ersetzt. Statt der 14-elementigen ID haben wir somit eine 12-elementige ID, die zufällige gezogen ist. Beide werden gespeichert, eine davon in einer internen Variable
Das hatte dann zur Folge, dass der Fehler nicht mehr auftrat. Vor Fix etwa 1 aus 4 oder 5, danach keine Vorkommnisse mehr bei etwa 50 Probedurchgängen. Fix Nummer 3 funktioniert demnach für uns.

Bzgl. der Speicherung:
Vereinzelt hatten wir tatsächlich Daten mit den Ids, zumeist aber wurde nichts gespeichert. Das interessante war, wie oben beschrieben, dass bestimmte Hex-Werte zu unterschiedlichen Fortschritten des Fragebogens führten. Als dann bspw. '8e' als führende Zeichen verwendet wurde wurde nur der erste Fragebogen als ausgefüllt bewertet (numFilter = 1) und danach konnten wir einen Datensatz in der Datenbank sehen, der vom Folgefragebogen stammte.
Der zeigte nichts an, weil wir über das Maximum eines Datenfeldes überprüfen ob bestimmte Dinge ausgefüllt wurden und wie stark die Ausprägung war, sofern notwendig. Und wenn keine Daten vorliegen defaulted dieser Wert auf 0.
Interessanterweise wurde aber in der Rückmeldung die wir geschrieben hatten dann Werte angezeigt, die als korrekt gelöst wurden, obgleich wir keine Daten dazu hatten. Die Referenz wurde korrekt abgespeichert, und wenn wir Daten von anderen IDs hätten, dann wüsste ich nicht von welchen und auch nicht, wie diese so auszusehen hätten. Denn wenn wir korrekte Werte in der Rückmeldung haben, aber keine Bewertung dieser Werte, dann stimmt etwas nicht.

Bewertung von Fragen und deren Überprüfung auf Richtigkeit beschieht immer zusammen, d.h. wenn es von der einen Quelle etwas gibt, muss es auch von der anderen etwas geben.


Bzgl. dem Update informiere ich die entsprechende Stelle.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...