Zum Inhalt

KoboToolbox Node#

Verwenden Sie den KoboToolbox-Node, um die Arbeit in KoboToolbox zu automatisieren und KoboToolbox in andere Anwendungen zu integrieren. Localmind Automate bietet integrierte Unterstützung für eine breite Palette von KoboToolbox-Funktionen, einschließlich Erstellen, Aktualisieren, Löschen und Abrufen von Dateien, Formularen, Hooks und Übermittlungen.

Auf dieser Seite finden Sie eine Liste der Operationen, die der KoboToolbox-Node unterstützt, und Links zu weiteren Ressourcen.

Anmeldedaten

Informationen zum Einrichten der Authentifizierung finden Sie unter KoboToolbox-Anmeldedaten.

Operationen#

  • Datei
    • Erstellen
    • Löschen
    • Abrufen
    • Viele abrufen
  • Formular
    • Abrufen
    • Viele abrufen
      • Neu bereitstellen
  • Hook
    • Abrufen
    • Viele abrufen
    • Protokolle
    • Alle wiederholen
    • Einzeln wiederholen
  • Übermittlung
    • Löschen
    • Abrufen
    • Viele abrufen
    • Validierungsstatus abrufen
    • Validierungsstatus aktualisieren

Optionen#

Abfrageoptionen#

Die Operation "Übermittlung abfragen" unterstützt Abfrageoptionen:

  • Im Hauptbereich des Parameter-Panels:
    • Start steuert den Index-Offset, ab dem die Abfrage gestartet werden soll (um die API-Paginierungslogik zu verwenden).
    • Limit legt die maximale Anzahl der zurückzugebenden Datensätze fest. Beachten Sie, dass die API immer eine Beschränkung von 30.000 zurückgegebenen Datensätzen hat, unabhängig vom angegebenen Wert.
  • Im Abschnitt Abfrageoptionen können Sie die folgenden Parameter aktivieren:
    • Query ermöglicht es Ihnen, Filterprädikate im JSON-Abfrageformat von MongoDB anzugeben. Zum Beispiel: {"status": "success", "_submission_time": {"$lt": "2021-11-01T01:02:03"}} fragt alle Übermittlungen mit dem Wert success für das Feld status ab, die vor dem 1. November 2021, 01:02:03 übermittelt wurden.
    • Fields ermöglicht es Ihnen, die Liste der Felder anzugeben, die Sie abrufen möchten, um die Antwort leichter zu machen.
    • Sort ermöglicht es Ihnen, eine Liste von Sortierkriterien im MongoDB-JSON-Format anzugeben. Zum Beispiel gibt {"status": 1, "_submission_time": -1} eine Sortierreihenfolge nach aufsteigendem Status und dann nach absteigender Übermittlungszeit an.

Weitere Details zu diesen Optionen finden Sie in der Formhub-API-Dokumentation.

Übermittlungsoptionen#

Alle Operationen, die Formularübermittlungsdaten zurückgeben, bieten Optionen zur Optimierung der Antwort. Diese beinhalten:

  • Mit den Download-Optionen können Sie alle Anhänge herunterladen, die mit den einzelnen Formularübermittlungen verknüpft sind, z. B. Bilder und Videos. Sie können auch das Benennungsmuster und die herunterzuladende Dateigröße auswählen (falls verfügbar - typischerweise für Bilder).
  • Formatierungsoptionen führen einige Neuformatierungen durch, wie unter Über Neuformatierung beschrieben.

Über Neuformatierung#

Das Standard-JSON-Format für KoboToolbox-Übermittlungsdaten ist manchmal schwer zu handhaben, da es nicht schema-aware ist und alle Felder daher als Zeichenketten zurückgegeben werden.

Dieser Node bietet eine einfache, meinungsstarke Neuformatierungslogik, die mit dem Parameter Neu formatieren? aktiviert wird und für alle Operationen verfügbar ist, die Formularübermittlungen zurückgeben: die Übermittlungsabfrage, das Abrufen und die Operationen zum Herunterladen von Anhängen.

Wenn die Neuformatierung aktiviert ist:

  • Organisiert das JSON in eine mehrstufige Hierarchie, die den Gruppen des Formulars folgt. Standardmäßig wird die Hierarchie der Fragen Gruppierung durch ein / Zeichen in den Feldnamen materialisiert, zum Beispiel Group1/Question1. Wenn die Neuformatierung aktiviert ist, organisiert Localmind Automate diese in Group1.Question1 als verschachtelte JSON-Objekte.
  • Benennt Felder um, um _ zu entfernen (wird von vielen nachgeschalteten Systemen nicht unterstützt).
  • Analysiert alle räumlichen Felder (Fragetypen Punkt, Linie und Fläche) in ihr Standard-GeoJSON-Äquivalent.
  • Teilt alle Felder, die mit einer der Platzhaltermasken für Mehrfachauswahl-Maske übereinstimmen, in ein Array auf. Da die Mehrfachauswahlfelder als durch Leerzeichen getrennte Zeichenketten erscheinen, können sie nicht algorithmisch erraten werden, daher müssen Sie eine Feldnamenmaske angeben. Formatieren Sie die Masken als kommagetrennte Liste. Listen unterstützen den Platzhalter *.
  • Konvertiert alle Felder, die mit einer der Platzhaltermasken Zahlenmaske übereinstimmen, in eine JSON-Gleitkommazahl.

Hier ist ein detailliertes Beispiel im JSON-Format:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "_id": 471987,
  "formhub/uuid": "189436bb09a54957bfcc798e338b54d6",
  "start": "2021-12-05T16:13:38.527+02:00",
  "end": "2021-12-05T16:15:33.407+02:00",
  "Field_Details/Field_Name": "Test Fields",
  "Field_Details/Field_Location": "-1.932914 30.078211 1421 165",
  "Field_Details/Field_Shape": "-1.932914 30.078211 1421 165;-1.933011 30.078085 0 0;-1.933257 30.078004 0 0;-1.933338 30.078197 0 0;-1.933107 30.078299 0 0;-1.932914 30.078211 1421 165",
  "Field_Details/Crops_Grown": "maize beans avocado",
  "Field_Details/Field_Size_sqm": "2300",
  "__version__": "veGcULpqP6JNFKRJbbMvMs",
  "meta/instanceID": "uuid:2356cbbe-c1fd-414d-85c8-84f33e92618a",
  "_xform_id_string": "ajXVJpBkTD5tB4Nu9QXpgm",
  "_uuid": "2356cbbe-c1fd-414d-85c8-84f33e92618a",
  "_attachments": [],
  "_status": "submitted_via_web",
  "_geolocation": [
    -1.932914,
    30.078211
  ],
  "_submission_time": "2021-12-05T14:15:44",
  "_tags": [],
  "_notes": [],
  "_validation_status": {},
  "_submitted_by": null
}

Wenn die Neuformatierung aktiviert ist und die entsprechenden Masken für die Mehrfachauswahl- und Zahlenformatierung (z. B. Crops_* bzw. *_sqm), analysiert Localmind Automate sie in:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{
  "id": 471987,
  "formhub": {
    "uuid": "189436bb09a54957bfcc798e338b54d6"
  },
  "start": "2021-12-05T16:13:38.527+02:00",
  "end": "2021-12-05T16:15:33.407+02:00",
  "Field_Details": {
    "Field_Name": "Test Fields",
    "Field_Location": {
      "lat": -1.932914,
      "lon": 30.078211
    },
    "Field_Shape": {
      "type": "polygon",
      "coordinates": [
        {
          "lat": -1.932914,
          "lon": 30.078211
        },
        {
          "lat": -1.933011,
          "lon": 30.078085
        },
        {
          "lat": -1.933257,
          "lon": 30.078004
        },
        {
          "lat": -1.933338,
          "lon": 30.078197
        },
        {
          "lat": -1.933107,
          "lon": 30.078299
        },
        {
          "lat": -1.932914,
          "lon": 30.078211
        }
      ]
    },
    "Crops_Grown": [
      "maize",
      "beans",
      "avocado"
    ],
    "Field_Size_sqm": 2300
  },
  "version": "veGcULpqP6JNFKRJbbMvMs",
  "meta": {
    "instanceID": "uuid:2356cbbe-c1fd-414d-85c8-84f33e92618a"
  },
  "xform_id_string": "ajXVJpBkTD5tB4Nu9QXpgm",
  "uuid": "2356cbbe-c1fd-414d-85c8-84f33e92618a",
  "attachments": [],
  "status": "submitted_via_web",
  "geolocation": {
    "lat": -1.932914,
    "lon": 30.078211
  },
  "submission_time": "2021-12-05T14:15:44",
  "tags": [],
  "notes": [],
  "validation_status": {},
  "submitted_by": null
}

What to do if your operation isn't supported#

If this node doesn't support the operation you want to do, you can use the HTTP Request node to call the service's API.

You can use the credential you created for this service in the HTTP Request node:

  1. In the HTTP Request node, select Authentication > Predefined Credential Type.
  2. Select the service you want to connect to.
  3. Select your credential.

Refer to Custom API operations for more information.