Zum Inhalt

Arbeitsablauf

Hier findest du ein typisches Setup mit einem Manager und einem Feldarbeiter als die zwei Hauptakteure, die mit QGIS bzw. QField interagieren.

sequenceDiagram
  autonumber

  actor Manager;
  actor Feldarbeiter;

  participant QGIS as QGIS (QFieldSync)
  participant QField
  participant API as QFieldCloud App

  Manager-->API: Projekt Vorbereitung
  activate Manager

  Manager->>QGIS: Hochladen neuer/aktualisierter Dateien in ein Projekt
  QGIS->>API: Upload QGIS Projektdateien
  note right of API: Fügt `process_projectfile` Job in die Warteschlange ein
  API->>QGIS: Rückgabe Erfolgsstatus

  Manager-->API: Feldarbeit Aktivitäten
  deactivate Manager
  activate Feldarbeiter

  Feldarbeiter->>QField: Öffnet QFieldCloud Projektliste

  QField->>API: Anfrage der Projektliste
  API->>QField: Ausgabe der Projektliste
  Feldarbeiter->>QField: Öffnet ein QFieldCloud-Projekt aus der Liste
  QField->>API: Anfrage ein Projektpaket zu erstellen
  note right of API: Erstellt einer neuen `Paket`-Erstellung
  API->>QField: Ausgabe der Daten aus der `Paket`-Erstellung

  QField->>QField: Warten auf das Ende der `Paket`-Erstellung

  QField->>API: Anfrage Projektdateien herunterzuladen
  API->>QField: Heruntergeladene Dateien

  QField->>QField: QField Projekt wird geöffnet

  Feldarbeiter->>QField: Ändert ein Objekt in einem Nicht-Online Layer
  QField->>QField: Speichert Objekt in der lokalen Datenquelle <br> und erzeugt ein Delta

  Feldarbeiter->>QField: Drückt "Änderungen vornehmen"
  QField->>API: Sendet die Deltas
  note right of API: Erzeugt einen neuen `apply_deltas` Vorgang
  API->>QField: Gibt die erzeugte `apply_deltas` Vorgangs-ID aus
  QField->>QField: Leert die lokalen Deltas <br> und wartet auf neue Veränderungen

  Manager-->API: Gesammelte Daten herunterladen
  deactivate Feldarbeiter
  activate Manager
  note over Manager, API: Warte einige Zeit, bis der Vorgang `apply_delta` beendet ist

  Manager->>QGIS: Gesammelte Daten herunterladen
  QGIS->>API: Projektdatenliste abrufen
  API->>QGIS: Ausgabe Projektdateienliste

  QGIS->>QGIS: Erkennt geänderte Dateien  <br> und schlägt eine Synchronisierung vor

  loop [Herunterladen veränderter Projektdateien]
    QGIS->>API: Anfrage Datei herunterzuladen
    API->>QGIS: Datei herunterladen
  end
  deactivate Manager