Hyppää sisältöön

Työt

QFieldCloudin työt suorittavat raskaan toiminnan projektitiedostojen ja QGIS-tasojen kanssa. Työt luodaan vastauksena tiettyihin käyttäjän toimiin.

Once a job is created, it is added to the project's job queue and waits for available QFieldCloud resources to run. At any given moment only one job can run per project. The rest of the queued jobs will perform in the same order as in they entered the queue.

Each job consists of one or more steps and each step is responsible for one self contained task on the project. QFieldCloud supports three predefined job workflows: process_projectfile, package and delta_apply.

Ajon aikana työt kirjoittavat lokiviestejä, jotka ovat saatavilla projektin työt-sivulla töille, jotka ovat saavuttaneet lopullisen tilan VALMIS tai EPÄONNISTUNUT.

Työpaikoilla on pääsy [projektin salaukset] (projects.md#secrets).

Note

Kaikki työt voidaan käynnistää QFieldCloud API:lla.

Warning

  • Mikä tahansa tällä sivulla kuvatuista triggerin olosuhteista saattaa muuttua ilman erillistä ilmoitusta.
  • Kaikkien töiden tulee valmistua 10 minuutin kuluessa tai ne johtavat aikakatkaisuvirheeseen ja lopetetaan.

Info

If you are looking for technical details how Jobs work, check the Job Queue documentation.

Työn tyypit

Käsittele projektitiedosto (process_projectfile) työ

The process project file job is used to extract details about the project configuration and project layers including QGIS version used, project CRS, layer CRS, layer names, layer validity etc. QFieldCloud validates the uploaded QGIS project file (.qgs/.qgz), as well as the supporting GeoPackages, TIFFs and other data source files. It also validates remote connections to PostGIS, WFS, WMS and other online data sources. QFieldCloud will open the project file in a QGIS instance on the server to extract all the necessary information.

Triggerit

Tämä työ käynnistyy aina, kun tiedosto ladataan QFieldCloudiin, ellei vähintään yksi seuraavista ehdoista täyty:

  • QGIS-projektitiedostoa (.qgs/.qgz) ei ole vielä ladattu.
  • The uploaded file is within the DCIM directory. Those files are assumed to be irrelevant to project validity.
  • Process_projectfile työ on jo ODOTUS-tilassa.

Vianetsintä

A process_projectfile job might result in FAILED status. Check the non-exhaustive list of causes below:

  • The uploaded QGIS project file (.qgs/.qgz) is unreadable, incomplete, broken or wrong. Try to reupload the QGIS project file.
  • QGIS is crashing after opening the project file.
  • Try to identify the layer that is causing the crash by removing one layer at a time from the project and reuploading the QGIS project file.

Note

Even if a process_projectfile job results in a SUCCESS status, it does not mean the project is properly configured. The SUCCESS status just states the project has been successfully opened and all the needed information has been extracted.

Paketti (package) työ

The package job converts a QGIS project to a QField project, the same way it is done on QGIS via QFieldSync. The package job will prepare all layers marked as "Offline editing" to a single GeoPackage.

Triggerit

This job is triggered every time the Download or Synchronize buttons are pressed on QField. Unless at least one of the following condition are valid:

  • Projekti ei ole koskaan suorittanut process_projectfile työtä, joka olisi johtanut ONNISTUI tilaan.
  • Package työ on jo ODOTTAA tilassa.
  • Projekti ei sisällä online-vektorikerroksia (PostGIS, WFS jne.), viimeisin package työn tulos oli ONNISTUI eikä tiedostolatauksia tai muutoslatauksia ollut.

Vianetsintä

A package job might result in FAILED status. Check the non-exhaustive list of causes below:

  • Projekti ei ole koskaan suorittanut process_projectfile työtä, joka olisi johtanut ONNISTUI tilaan.
  • Some of the project layers are inaccessible from QFieldCloud.
  • Make sure all files are uploaded and all credentials to online layers (PostGIS, WFS etc) are stored within the QGIS project file.

Delta apply (delta_apply) työ

Delta Apply -työt on vastuussa siitä, että kaikki työnnetyt QField-muutokset säilyvät.

Triggerit

This job is triggered every time a Synchronize or Push changes button is pressed on QField, or Apply pending changes button is pressed on the Changes project page. If any of the following condition are valid:

  • Projekti ei ole koskaan suorittanut process_projectfile työtä, joka olisi johtanut ONNISTUI tilaan.
  • Delta_apply työ on jo ODOTUS-tilassa.

Vianetsintä

A delta_apply job might result in FAILED status. Check the non-exhaustive list of causes below:

  • Ainakin yksi QGIS-projektissa käytetyistä online-tietokannoista (PostGIS/WFS) katkaisi yhteyden.
  • Projekti on liian suuri ja työ suoritus on epäonnistunut.
  • There are hidden files and directories within the project that are preventing the normal work of QFieldCloud.
  • Hidden files and directories are those starting with a leading dot (.).
Understanding conflicts delta_apply jobs

Conflicts can occur under the following conditions:

  1. Two or more users modify the geometry or a specific attribute of the same feature, starting from the same initial value but saving different values.
  2. A primary key is used more than once.

To minimize the risk of conflicts, follow these best practices:

  • Plan updates collaboratively - When updating features based on specific field conditions, assign each user a distinct set of features to edit.
  • Clear planning reduces overlap and potential conflicts.
  • Avoid modifying primary keys - Primary keys should be treated as immutable and configured to be read-only.
  • This ensures consistent identification of features and prevents accidental modifications.
  • Ensure unique primary keys - Use a truly unique primary key, such as a UUID (uuid()), to prevent conflicts and ensure data integrity.

By implementing these practices, you can significantly reduce the likelihood of conflicts and maintain consistent data.

How to resolve conflicts?

By default, QFieldCloud overwrites conflicts using a last wins policy (the latest patch of changes to the attribute(s) involved in the conflict replaces all earlier patches of changes to these attributes). Alternatively, admins can set a project's conflict resolution policy to manual. Doing so will require the project manager to manually resolve conflicts, picking those to be applied to the project.

  1. Navigate to the "Changes" section.
  2. Filter the changes with the "CONFLICT" status.
  3. For each conflicted change, select it and set the status to "Re-apply" from the "Action" dropdown menu, alternatively if all the new changes are in conflict you can choose in the last conflicted change and select "Re-apply this and newer changes".
  4. Check the details of changes in the conflict and click "Save All" at the end of the page.

Re-apply changes in QFieldCloud
  1. Click on the project's name under My projects.
  2. Go to the Changes section. (Changes are sorted from latest to oldest)
  3. Find the specific changes you want to reapply.
  4. In the Action column on the right, click on the dropdown list.
  5. Choose the desired action to reapply the changes.

    • Re-apply Specific Changes: If you need to reapply specific changes, select each change you want to re-apply and click Re-apply.
    • Re-apply Recent Changes: If you prefer to reapply the most recent modifications made to the project, identify the initial change you want to restore, then select Re-apply this and newer changes.

Finally, click the Save all button.

suorita-uudelleen-muutokset
suorita-uudelleen-muutokset

Vian etsintä työn lokeista

Kun suoritat työtä, voit yleensä löytää lokeista "Tarkista projektitasot" -nimisen vaiheen, joka tulostaa taulukon, jossa on kaikki projektitasot ja tilan niiden viereen.

Mahdolliset tilat ovat:

  • ok - Taso latautuu oikein QFieldCloudissa.
  • invalid_dataprovider – kerroksen tiedontoimittaja on virheellinen. Yleensä lisätietoja näytetään "Toimittajan yhteenvedossa".
  • invalid_layer - Tämän virheen pitäisi tapahtua hyvin harvoin, jos koskaan. Tiedot on ladattu oikein, mutta jostain syystä QGIS raportoi tason virheelliseksi.

Ei voida muodostaa yhteyttä palveluun "{SERVICE}".

QFieldCloud tries to connect to a PostgreSQL service that is not available. You should need to create a new pgservice secrets so QFieldCloud can connect to the PostgreSQL service.

Ei voida muodostaa yhteyttä isäntään "{HOST}".

QFieldCloud cannot establish a connection to the given {HOST}. Your service is not accessible from the QFieldCloud server. You might been to ask your IT department to whitelist the QFieldCloud IP.

Ei voida muodostaa yhteyttä isäntään "localhost".

You have uploaded a layer that connects to a database/service on your local machine. Either remove that layer or replace it with a layer source accessible by QFieldCloud.

Tiedosto "{FILENAME}" puuttuu.

The file {FILENAME} (e.g. /tmp/rndstr/files/data.gpkg) is not found on the QFieldCloud server and cannot be opened. There are two things that should be checked:

  • Whether the file has been uploaded to the cloud. You can check this in Project Settings -> Files page on QFieldCloud or QFieldSync.
  • Making sure the file is uploaded with the same relative path as on your PC. Please note that all project files should be within the same project directory or subdirectory as the .qgs/.qgz QGIS project file. Please also note the directory names should be preserved too, for example if a file is stored in data/data.gpkg, make sure the data directory exists on QFieldCloud too.