# Synchronisation et comportement hors ligne

Les applications mobiles Daxium-Air sont conçues pour fonctionner **en mode hors ligne en priorité**. Vos équipes peuvent continuer à collecter des données sur le terrain sans réseau — dans un sous-sol, sur un site isolé ou dans un avion — et l'application se charge de tout synchroniser dès qu'une connexion est disponible.

### Travailler hors ligne

Tout ce dont vos utilisateurs ont besoin est stocké localement sur l'appareil : les formulaires, les listes et référentiels, ainsi que les données saisies. Sans connexion, les utilisateurs peuvent :

* créer de nouvelles fiches,
* modifier des fiches existantes,
* enregistrer des brouillons,
* ajouter des photos, signatures et pièces jointes.

Rien n'est perdu hors ligne. Le travail reste stocké sur l'appareil jusqu'à son envoi au serveur ou sa suppression. La synchronisation se charge ensuite d'envoyer vos modifications au serveur et de télécharger les dernières données.

### Ce que fait la synchronisation

La synchronisation fonctionne dans **deux sens** :

* **Téléchargement (serveur → appareil) :** formulaires, listes, permissions et les fiches concernant l'utilisateur (celles qui lui sont assignées ou diffusées à son équipe).
* **Envoi (appareil → serveur) :** fiches créées ou modifiées hors ligne, avec leurs photos et pièces jointes et commentaires.

#### Étapes obligatoires et étapes en arrière-plan

Toutes les étapes de la synchronisation n'ont pas la même importance. Certaines sont **obligatoires avant de pouvoir utiliser l'application** ; d'autres s'exécutent en arrière-plan.

**Étapes obligatoires, effectuées avant de pouvoir commencer à travailler.** L'application reste sur l'écran de synchronisation jusqu'à leur achèvement :

| # | Étape                                          | Ce qu'elle fait                                              |
| - | ---------------------------------------------- | ------------------------------------------------------------ |
| 1 | *Récupération des formulaires*                 | Télécharge vos formulaires.                                  |
| 2 | *Récupération des informations du compte*      | Récupère la configuration et les paramètres de votre compte. |
| 3 | *Récupération des dépendances des formulaires* | Charge tout ce dont les formulaires ont besoin.              |
| 4 | *Récupération des listes*                      | Télécharge les listes et valeurs de référentiel.             |
| 5 | *Récupération des automatismes*                | Charge les règles d'automatisation.                          |

**Étapes en arrière-plan, s'exécutent pendant que vous utilisez déjà l'application.** Une fois les étapes obligatoires terminées, l'application s'ouvre et le reste des étapes continuent en arrière-plan. Un échec ici ne vous bloque pas et sera retenté à la prochaine synchronisation :

| #  | Étape                                        | Ce qu'elle fait                                                                         |
| -- | -------------------------------------------- | --------------------------------------------------------------------------------------- |
| 6  | *Envoi des fiches en attente*                | Envoie les fiches créées ou modifiées hors ligne (photos et pièces jointes en premier). |
| 7  | *Récupération des fiches assignées*          | Télécharge les fiches qui vous sont assignées.                                          |
| 8  | *Récupération des fiches diffusées*          | Télécharge les fiches partagées avec votre équipe.                                      |
| 9  | *Récupération des tâches*                    | Télécharge vos tâches.                                                                  |
| 10 | *Récupération des fiches liées*              | Télécharge les fiches liées référencées par vos formulaires.                            |
| 11 | *Récupération des commentaires*              | Télécharge les commentaires attachés aux fiches.                                        |
| 12 | *Récupération des ressources*                | Télécharge les ressources média et cartographiques.                                     |
| 13 | *Mise à jour des données de synchronisation* | Finalise la synchronisation et enregistre la nouvelle date de synchronisation.          |

{% hint style="info" %}
Si une étape obligatoire échoue, la synchronisation s'arrête et une erreur est affichée. Les étapes en arrière-plan font du mieux possible : un échec est consigné et retenté ultérieurement, sans bloquer l'application.
{% endhint %}

### Quand l'application synchronise-t-elle ?

**Automatiquement :**

* À la connexion, si l'application vient d'être mise à jour, n'a jamais été synchronisée ou si la dernière synchronisation remonte à plus d'environ un jour.
* Au retour de la connexion, si des fiches étaient en attente d'envoi.

**Manuellement :**

* Les utilisateurs peuvent déclencher une synchronisation à tout moment (action de synchronisation dans l'application) si la configuration le permet.

La date de la dernière synchronisation est affichée dans les paramètres de l'application. La progression est visible à l'écran pendant l'exécution, et une synchronisation en cours peut être annulée, elle reprendra à la prochaine synchronisation.

### Statuts des fiches

Chaque fiche porte un statut qui indique où elle en est entre l'appareil et le serveur :

| Statut                               | Signification                                             | Modifiable ?                         | Envoyée au serveur ? |
| ------------------------------------ | --------------------------------------------------------- | ------------------------------------ | -------------------- |
| **Brouillon**                        | Créée ou modifiée localement, pas encore finalisée        | Oui                                  | Non                  |
| **En attente**                       | Finalisée et en file d'attente, en attente d'envoi        | Oui, jusqu'à l'envoi                 | Pas encore           |
| **Mise à jour**                      | Déjà sur le serveur, puis modifiée localement             | Oui                                  | Pas encore           |
| **Erreur**                           | Le serveur a refusé l'envoi                               | Oui — peut être corrigée et renvoyée | Tentée, refusée      |
| **Synchronisée**                     | Envoyée au serveur et confirmée                           | Oui                                  | Oui                  |
| **Distante / résultat de recherche** | Existe uniquement sur le serveur, non modifiée localement | Non — lecture seule                  | Oui                  |

Le cycle de vie normal d'une fiche créée hors ligne est : **Brouillon → En attente → Synchronisée**. Le statut **Erreur** est celui à surveiller, il signifie la plupart du temps que l'utilisateur doit intervenir avant que la fiche puisse être envoyée.

### Règles de conflit

Un conflit survient lorsque la même fiche est modifiée à au moins deux endroits, par exemple hors ligne sur un appareil et sur le serveur, avant que l'appareil ait eu l'occasion de synchroniser.

#### Le travail hors ligne est protégé lors des téléchargements

Les téléchargements courants n'écrasent jamais une fiche que vous avez modifiée localement. Tant que votre fiche est en `Brouillon`, `Mise à jour`, `En attente` ou en `Erreur`, votre version locale est conservée et la version du serveur est mise de côté. Votre travail est toujours conservé, les synchronisations en arrière-plan ne peuvent pas effacer silencieusement ce qu'un utilisateur est en train de modifier.

#### Règle : le dernier envoi gagne

Il n'y a pas de gestion de conflit lorsqu'une fiche est envoyée, la dernière arrivée écrase les données existantes, mais toutes les versions précédentes sont conservées sur le serveur.

#### Suppressions

* Supprimer un **brouillon local** le retire de l'appareil uniquement, rien n'est envoyé.
* Une fiche **supprimée sur le serveur** disparaît des listes de l'utilisateur à la prochaine synchronisation si elle est assignée ou diffusée. Si elle provient de la recherche, elle n'est plus envoyable au serveur et doit être supprimée manuellement.

### Autres règles

**Les médias avant la fiche.** Les photos, signatures et pièces jointes sont envoyées avant la fiche à laquelle elles appartiennent. Si un fichier ne parvient pas à être envoyé, toute la fiche reste `En attente` et l'application réessaie ultérieurement. Cela garantit qu'une fiche n'est jamais stockée sur le serveur avec des pièces jointes manquantes.

**Fiches liées (parent / enfant).** Une fiche enfant ne peut pas être envoyée avant sa fiche parent, afin de ne jamais rompre les liens entre fiches. Selon la configuration de la relation, les enfants peuvent devoir attendre que leur parent soit envoyé en premier.

### Pour les administrateurs

Certains choix de configuration dans le back-office influencent directement la synchronisation :

* **Conception des formulaires et validation.** Les champs obligatoires et les règles de validation sont appliqués par le serveur. Une fiche qui ne les respecte pas sera refusée à l'envoi et marquée en `Erreur`, des formulaires bien conçus réduisent donc les erreurs de synchronisation pour les équipes terrain.
* **Relations entre formulaires.** Les paramètres de relation affectent l'ordre d'envoi des fiches liées (parents avant enfants) et si les enfants attendent leur parent.
* **Listes et référentiels.** Ceux-ci doivent être téléchargés avant que les formulaires correspondants puissent être remplis — les listes volumineuses allongent la synchronisation initiale.

### FAQ

<details>

<summary>Vais-je perdre mon travail si je suis hors ligne ?</summary>

Non. Tout ce que vous créez ou modifiez hors ligne est conservé sur l'appareil jusqu'à son envoi au serveur ou sa suppression volontaire.

</details>

<details>

<summary>Pourquoi ma fiche s'est-elle retrouvée en « Erreur » ?</summary>

Le plus souvent parce que le serveur l'a refusée — soit une règle de validation n'était pas respectée, soit la même fiche a été modifiée sur le serveur pendant que vous la modifiiez hors ligne. Ouvrez la fiche, vérifiez-la par rapport aux dernières données, et envoyez-la à nouveau.

</details>

<details>

<summary>Combien de temps prend la synchronisation ?</summary>

Cela dépend du volume de formulaires, listes et médias, ainsi que de la qualité de la connexion. Les étapes obligatoires s'exécutent en premier ; tout le reste continue en arrière-plan sans bloquer l'application.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.center.daxium-air.com/user-documentation/documentation-utilisateur/support/admin-support/offline-sync.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
