0 votes
in SoSci Survey (dt.) by s109993 (12.0k points)

Hallo zusammen,

ich wollte einmal in die Runde fragen, ob jemand schon einmal Textscrapping von einem SoSci Account gemacht hat. Da ich sehr viele Projekte am laufen habe, würde ich gerne eine Excel Übersicht erstellen, welche sich quasi den Namen des Projekts, den Zeitraum und die URL automatisch holt und bei Änderungen eben auch aktualisiert. Also eine sich-selbst-aktualisierende Excel Tabelle eben.

Hat jemand schonmal etwas in diese Richtung gemacht?

1 Answer

0 votes
by SoSci Survey (327k points)

Wir planen seit längerem, dass wir auch API-Zugang auf Benutzer-Level anbieten, und nicht nur auf Projekt-Level für einzelne Funktionen. Eine Liste aller Projekte mit den o.g. Infos scheint mir da eigentlich nicht so abwegig.

Es kommt ein wenig darauf an, über welchen Zeithorizont wir sprechen. Jetzt muss erst einmal die Version 3.5.00 offiziell freigegeben werden ...

by s109993 (12.0k points)
edited by s109993
Da wir also Orga nicht  planen, von SoSci auf ein anderes Tool umzusteigen, ist der Zeithorizont erstmal nicht so wichtig :) Ist auch eher ein Feature für User mit unserer Projektanzahl und daher ein "nice-to-have". Wenn ich Zeit habe, versuche ich mich auch mal daran, theoretisch sollte das nicht so kompliziert sein. Aber wäre natürlich top, wenn das als eigenständiges Feature von SoSci angeboten werden würde- würde uns viel Arbeit abnehmen :)
by SoSci Survey (327k points)
Erzählen Sie mir gerne ein wenig zum Use Case ... dann kann ich das in die Implementierung einfließen lassen. Oder vielleicht wäre ja auch einfach nur ein Schalter hilfreich, um die Projekte direkt in SoSci nach Laufzeit zu sortieren.
by s109993 (12.0k points)
wir haben sechs verschiedene SoSci Accounts, auf denen zwischen 5 und 30 Projekte liegen (online und offline). Wir brauchen quasi eine schnelle Möglichkeit zu überprüfen, welche Projekte auf welchen Accounts liegen. Da es verschiedene Verantwortlichkeiten für die verschiedenen Accounts gibt, ist das manuelle führen einer Liste etwas umständlich.

Was würde ich mir vorstellen?

- eine Excel Dokument
- Pro (Login/Benutzerkonto) ein Sheet im Excel Dokument
- im Tabellenformat wird dann angezeigt, welche Projekte in einem Login gerade angelegt sind: Spalte A: Name, Spalte B: URL, Spalte C: Zeitraum, Spalte D:Notizen
- die Informationen werden eigenständig via API oder VBA Script in Excel geladen und aktualisiert

Das könnte zum Beispiel über den Admin Login gemacht werden oder eine Option bei dem jeweiligen Benutzerkonto geben.
by SoSci Survey (327k points)
Sprechen wir von www.soscisurvey.de oder von einem lokalen Server? Ich frage, weil Sie "Admin Login" schreiben. Denn wenn Sie ohnehin auf einem lokalen Server arbeiten, können Sie die besagte Liste ja direkt aus der Datenbank holen:

SELECT * FROM sosci_projects WHERE (packed="no")

... oder so ähnlich. Wenn man sich mit HeidiSQL zur Datenbank verbindet, kann man das direkt so laufen lassen.

Für den Abruf via SoSci Survey bräuchte man zumindest einen API-Aufruf pro Benutzerkonto. Für den Admin würde ich erstmal keinen API-Schlüssel vorsehen.
by s109993 (12.0k points)
Wir arbeiten auf einem lokalen Server. Da muss ich einmal mit unserem IT-Team reden, ob und wie ich auf die Datenbank zugreifen kann.
by s109993 (12.0k points)
So, endlich Zeit dieses Projekt voranzutreiben. Ich habe jetzt die Tabelle "sosci_projects" mit SELECT * FROM sosci_projects WHERE (packed="no") geladen.

drei Fragen dazu:

- was genau verbirgt sich hinter der Spalte "packed"?

- Und wir haben mehrere Accounts. In der tabelle sosci_projects werden alle Projekte von allen Accounts angezeigt. Gibts es irgendwo eine Tabelle/Variable, mit der ich die Projekte den ver. Accounts zuordnen kann?

-Und drittens, sind in der Tabelle sosci_projects nur Projekte, die momentan noch in einem Account angelegt sind? Wie könnte ich diese Filtern zu "nur Prokekte die momentan "online" sind? Wäre das WHERE phase = "survey"?
by SoSci Survey (327k points)
> was genau verbirgt sich hinter der Spalte "packed"?

Das ist eine dichotome Variable, ob das Projekt archiviert wurde. Bei der Archivierung werden alle Daten zum Projekt (außer dem Projekt-Eintrag selbst) aus der Datenbank gelöscht, und der Fragebogen wird als XML-Datei auf dem Server abgelegt.

> Und wir haben mehrere Accounts. In der tabelle sosci_projects werden alle Projekte von allen Accounts angezeigt. Gibts es irgendwo eine Tabelle/Variable, mit der ich die Projekte den ver. Accounts zuordnen kann?

Das läuft über die Tabelle sosci_authorisation, ein Projekt kann einem oder mehreren Benutzerkonten zugeordnet sein. Sie Spalte "owner" bezeichnet hier die Projektleitung.

>Und drittens, sind in der Tabelle sosci_projects nur Projekte, die momentan noch in einem Account angelegt sind? Wie könnte ich diese Filtern zu "nur Prokekte die momentan "online" sind? Wäre das WHERE phase = "survey"?

Die Variable "phase" wird nur aktualisiert, wenn sich die Person zwischendurch eingeloggt hat (glaube ich). Sicherer ist die Verwendung von (field_time_ending > NOW()).
by s109993 (12.0k points)
Danke sehr, wede ich morgen ausprobieren! :)
by s109993 (12.0k points)
den Teil habe ich nicht ganz verstanden:

"Das läuft über die Tabelle sosci_authorisation, ein Projekt kann einem oder mehreren Benutzerkonten zugeordnet sein. Sie Spalte "owner" bezeichnet hier die Projektleitung."

Es geht darum, dass wir ver. Benutzerkonten haben, auf denen jeweils einige Projekte sind. Nun hätte ich gerne eine Tabelle, mit der ich die aktiven Projekte den Benutzerkonten zuordnen kann.
by SoSci Survey (327k points)
Die Beziehung von Projekten und Benutzerkonten ist in der Datenbank-Spache eine n:m-Beziehung. Ein Benutzer kann mehrere Projekte haben, und ein Projekt kann mehrere Benutzer haben.

Mit einem JOIN zwischen projects und autorisations bekommen Sie alle Kombinationen aus Projekten und Benutzerkonten. Aber es können eben mehrere Benutzerkonten für ein Projekt freigeschaltet sein (https://www.soscisurvey.de/help/doku.php/de:general:authorization).

Wenn Sie noch (owner="yes") als Filter setzen, sollten Sie nur noch einen Benutzer pro Projekt bekommen. Ungefähr so:

SELECT p.*, a.id FROM sosci_projects p
LEFT JOIN sosci_authorisation a ON (p.id = a.project)
WHERE (p.packed="no") AND (a.owner="yes");
by s109993 (12.0k points)
Musste zwar ein Doppel Join machen, aber jetzt hat es geklappt :)
Vielen Dank!

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

...