Tous vos systèmes sont interconnectés. Toutes les données sont transmises. Seulement… pas toujours dans le bon ordre !?

Découvrez pourquoi les intégrations API ne suffisent pas à elles seules et comment une file d'attente intelligente supervise les processus entre les applications Exact.

6 min de lecture

Dans cet article

Sur le papier, tout semble parfait.

Votre boutique en ligne est connectée à Exact. Votre système de gestion des stocks (WMS) est connecté à Exact. Votre CRM, PIM ou application de production échange des données avec Exact.

Les API fonctionnent. Les connexions sont établies. Les données arrivent.

Et pourtant, le processus peut se bloquer.

Pourquoi ?

En effet, certaines applications ne comprennent pas automatiquement dans quel ordre un autre système a besoin des données.

Et ce problème prend de plus en plus d'importance à mesure que les organisations optent de plus en plus pour une stratégie « best-of-breed »*.

 

Chaque système a sa propre réalité

Opter pour la meilleure solution de sa catégorie est un choix logique.

Au lieu d'opter pour un seul logiciel polyvalent, vous choisissez pour chaque processus métier l'application la mieux adaptée.

Un WMS spécialisé pour l'entrepôt. Un CRM pour les ventes. Un PIM pour les informations sur les produits. Une boutique en ligne pour le commerce électronique. Une application pour la planification ou la production.

Et Exact en tant que cœur financier ou ERP de l'organisation.

Chaque application peut fonctionner parfaitement de manière autonome.

Mais chaque application fonctionne également selon sa propre logique de traitement et à son propre rythme.

Et c'est là que se pose un problème intéressant.

En effet, ce qui constitue pour le système A une suite logique des événements ne correspond pas nécessairement à la prochaine étape pour Exact.

 

Le système A en est déjà à l'étape 3. Exact en est encore à l'étape 2.

Supposons qu'un processus métier comporte cinq étapes :

  1. Créer un bon de commande
  2. Traitement d'une opération de production
  3. Enregistrer une extradition
  4. Créer une facture
  5. Mettre à jour les stocks

Cet ordre est essentiel pour le processus opérationnel.

L'étape 3 peut dépendre de l'étape 2. Et l'étape 4 ne peut être exécutée qu'une fois que l'étape 3 a été traitée avec succès.

Mais d'un point de vue technique, il peut s'agir d'événements distincts ou d'appels d'API.

Entre-temps, l'application externe continue de fonctionner normalement.

L'étape 1 est en cours d'envoi. L'étape 2 est en cours d'envoi. L'étape 3 est déjà prête.

L'application peut alors en fait dire :

“ Voici l'étape 3. ”

Alors qu'Exact affirme encore :

“ Attends un peu. Je suis encore à l'étape 2. ”

D'un point de vue technique, personne ne fait rien de mal.

L'application émettrice envoie les données. L'API reçoit les messages. Exact traite les commandes.

Mais les systèmes ne comprennent pas automatiquement l'ordre dans lequel ils s'enchaînent.

 

Une connexion via une API ne résout pas automatiquement ce problème

C'est une distinction importante.

Une API permet d'établir une connexion technique entre deux systèmes.

Le système A peut par exemple dire à Exact :

Créer cette commande

Et Exact peut y répondre.

Mais une API ne connaît pas pour autant automatiquement le déroulement complet du processus métier entre les deux systèmes.

Quelle transaction faut-il effectuer en premier ?

Peut-on déjà passer à la suivante ?

La transaction précédente a-t-elle bien été traitée avec succès ?

Que faut-il faire lorsque Exact ne répond temporairement pas ?

Et que se passe-t-il aux étapes 4 et 5 lorsque l'étape 3 échoue ?

Ces questions ne concernent pas un seul appel d'API.

Ce sont des questions relatives à la logique des processus et à l'architecture d'intégration.

 

Du « data dump » au traitement contrôlé

Ce problème est récemment apparu très clairement lors d'une réunion technique chez Sense-Cloud.

Différentes applications peuvent envoyer leurs événements vers Exact, mais il faut bien qu'il y ait un endroit où l'on contrôle ce qui peut être traité et à quel moment.

En fait, la solution est étonnamment simple à expliquer :

Mettez en place une file d'attente intelligente entre l'application et Exact.

Au lieu de transmettre immédiatement chaque événement, les actions entrantes sont d'abord collectées.

La file d'attente supervise ensuite le traitement :

réceptionner → classer → traiter → vérifier

L'application frontale n'a donc pas besoin de connaître toutes les dépendances internes d'Exact.

L'application peut transmettre ses événements.

La couche d'intégration veille à ce qu'elles soient acheminées de manière contrôlée et dans le bon ordre vers Exact.

 

Imaginez la circulation à un carrefour très fréquenté

Sans signalisation routière, toutes les voitures pourraient techniquement atteindre le carrefour.

Ce n'est pas là le problème.

Le problème survient lorsque tout le monde décide en même temps de continuer à rouler.

Dans le cadre d'une intégration, une file d'attente remplit en fait une fonction similaire.

Des données provenant de différents processus sont transmises.

Mais tout ne doit pas nécessairement être transmis immédiatement.

Commençons par cette transaction.

Tu as réussi ?

Et maintenant, le suivant.

Ensuite, le suivant.

C'est ainsi qu'une succession d'événements techniques isolés redevient un processus opérationnel maîtrisé.

 

Et si l'une des étapes échouait ?

C'est là que ça devient vraiment intéressant.

En effet, une intégration fiable ne doit pas seulement fonctionner correctement lorsque tout va bien.

Imaginons que :

  1. Création d'un bon de commande — réussie
  2. Opération de production — réussie
  3. Extradition — échec
  4. Créer une facture — en attente
  5. Mise à jour des stocks — en attente

Dans ce cas, vous ne voulez pas recommencer tout le processus depuis le début.

Les étapes 1 et 2 ont en effet déjà été traitées.

Tu veux savoir exactement quelle étape a échoué.

Cette action doit être visible.

Il faut ensuite pouvoir proposer à nouveau cette action spécifique une fois le problème résolu.

Ce n'est qu'ensuite que le reste de la file d'attente pourra avancer.

Cela signifie qu'une bonne file d'attente ne se contente pas d'assurer l'ordre, mais garantit également des aspects tels que :

  • suivi ;
  • gestion des erreurs ;
  • réessayer ;
  • traçabilité.

La file d'attente devient ainsi bien plus qu'un simple tampon technique.

Ce sera un mécanisme permettant de garantir la gestion des processus opérationnels entre différents systèmes.

 

Et c'est justement dans le cadre d'une approche « best-of-breed » que cela revêt toute son importance

C'est là le revers intéressant de l'approche « best-of-breed ».

Plus une organisation utilise d'applications spécialisées, plus il y a, au final, de processus autonomes qui doivent être coordonnés.

Une boutique en ligne s'y connaît bien en matière de commerce électronique.

Un WMS s'y connaît très bien en logistique.

Une application de production connaît le processus de production.

Un CRM connaît le client.

Et Exact dispose de ses propres processus administratifs et ERP.

Mais aucun de ces systèmes ne comprend automatiquement toute la logique interne de tous les autres systèmes.

Ils communiquent entre eux via des API, mais cela ne signifie pas pour autant qu'ils comprennent les processus les uns des autres.

C'est pourquoi chaque application supplémentaire n'entraîne pas seulement une augmentation du nombre de liaisons.

La nécessité de bien organiser la coordination entre ces liens s'accroît également.

 

Cela modifie également la question que vous devez poser lors d'un couplage

Lors d'une nouvelle intégration, on commence souvent par :

“ Cette application dispose-t-elle d'une API ? ”

Ensuite :

“ Peut-on le relier à Exact ? ”

Ce sont là des questions importantes.

Mais cela ne suffit pas.

Il y a encore une question à ajouter à la fin :

“ Qui veillera à ce que les étapes de la procédure soient respectées ? ”

En effet, lorsque différents systèmes commencent à fournir des données selon leur propre logique, il faut déterminer quelque part ce qui a la priorité, ce qui doit attendre et ce qui se passe en cas de problème.

 

De l'interfaçage API à la couche d'intégration

Au sein de Sense-Cloud, nous utilisons pour cela Clickker et CAS.

Clickker garantit un accès standardisé à Exact.

CAS Je peux ensuite organiser la logique métier autour de cela, notamment les flux et les fonctionnalités de file d'attente.

Cela crée ainsi, entre l'application « best-of-breed » et Exact, une couche qui permet non seulement de transmettre les données, mais aussi de contrôler comment et quand celles-ci sont traitées.

Cette différence est importante.

Car :

La réception de données ne constitue pas encore un processus.

Le fait de relier des systèmes ne revient pas encore à assurer la gestion des processus.

Et :

Une API qui fonctionne ne garantit pas automatiquement le bon fonctionnement de la chaîne.

 

La prochaine fois que vous connecterez une application à Exact…

Ne vous contentez donc pas de demander :

Cette application peut-elle envoyer des données vers Exact ?

Demandez également :

Savez-vous Exactement quelles données doivent être traitées en premier ?

L'autre application sait-elle quand Exact est prêt pour l'étape suivante ?

Et si les deux systèmes ne sont pas informés l'un de l'autre :

Mais alors, qui veille au respect de l'ordre ?

En effet, dans le cadre d'une stratégie « best-of-breed », de plus en plus de systèmes devront communiquer entre eux.

Toutes les données peuvent être transmises sans aucun problème technique.

Mais il faut tout de même que quelqu'un décide de l'ordre des priorités.

Les API relient les systèmes. Une file d'attente intelligente supervise le processus.

*Le principe du « best-of-breed » signifie qu'une organisation n'utilise pas un seul progiciel pour tout, mais choisit, pour chaque processus métier, la meilleure application spécialisée.

Par exemple : Exact pour l'ERP/la gestion financière, un WMS distinct pour la logistique, un CRM pour les ventes et un PIM pour les informations sur les produits. L'avantage réside dans la spécialisation ; le défi consiste à faire en sorte que tous ces systèmes fonctionnent bien ensemble et échangent les données dans le bon ordre.

Connectivité Exact

Une question concernant votre environnement Exact ?

Vous souhaitez savoir comment votre application Exact peut mieux s'intégrer à vos applications, données ou processus ? Nous serons ravis de vous aider à y réfléchir !