Vai al contenuto

Lavori

I lavori su QFieldCloud eseguono operazioni pesanti con i file di progetto e i layer all'interno di QGIS. I lavori vengono creati in risposta a determinate azioni dell'utente.

Una volta creato un lavoro, questo viene aggiunto alla coda di lavori del progetto e attende le risorse QFieldCloud disponibili per essere eseguito. In ogni momento può essere eseguito un solo lavoro per progetto. Gli altri lavori in coda verranno eseguiti nello stesso ordine in cui sono entrati nella coda.

Ogni lavoro è composto da una o più fasi e ogni fase è responsabile di un'attività autonoma del progetto. QFieldCloud supporta tre flussi di lavoro predefiniti: process_projectfile, package e delta_apply.

Durante l'esecuzione, i lavori scrivono messaggi di log che sono disponibili nella pagina dei lavori del progetto per i lavori che hanno raggiunto lo stato finale FINISHED o FAILED.

I lavori hanno accesso ai segreti del progetto.

Note

Tutti i lavori possono essere lanciati utilizzando l'API di QFieldCloud.

Warning

  • Le condizioni di attivazione descritte in questa pagina possono cambiare senza preavviso.
  • Tutti i lavori devono terminare entro 10 minuti, altrimenti si verificherà un errore di timeout e verranno interrotti.

Tipi di lavoro

Elaborazione del file di progetto (process_projectfile)

Il lavoro di elaborazione del file di progetto viene utilizzato per estrarre i dettagli sulla configurazione del progetto e sui layer del progetto, come il CRS del progetto, il CRS del layer, il nome del layer, la validità del layer ecc. QFieldCloud convalida il file di progetto QGIS caricato (.qgs/.qgz), così come i GeoPackages di supporto, i TIFF e altri file di origine dati. Inoltre, convalida la connessione remota a PostGIS, WFS, WMS e altre fonti di dati online. QFieldCloud aprirà il file di progetto in un'istanza QGIS sul server per estrarre tutte le informazioni necessarie.

Trigger

Questo lavoro viene lanciato ogni volta che un file viene caricato su QFieldCloud, a meno che non sia valida almeno una delle seguenti condizioni:

  • Non è stato ancora caricato alcun file di progetto QGIS (.qgs/.qgz).
  • Il file caricato si trova nella directory DCIM. Si presume che questi file siano irrilevanti per la validità del progetto.
  • C'è già un lavoro process_projectfile in stato PENDING.

Risoluzione dei problemi

Un lavoro process_projectfile potrebbe risultare nello stato FAILED. Controlla l'elenco non esaustivo di cause riportato di seguito:

  • Il file del progetto QGIS caricato (.qgs/.qgz) è illeggibile, incompleto, rotto o sbagliato. Prova a caricare nuovamente il file del progetto QGIS.
  • QGIS si blocca dopo aver aperto il file di progetto. Cerca di identificare il layer che causa il crash rimuovendo un layer alla volta dal progetto e ricaricando il file di progetto QGIS.

Note

Anche se un lavoro process_projectfile risulta in uno stato di SUCCESS, ciò non significa che il progetto sia stato configurato correttamente. Lo stato SUCCESS indica solo che il progetto è stato aperto con successo e che tutte le informazioni necessarie sono state estratte.

Creazione pacchetto (package)

Il lavoro package converte un progetto QGIS in un progetto QField, nello stesso modo in cui viene fatto su QGIS tramite QFieldSync. Il lavoro package preparerà tutti i layer contrassegnati come "Modifica offline" in un unico GeoPackage.

Trigger

Questo lavoro viene lanciato ogni volta che i pulsanti Download o Synchronize vengono premuti su QField. A meno che non sia valida almeno una delle seguenti condizioni:

  • Il progetto non ha mai eseguito un lavoro process_projectfile che abbia avuto come risultato lo stato SUCCESS.
  • Esiste già un lavoro package in stato PENDING.
  • Il progetto non contiene layer vettoriali online (PostGIS, WFS ecc.), l'ultimo risultato del lavoro package è stato SUCCESS e non sono stati caricati file o modifiche.

Risoluzione dei problemi

Un lavoro package potrebbe risultare nello stato FALLITO. Controlla l'elenco non esaustivo di cause riportato di seguito:

  • Il progetto non ha mai eseguito un lavoro process_projectfile che abbia avuto come risultato lo stato SUCCESS.
  • Alcuni layer del progetto sono inaccessibili da QFieldCloud. Assicurati che tutti i file siano stati caricati e che tutte le credenziali per i layer online (PostGIS, WFS ecc.) siano memorizzate nel file di progetto QGIS.

Applicazione delta (delta_apply)

Delta apply è responsabile di rendere permanenti tutte le modifiche apportate a QField.

Trigger

Questo lavoro viene lanciato ogni volta che viene premuto il pulsante Sincronizza o Applica le modifiche su QField o il pulsante Applica le modifiche in sospeso sulla pagina del progetto Modifiche. Se una delle seguenti condizioni è valida:

  • Il progetto non ha mai eseguito un lavoro process_projectfile che ha dato come risultato lo stato SUCCESS.
  • C'è già un lavoro delta_apply in stato PENDING.

Risoluzione dei problemi

Un lavoro delta_apply potrebbe risultare nello stato FAILED. Controlla l'elenco non esaustivo di cause riportato di seguito:

  • Almeno uno dei database online (PostGIS/WFS) utilizzati nel progetto QGIS ha resettato la connessione.
  • Il progetto è troppo grande e il lavoro non ha funzionato.
  • Ci sono file e directory nascoste all'interno del progetto che impediscono il normale funzionamento di QFieldCloud. I file e le directory nascosti sono quelli che iniziano con un punto iniziale (.).

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.

Re-apply changes
Re-apply changes

Risoluzione dei problemi con log dei lavori

Quando si esegue un lavoro, di solito nei log si trova un passaggio chiamato "Check project layers" che stampa una tabella con tutti i layer del progetto e lo stato accanto ad essi.

Gli stati possibili sono:

  • ok - Il layer viene caricato correttamente su QFieldCloud.
  • invalid_dataprovider - Il provider di dati del layer non è valido. Di solito le informazioni aggiuntive sono mostrate nel "Riepilogo provider".
  • invalid_layer - Questo errore dovrebbe accadere molto raramente. I dati vengono caricati correttamente, ma per qualche motivo QGIS riporta il layer come non valido.

Impossibile connettersi al servizio "{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 PostGIS service.

Impossibile connettersi all'host "{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.

Impossibile connettersi all'host "localhost".

Hai caricato un layer che si collega a un database/servizio sul tuo computer locale. Rimuovi il layer o sostituiscilo con una sorgente accessibile da QFieldCloud.

File "{FILENAME}" mancante.

Il file {FILENAME} (ad esempio /tmp/rndstr/files/data.gpkg) non si trova sul server QFieldCloud e non può essere aperto. Ci sono due cose da controllare:

  • Indica se il file è stato caricato nel cloud. Puoi verificarlo nella pagina Impostazioni progetto -> Files su QFieldCloud o QFieldSync.
  • Assicurati che il file venga caricato con lo stesso percorso relativo del tuo PC. Ricorda che tutti i file di progetto devono trovarsi nella stessa directory o sottodirectory del file di progetto QGIS .qgs/.qgz. Tieni presente che anche i nomi delle directory devono essere mantenuti, ad esempio se un file è memorizzato in data/data.gpkg, assicurati che la directory data esista anche su QFieldCloud.