Trabajos¶
Los trabajos en QFieldCloud realizan operaciones pesadas con archivos de proyectos y capas dentro de QGIS. Los trabajos se crean en respuesta a determinadas acciones del usuario.
Una vez creado un trabajo, se añade a la cola de trabajos del proyecto y espera a que los recursos de QFieldCloud disponibles se ejecuten. En cualquier momento, solo se puede ejecutar un trabajo por proyecto. El resto de los trabajos en cola se ejecutarán en el mismo orden en que entraron en la cola.
Cada trabajo consta de uno o más pasos, y cada paso es responsable de una tarea independiente del proyecto.
QFieldCloud admite tres flujos de trabajo predefinidos: process_projectfile, package y delta_apply.
Mientras se ejecutan, los trabajos escriben mensajes de registro que están disponibles en la página de trabajos del proyecto para los trabajos que han alcanzado un estado final FINISHED o FAILED.
Los trabajos tienen acceso a los secretos del proyecto.
Nota
Todos los trabajos pueden ser desencadenados usando la API de QFieldCloud.
Advertencia
- Cualquiera de las condiciones de activación descritas en esta página puede cambiar sin previo aviso.
- Todos los trabajos deben terminar antes de 10 minutos o darán lugar a un error de tiempo de espera y serán terminados.
Información
Si busca detalles técnicos sobre el funcionamiento de los trabajos, consulte la documentación de la Cola de Trabajos.
Tipos de trabajo¶
Trabajo de procesar el archivo de proyecto (process_projectfile)¶
La tarea Procesar archivo de proyecto se utiliza para extraer detalles sobre la configuración y las capas del proyecto, incluyendo la versión de QGIS utilizada, el CRS del proyecto, el CRS de las capas, los nombres de las capas, su validez, etc.
QFieldCloud valida el archivo de proyecto de QGIS cargado (.qgs/.qgz), así como los GeoPackages, TIFF y otras fuentes de datos compatibles.
También valida las conexiones remotas a PostGIS, WFS, WMS y otras fuentes de datos en línea.
QFieldCloud abrirá el archivo de proyecto en una instancia de QGIS en el servidor para extraer toda la información necesaria.
Triggers and Possible Errors¶
This job is triggered every time a file is uploaded to QFieldCloud.
The following conditions may result in an error while uploading to QFieldCloud:
- Todavía no se ha cargado ningún archivo de proyecto QGIS (
.qgs/.qgz). - El archivo cargado está dentro del directorio
DCIM. Se supone que esos archivos son irrelevantes para la validez del proyecto. - Ya hay un trabajo
process_projectfileen estadoPENDING.
Troubleshoot and fix
A process_projectfile job might result in a FAILED status, due to several reasons.
Below is a list (non-exhaustive) with the most common causes:
- El archivo de proyecto QGIS cargado (
.qgs/.qgz) es ilegible, está incompleto, roto o es incorrecto. Intente volver a cargar el archivo del proyecto QGIS. - QGIS se bloquea después de abrir el archivo del proyecto.
- Intente identificar la capa que está causando el bloqueo eliminando una capa a la vez del proyecto y volviendo a cargar el archivo del proyecto QGIS.
Nota
Aunque un trabajo process_projectfile tenga el estado ÉXITO, esto no significa que el proyecto esté configurado correctamente.
El estado ÉXITO simplemente indica que el proyecto se abrió correctamente y se extrajo toda la información necesaria.
Trabajo de paquete (package)¶
La tarea package convierte un proyecto de QGIS en un proyecto de QField, de la misma forma que se hace en QGIS mediante QFieldSync.
La tarea package preparará todas las capas marcadas como "Edición sin conexión" en un único GeoPackage.
Triggers and Possible Errors¶
Este trabajo se activa cada vez que se pulsan los botones Descargar o Sincronizar en QField. A menos que se cumpla al menos una de las siguientes condiciones:
- El proyecto nunca ha ejecutado un trabajo
process_projectfileque haya resultado en estadoSUCCESS. - Ya hay un trabajo de
packageen estadoPENDING. - El proyecto no contiene capas vectoriales en línea (PostGIS, WFS, etc.), el último resultado del trabajo de
packagefueSUCCESSy no hubo cargas de archivos, ni de cambios.
Solucionar problemas¶
A package job might result in FAILED status , due to several reasons.
Below is a list (non-exhaustive) with the most common causes:
- El proyecto nunca ha ejecutado un trabajo
process_projectfileque haya resultado en estadoSUCCESS. - Algunas de las capas del proyecto son inaccesibles desde QFieldCloud.
- Asegúrese de que todos los archivos estén cargados y que todas las credenciales de las capas en línea (PostGIS, WFS, etc.) estén almacenadas dentro del archivo de proyecto QGIS.
Trabajo de aplicación delta (delta_apply)¶
Delta apply jobs es responsable de hacer permanentes todos los cambios de QField empujados.
Triggers and Possible Errors¶
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 in QFieldCloud.
Issues may arise if any of the following condition are valid:
- The project never ran a
process_projectfilejob that resulted inSUCCESSstatus. - Ya hay un trabajo
delta_applyen estadoPENDING.
Solucionar problemas¶
A delta_apply job may result in a FAILED status, due to several reasons.
Below is a list (non-exhaustive) with the most common causes:
- Database connection issues: The online database (PostgreSQL/PostGIS) used in the QGIS project reset the connection, timed out, or is currently unavailable.
- Feature missing: The feature being updated has been deleted from the source data (e.g., by another user or process) before the delta change could be applied.
- Layer missing: The layer corresponding to the changes was removed from the QGIS project.
- Source changed: The structure of the layer source was changed (e.g., columns were renamed or removed), making the delta incompatible.
- Project size: The project is too big and the job has failed to run within the resource limits.
- Hidden files: 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 (
.).
Comprensión de los conflictos en los trabajos delta_apply¶
Conflicts occur when multiple changes affect the same data in a way that QFieldCloud cannot automatically resolve without a defined policy.
What is a "CONFLICT"?
In the Changes section, a delta status is set to CONFLICT when:
- Concurrent Editing: Two or more users modify the same feature (identified by the same primary key) on the same layer.
- Primary Key Collision: A new feature is created with a primary key that already exists in the database.
What overwrites what?
QFieldCloud resolves these conflicts based on the project's conflict resolution setting.
- Last Wins (Default): QFieldCloud compares the timestamps of the conflicting changes. The change with the most recent timestamp overwrites any previous changes to the same attributes. The older change is effectively discarded in favor of the newer one, though it remains in the history.
- Manual: No changes are overwritten automatically. The conflict is flagged, and the project administrator must manually select which version to apply.
Preventing Conflicts
Para minimizar el riesgo de conflictos, siga estas prácticas recomendadas:
- 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 to prevent conflicts and ensure data integrity.
Al implementar estas prácticas, puede reducir significativamente la probabilidad de conflictos y mantener datos consistentes.
¿Cómo resolver conflictos?¶
De forma predeterminada, QFieldCloud sobrescribe los conflictos mediante una política de last wins policy (la última actualización de los cambios en los atributos involucrados en el conflicto reemplaza todas las actualizaciones anteriores). Como alternativa, los administradores pueden configurar la política de resolución de conflictos de un proyecto como manual. Para ello, el gestor del proyecto deberá resolver manualmente los conflictos, seleccionando los que se aplicarán al proyecto.
- Navegue a la sección "Cambios".
- Filtrar los cambios con el estado "CONFLICTO".
- Para cada cambio en conflicto, selecciónelo y establezca el estado en "Volver a aplicar" en el menú desplegable "Acción"; alternativamente, si todos los cambios nuevos están en conflicto, puede elegir el último cambio en conflicto y seleccionar "Volver a aplicar este cambio y los más recientes".
- Compruebe los detalles de los cambios en el conflicto y haga clic en "Guardar todo" al final de la página.
Volver a aplicar los cambios en QFieldCloud¶
- Haga clic en el nombre del proyecto en Mis proyectos.
- Vaya a la sección Cambios. (Los cambios están ordenados del más reciente al más antiguo)
- Busque los cambios específicos que desea volver a aplicar.
- En la columna Acción de la derecha, haga clic en la lista desplegable.
-
Elija la acción deseada para volver a aplicar los cambios.
- Volver a aplicar cambios específicos: Si necesita volver a aplicar cambios específicos, seleccione cada cambio que desee volver a aplicar y haga clic en Reaplicar.
- Volver a aplicar los cambios recientes: Si prefiere volver a aplicar las modificaciones más recientes realizadas en el proyecto, identifique el cambio inicial que desea restaurar y, a continuación, seleccione Reaplicar este cambio y otros más recientes.
Por último, haga clic en el botón Guardar todo.
Solucionar los problemas de los registros de trabajo¶
Cuando se ejecuta un trabajo, normalmente se puede encontrar un paso en los registros llamado "Comprobar las capas del proyecto" que imprime una tabla con todas las capas del proyecto y el estado junto a ellas.
Los estados posibles son:
- ok: La capa se carga correctamente en QFieldCloud.
- invalid_dataprovider: El proveedor de datos de la capa no es válido. Por lo general, se muestra información adicional en el "Resumen del proveedor".
- invalid_layer: Estos errores deberían ocurrir muy rara vez, si es que alguna vez lo hacen. Los datos se cargan correctamente, pero por alguna razón QGIS informa que la capa no es válida.
No se puede conectar al servicio "{SERVICE}".¶
QFieldCloud intenta conectarse a un servicio PostgreSQL que no está disponible. Debe crear un nuevo pgservice secrets para que QFieldCloud pueda conectarse al servicio PostgreSQL.
No se puede conectar al host "{HOST}".¶
QFieldCloud no puede establecer una conexión con el {HOST} indicado. No se puede acceder a su servicio desde el servidor de QFieldCloud.
Quizás haya solicitado a su departamento de TI que incluya la IP de QFieldCloud en la lista blanca.
No se puede conectar al host "localhost".¶
Ha subido una capa que se conecta a una base de datos/servicio en su equipo local. Elimine esa capa o reemplácela con una fuente de capa accesible mediante QFieldCloud.
Falta el archivo "{FILENAME}".¶
El archivo {FILENAME} (p. ej., /tmp/rndstr/files/data.gpkg) no se encuentra en el servidor QFieldCloud y no se puede abrir.
Hay dos cosas que deben comprobarse:
- Si el archivo se ha subido a la nube. Puede comprobarlo en la página Archivos > Configuración del proyecto en QFieldCloud o QFieldSync.
- Asegúrese de que el archivo se cargue con la misma ruta relativa que en su PC.
Tenga en cuenta que todos los archivos del proyecto deben estar dentro del mismo directorio o subdirectorio del proyecto que el archivo de proyecto QGIS
.qgs/.qgz. Tenga en cuenta también que los nombres de los directorios deben conservarse, por ejemplo, si un archivo se almacena endata/data.gpkg, asegúrese de que el directoriodatatambién exista en QFieldCloud.

