# Synchronisation des données

## Vue d'ensemble

CAP Caisse est une application connectée à Business Central. Pour vous offrir la meilleure expérience, CAP Caisse duplique un certain nombre de données dans une **base de données locale** (cache) propre à votre caisse et les synchronise régulièrement avec Business Central.

> [!NEW]
> En v28, la synchronisation est **« tout ou rien » (transactionnelle)** : soit l'écriture en base réussit entièrement, soit rien n'est appliqué. La base n'est **jamais** laissée à moitié à jour. Les synchronisations sont aussi nettement **plus rapides et plus stables** que la v27 (de l'ordre de **50% plus rapide en moyenne**, allant jusqu'à 80% plus rapide dans les situations les plus favorables).

## Synchronisation au premier plan

La synchronisation au premier plan est déclenchée pendant que vous travaillez. Elle affiche une boîte de dialogue (avec l'étape et le type de données en cours) et bloque les actions tant qu'elle n'est pas terminée.

<!-- TODO image v28 : synchronisation au premier plan -->

Elle est déclenchée dans les cas suivants :

| Cas de figure                                              | Pourquoi une connexion est nécessaire                                                             |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Changement de caisse dans les paramètres                   | Cas initial, à l'installation de la caisse.                                                       |
| Ouverture de caisse                                        | Informer le système centralisé du démarrage de la période quotidienne.                            |
| Clôture de caisse                                          | Informer de la clôture et télécharger le Z de caisse.                                             |
| Impression d'un ticket de caisse                           | La **signature** du document (réalisée par le système centralisé) nécessite une connexion active. |
| Impression d'une facture                                   | L'obtention du document de facture nécessite une connexion active.                                |
| Validation d'un ticket de caisse                           | L'obtention de la **signature** du ticket nécessite une connexion active.                         |
| Validation d'une opération de caisse (retrait, dépôt)      | L'enregistrement de données d'encaissement nécessite une connexion active.                        |
| Ouverture d'une fiche contact/client dans Business Central | Pour refléter vos éventuelles modifications.                                                      |

> [!NOTE]
> La **signature électronique et le chaînage** des tickets et écritures sont produits par le **système centralisé** (Business Central), jamais par le poste de caisse. C'est pourquoi ces opérations exigent une connexion active. Voir **[Conformité législative (NF525)](../legal-requirements.md)**.

## Synchronisation manuelle

La synchronisation manuelle se lance depuis la page **Données** des paramètres. Trois types existent :

1. **Synchroniser les changements** (synchronisation « différentielle ») :
    
    Envoie les données locales en attente vers le système centralisé, puis récupère les modifications faites depuis la dernière synchronisation.
    
    Légère et rapide (en général entre 5 et 30 secondes).
    
    Les données échangées sont les mêmes qu'une synchronisation en arrière-plan, avec la récupèration de quelques données supplémentaires : TODO.

2. **Synchroniser tout** :

    Envoie d'abord les changements locaux, puis récupère **l'intégralité** des données depuis le système centralisé et met à jour toute la base locale (comparable à l'installation).
    
    - Selon le volume, cette opération peut prendre quelques minutes.
    - [!NEW] Toutes les données sont purgées, pour éviter d'accumuler trop de données dans le temps et être sûr d'être à jour avec le système centralisé.

3. [!NEW] **Envoyer seulement** :

    Permet d'envoyer les données locales en attente de synchronisation (contacts créés ou modifiés, tickets validés, devis créés, supprimés ou modifiés).

![Onglet d'actions de synchronisation](Images/settings-data.png)

La synchronisation manuelle est utile pour : voir immédiatement des modifications faites dans Business Central, ou **supprimer de la caisse des articles/contacts supprimés** dans Business Central (voir ci-dessous).

## Synchronisation en arrière-plan

La synchronisation en arrière-plan s'exécute automatiquement à intervalle régulier (15 minutes d'intervalle entre la fin d'une synchronisation et le début de la prochaine).

> [!NEW]
> En v28, la synchronisation se met **en pause** pendant que le poste est verrouillé, en veille ou en cours d'extinction, et reprend ensuite — sans provoquer les plantages observés en v27 à la sortie de veille (problème de carte réseau qui prend plus de temps à sortir de veille que l'application qui tente une synchronisation plus rapidement).

## Données échangées

Quelle que soit le type de synchronisation (totale ou partielle) et quelle que soit son déclencheur (manuel ou auto) :
1. Certaines données locale sont d'abord envoyées au système centralisé,
2. Toutes les données distantes sont téléchargées,
3. Toutes les données téléchargées sont écrites en base.

Si une de ces étapes échoue, les étapes suivantes ne sont pas exécutées, et aucune donnée distante n'est écrite dans la base locale.
Un popup d'erreur vous est alors présenté, et vous pouvez copier les détails de l'erreur pour le transmettre à notre support.

Voici la table des données échangées :

| Données                 | Sens              | Détail                                                                                                                                        |
| ----------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| JET                     | Envoi             | Transfère les événements techniques.                                                                                                          |
| Notes de contact        | Envoi             | Transfère les notes des contacts si ces notes étaient écrites pendant une coupure internet.                                                   |
| Écritures de caisse     | Envoi / Réception | Transfère les mouvements de caisse vers le système centralisé.                                                                                |
| Tickets                 | Envoi / Réception | Transfère les tickets de caisse.                                                                                                              |
| Devis                   | Envoi / Réception | Transfère les devis de caisse.                                                                                                                |
| Paramétrage caisse      | Réception         | Récupère le paramétrage de la caisse et le paramétrage global CAP Caisse, et s'assure d'être à jour sur la numérotation des tickets de caisse |
| Contacts                | Réception         | Récupère les contacts créés/modifiés.                                                                                                         |
| Articles                | Réception         | Récupère les articles créés/modifiés (y compris stock modifié).                                                                               |
| Articles                | Réception         | Récupère fiches articles.                                                                                                                     |
| Unités articles         | Réception         | Récupère unités de mesure des articles pour faire la correspondance avec les quantités réelles des packs.                                     |
| Familles d'articles     | Réception         | Récupère la liste des familles d'articles pour les statistiques                                                                               |
| Références articles     | Réception         | Récupère les références articles.                                                                                                             |
| Liste des prix de vente | Réception         | Récupère les prix et remises applicables.                                                                                                     |
| Groupes de comptabilité | Réception         | Les groupes prix/remise client, groupe TVA, ...                                                                                               |
| Raisons                 | Réception         | Les raisons à sélectionner pour certaines actions de la disposition des touches                                                               |
| Appellations            | Réception         | La liste des civilités                                                                                                                        |
| Pays et régions *       | Réception         | La liste des pays et des régions                                                                                                              |
| Fidélité                | Réception         | Si la fidélité est active                                                                                                                     |

> [!NOTE]
> Les pays et les régions ne sont synchronisées que pendant une synchronisation totale ou différentielles déclenchées **manuellement**.

Comme vous pouvez le remarquer, la v28 traite l'entièreté des données pendant tout type de synchronisation, même pour les synchronisations différentielles, contrairement à la v27, où une synchronisation totale, partielle manuelle, et partielle auto ne synchronisaient pas exactement les mêmes choses.

### Limitations des synchronisations

Vous devez être connecté à Internet et le système centralisé doit être accessible au moment où elles se déclenchent.

## Mode dégradé

L'usage normal de CAP Caisse est le **mode connecté**. Lorsque l'application cliente n'arrive pas à communiquer avec le système centralisé, elle bascule **immédiatement en mode dégradé**.

Causes du passage en mode dégradé :

- des erreurs lors des échanges avec le système centralisé, que celà provienne de l'application cliente ou du système centralisé,
- une perte de connexion à Internet.

L'application **sort automatiquement** du mode dégradé dès qu'une opération de synchronisation (au premier plan ou en arrière-plan) réussit de nouveau.

> [!IMPORTANT]
> L'entrée et la sortie du mode dégradé font l'objet d'un enregistrement dans le **JET**.

| Fonctionnalité dégradée             | Conséquence                                                                                                                              | Contournement                                                                                                                                                                                      |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Imprimer un ticket de caisse        | Impression impossible.                                                                                                                   | Choisir d'envoyer le ticket [par e-mail](../server-app/user-guide-bc-cash-registers-printing.md#envoyer-les-documents-par-e-mail). Celui-ci sera envoyé dès la prochaine synchronisation réussie.  |
| Imprimer une facture                | Impression impossible.                                                                                                                   | Choisir d'envoyer la facture [par e-mail](../server-app/user-guide-bc-cash-registers-printing.md#envoyer-les-documents-par-e-mail). Celui-ci sera envoyé dès la prochaine synchronisation réussie. |
| Imprimer un X de caisse             | Impression impossible.                                                                                                                   | Aucun contournement en mode dégradé.                                                                                                                                                               |
| Imprimer un Z de caisse             | Impression impossible.                                                                                                                   | [Imprimer ultérieurement](../server-app/user-guide-bc-z-report.md#réimpression-du-z-de-caisse) depuis le système centralisé.                                                                       |
| Consulter l'historique d'un contact | S'il s'agit d'une coupure internet, l'historique des factures est indisponible pour toute donnée non téléchargée en amont sur la caisse. | Aucun contournement en mode dégradé.                                                                                                                                                               |

## Résolution des problèmes de synchronisation

### <span class="cv-new"></span>Historique des synchronisations

Vous pouvez consulter le détail des
- 20 dernières synchronisations manuelles
- et des 3 derniers jours de synchronisations automatiques

dans **Paramètres → Données → Historique**.

![Historique des synchronisations](Images/sync-history.png)

Les synchronisations s'affichent en vert si elles ont réussi, en rouge si elles ont échouée.

Elles affichent :
- Leur type de synchronisation (Partielle ou totale)
- La date de début, de fin, et la durée totale
- L'état de l'étape d'envoie et de réception des données (réussi ou échoué)
- Un graphique simplifié qui montre, dans le temps (horizontalement) le temps (verticalement) qu'a pris chaque traitement (envoie, téléchargement ou écriture en base).

Cliquer sur une synchronisation affiche les détails de celle-ci :

![Détails d'une synchronisation réussie](Images/sync-detail-graph.png)

Un graphique plus complet, qui n'affiche la synchronisation à travers le temps, mais une barre par type d'entité (horizontalement) et le temps (verticalement) que chaque type d'entité a pris pour chaque type d'opération (vert pour l'envoie, bleu pour téléchargement, orange pour l'écriture en base).

En survolant une barre d'une certaine couleur, vous pouvez consulter :
- Le type d'opération
- Le type de données
- La durée totale de cette opération
- Le nombre d'entités envoyées ou reçues
- Le poids compressé → Poids décompressé de la requête réseau s'il s'agit d'une opération de téléchargement.

### La synchronisation échoue

1. Tentez de vous connecter à Business Central depuis votre navigateur (https://businesscentral.dynamics.com/). Un échec indique une maintenance ou un problème de connexion.
2. Lancez **Envoyer seulement**. Si cela échoue, contactez le support technique.
3. Si les synchronisations restent longues, vérifiez le paramètre **Valider pendant la synchronisation** dans les **Paramètres CAP Caisse** (voir [Comptabiliser en temps réel](../server-app/user-guide-bc-post.md#comptabiliser-en-temps-réel)). Vous pouvez préférer [planifier](../server-app/user-guide-bc-post.md#automatisation-des-traitements) la comptabilisation des écritures.

### Les articles et contacts supprimés dans Business Central

[!NEW]
Les articles et contacts supprimés ou bloqués depuis business central sont maintenant bien remontés dans l'application cliente, qui ne les supprime que s'ils ne sont pas nécessaire à un certain fonctionnement.

## Voir aussi

- [Préférences](client-settings.md)
- [Conformité législative (NF525)](../legal-requirements.md)
