BMS a pour ambition d'intégrer la gestion automatique de documents sur BC grâce à l'IA et l'exploitation de services Azure.
Microsoft nous a devancé face à ce défi. La preview publique de 2026 intégrera un « payable agent », capable d’insérer une facture d’achat à partir d’un fichier PDF. Notre solution se base sur la même logique et les mêmes objets que Microsoft mais une fonctionnalité plus approfondie. Elle permettrait de supporter d’autres documents que des factures d’achats, et en outre peu importe leur format.
Il s’agit d’un POC que nous vous proposons et il est sujet à évoluer pour des projets plus ambitieux.
I Schéma de fonctionnement du flux
II Fonctionnalité en action
III Fonctionnement détaillé
1 Email
Il n’y a aucune exigence particulière pour l’adresse email utilisée, si ce n’est que Logic Apps devra pouvoir y accéder. Dans notre cas, une boite mail partagée est utilisée.
2 Logic Apps
Un travail préliminaire de stockage de l’information est nécessaire avant de pouvoir exploiter les documents et les intégrer sur Business Central.
Ce flux permet donc d’automatiser le traitement d’emails entrants provenant de tiers, et extraire les pièces jointes tout en ignorant les signatures.
On peut observer l’articulation du flux avec sa définition suivante sur Logic Apps :
Le flux sera déclenché à chaque réception d’email dans un dossier spécifique :
Le corps du mail ainsi que toutes ses pièces jointes sont vérifiés. Chaque fichier qui pourrait contenir de l’information est analysé tout en excluant les signatures. La définition de ces signatures est arbitraire et soumise à évolution : gif ou image (de type jpeg, jpg ou png) et de faible taille (inférieur à 10 Ko).
Dès lors que nous nous sommes affranchis des signatures, les autres fichiers sont sauvegardés dans un blob storage Azure sous leur nom d’origine.
On peut voir le chemin d’accès de notre paramétrage : connection SOLERBC ; storage account solerbc ; container soleredi
3 Compte de stockage Azure
Un compte de stockage est requis pour déposer les fichiers reçus par email. Il doit être accessible par trois composants de notre fonctionnalité :
- Instance Logic Apps en écriture
- Instance Document Intelligence en lecture
- Business Central via lecture par appels API
Pour Logic Apps, l’approche RBAC (Role-Based Access Control) est utilisée et permet d’attribuer le rôle “Storage Blob Data Contributor” à une entité managée, ici notre instance LogicApp.
Résultat :
Une option alternative aurait été d’octroyer l’accès en lecture par Logic Apps grâce à une ressource de partage Azure ou CORS (Cross-Origin Resource Planning).
Pour permettre à Business Central d’accéder à notre compte de stockage, nous devons :
- Activer l’accès depuis tous les réseaux, ou celui spécifique utilisé pour se connecter à BC
- Récupérer les clés d’accès du compte de stockage pour faire un appel à partir de BC
4 Récupération des fichiers dans Business Central
Pour cette étape, nous utilisons les bibliothèques publiques de Microsoft : https://github.com/microsoft/BCApps/tree/main/src
L’appel aux fichiers du Blob se fait via l’URL : https://<nom_du_storage>.blob.core.windows.net/<nom_du_conteneur>
Vous pouvez retrouver ci-dessous le code source, avec les clés qui sont mises en cache, soit en mémoire isolée, soit via Azure Key Vault dans notre POC :
Un des exemples de mail envoyé comprenait des documents de différents types et nous obtenons le résultat suivant sur l’environnement Business Central :
5 Analyse à partir d’Azure Document Intelligence
Azure AI Document Intelligence est un service d’intelligence artificielle, basé sur un modèle avancé de machine learning, pour extraire automatiquement et avec précision du texte, des tableaux, des métadonnées et des structures depuis des documents. L’outil permet de se focaliser sur l’analyse des données plutôt que leur collecte.
Le déploiement du service implique, préalablement, sa définition :
- Création d’une instance Document Intelligence
- Choix du modèle d’analyse parmi les nombreux proposés : dans notre cas, “General Documents”, adapté à un grand nombre de formats
- Document Intelligence Studio propose une interface utilisateur pour tester les modèles et vérifier leur validité avec visualisation des résultats sur des documents de test
La soumission des documents au service, suit un cycle pré-défini :
- Générer un jeton d’accès SAS pour le conteneur utilisé, avec un protocole (https recommandé) et une durée de validité :
- Construire l’URL avec la structure https://<blob url>?<Container token>
- Appel à Business Central par API en 2 étapes dont on retrouve le code :
- Soumission du fichier (POST)
- Récupération du résultat de l’analyse (GET)
6 Reconnaissance du type de document et correspondance
Un modèle d’IA déployé dans une instance Azure Foundry va analyser le document et définir son type (bon de commande, commande client, facture, etc …). Vous pouvez retrouver précisément comment paramétrer et déployer un modèle grâce à notre article sur les function callings.
La méthodologie employée par le modèle est la suivante :
- Envoi du contenu du document avec une liste des types possibles
- Détermination du type parmi la liste proposée
- Renvoi des correspondances entre les champs usuel du type de document reconnu sur Business Central et les donnés du fichiers
Exemple du fonctionnement de la fonction avec la création d’un bouton spécifique et en retour la correspondance avec des champs standards de Business Central :
IV Conclusion
Cette POC ouvre des perspectives intéressantes et infinies. Pour notre part, nous poursuivons nos expérimentations afin de proposer une solution simple et flexible pour intégrer des fichiers binaires de différents types dans Business Central.
L’automatisation a plusieurs avantages:
- Réduire les taches manuelles
- Limiter les erreurs de saisie
- Gain de temps considérable sur le traitement des documents
N’hésitez pas à nous contacter si vous souhaitez obtenir plus d’informations ou même participer à ce projet.
Le code source est disponible sur un dépôt GitHub personnel : https://github.com/BMSPedro/OCR.git