# Invoice Outbound Sync

## Introduction

XSync permet de synchroniser des factures ou des éléments de facturation de Cn285 avec Netsuite.

{% hint style="info" %}
Avant de synchroniser une facture vers Netsuite, XSync s'assure que le client existe dans Netsuite et qu'il est bien à jour, notamment pour les clients dont des systèmes tiers sont les maîtres. Si les données ne sont pas à jour, XSync synchronisera ce client avant de synchroniser la facture.
{% endhint %}

## Configuration

### Synchronisation sortantes des factures

![Exemple de paramétrage pour la synchronisation sortantes des Invoices.](/files/teLX532QCjxxuvZ642It)

XSync dispose d'un système de recherche permettant de définir les factures (ou éléments de facturation) à synchroniser avec le **Remote System**. Cette recherche est paramétrable via le champ **Invoice Selection.**

Les données renvoyées par la recherche seront ensuite synchronisées avec Netsuite en une ou plusieurs pages (appelé aussi batch). La taille de ces pages est paramétrables par le champ **Sync Batch Size,** par défaut défini à **10**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Sync Batch Size**. Elle permet de garantir les performances optimales pour une synchronisation vers Netsuite.
{% endhint %}

Plusieurs paramètres sont aussi disponibles dans cette rubrique:

* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ Cn285 avec un champ standard Netsuite. Pour synchroniser des données Cn285 avec des champs Netsuite personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers.md).
* **Q for Outbound Invoice sync**: Permet de spécifier une autre queue à utiliser pour la synchronisation sortante.
* **Run Outbound Sync synchronously**: Lorsque cette option est cochée, la synchronisation est effectuée de manière synchrone. Nous vous recommandons d'utiliser cette option uniquement lorsque vous souhaitez debugger.
* **Last Invoices Outbound Sync:** Correspond au timestamp de la dernière synchronisation sortante effectuée. Ce timestamp est utilisé comme critère supplémentaire dans la recherche **Invoice Selection** et permet de ne sélectionner que les factures de Cn285 qui ont une date de création / modification postérieure à cette date.

{% hint style="info" %}
Si le champ **Last Invoices Outbound Sync** n'est pas défini:

* La recherche du champ **Invoice Selection** renverra toutes les factures éligibles à la  synchronisation
* La valeur du champ prendra le timestamp de cette synchronisation.
  {% endhint %}

Un critère supplémentaire sera automatiquement ajouté à la recherche. Ce critère permet de ne sélectionner que les clients dont le **Master System** est différent du **Remote System** sur lequel la synchronisation va être effectuée.

Il est également possible de bloquer la synchronisation sortante d'une facture. Cette option est disponible depuis la rubrique **Outbound Sync** dans l'onglet XSync de la vue détaillée de la facture et elle est paramétrable avec le champ **Block Outbound Sync.** Lorsque ce champ est activé, XSync ignora automatiquement la synchronisation de cette facture.

![](/files/ZaThlTaGI0ZwCTSOVyXz)

### Etat de validation des factures

![](/files/fvhOgWypoOySl9dqBUsH)

XSync permet aussi de créer une facture dans Netsuite dans différents états d'approbation, selon que l'on souhaite créer des factures validées ou non, ou qu'un workflow de validation est activé.&#x20;

Sous **Cn / Configuration / Settings**, dans la rubrique **Netsuite by Cn285**, configurer les champs suivants:

* **Approval Status At Creation** : Définit le statut de la facture lors de sa création dans NetSuite
  * **Pending Approval** : Crée la facture au statut “pending approval” dans NetSuite.
  * **Open (without approval workflow\*)**  : Crée la facture directement au statut “Approved” dans NetSuite (il n'y a pas de workflow de validation et on créait la facture validée).
  * **Open (with approval workflow\*)** : Crée la facture au statut “pending approval” dans NetSuite puis la valide dans un second temps.
* **Next Approver** : <mark style="color:red;">SI ET SEULEMENT</mark> le module d'approbation des factures NetSuite est installé, ce champ permet de définir le **Next Approver.**  L'utilisateur Cn285 doit donc avoir un **Remote Id** correspond à un identifiant d'employé dans Netsuite.

{% hint style="warning" %}
Dans Netsuite, lorsque le workflow de validation des factures est activé, celui-ci ne permet pas de créer une facture directement dans le statut ‘approved’. Dans ce cas là,  XSync créera dans un premier temps la facture au statut 'Pending Approval' puis dans un second temps, validera cette facture.
{% endhint %}

Une fois la synchronisation sortante effectuée (avec ou sans workflow), XSync lancera une synchronisation entrante afin de récupérer la référence de la facture nouvellement crée dans NetSuite.

## Lancement de la synchronisation

La synchronisation sortante des factures depuis Cn285 peut être lancée via deux modes:

* Mode manuel
* Mode automatique

### Mode manuel

Le bouton <img src="/files/sHTOTanUyqDNwSjQWttR" alt="" data-size="line">situé dans l'onglet **Outbound Sync** du **Remote System** permet de lancer la synchronisation sortante manuellement avec les critères définis ci-dessus.

Si le champ **Run Outbound Sync synchronously** n'est pas coché alors cette synchronisation est lancée de manière aysnchrone.

### Mode automatique

La synchronisation de manière automatique est effectuée par une action planifiée qui s'exécute périodiquement. La documentation concernant les [Workers](/cn285-documentation/menu-qs/workers.md) permet de visualiser cette tâche.

![Exemple de configuration du Daemon](/files/2KKUxHiqvLG5lFVWAUjT)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est lancée de manière asynchrone (soit via le bouton <img src="/files/2AWO0hhNkV15Eo2niwAw" alt="" data-size="line">avec la case **Run Outbound Sync synchronously** décoché, soit via la tâche planifiée), XSync génère un message "**Outbound sync on X all 'invoices'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Outbound Sync a batch of 'invoice()'**" qui lui même va générer plusieurs messages "**Outbound** **Sync Cn**" en fonction de la taille définie par le champ **Sync Batch Size**.

La visualisation des messages et l'avancement de la synchronisation est possible depuis le menu **Cn / Qs / Messages**. ![](/files/JYe1uIofpnamy13hM13Z)

![Exemple de message généré par XSync pour synchroniser une page de 10 Invoices.](/files/PGFvn68Zff3EralZYQMn)


---

# 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://docs.cn285.app/cn285-documentation/menu-xsync/xsync-for-netsuite/invoice-outbound-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.
