Bonjour à tous,

Je dois développer un processus ETL en C# dont l'objectif est d'extraire les données de stock de notre Sage X3 pour générer un fichier EDIFACT (plus précisément un message INVRPT - Inventory Report) destiné à un partenaire logistique.

J'ai déjà effectué quelques recherches et j'ai une idée de l'architecture globale :

Extract : Me connecter en C# (via System.Data.SqlClient) directement à la base de données SQL de Sage X3.

Transform : Lire les données et utiliser une bibliothèque C# pour les mapper et les transformer en une structure EDIFACT.

Load : Écrire le résultat dans un fichier .edi.

J'ai identifié que les tables principales pour les informations de stock sont probablement STOCK (pour les quantités) et ITMMASTER (pour les détails des articles).

J'aimerais avoir votre avis d'experts et poser quelques questions ciblées pour m'assurer de partir dans la bonne direction :

Mes questions :

1. Extraction (Sage X3) :

Quelle est la meilleure pratique pour lire les données de stock ? Est-ce que l'attaque directe de la table STOCK (jointe à ITMMASTER) est une approche fiable ?

Y a-t-il des champs spécifiques ou des statuts dans ces tables auxquels je dois faire attention (par exemple, pour exclure les stocks bloqués, en transit, etc.) ?

Est-il fortement déconseillé de lire la base en direct ? Devrais-je plutôt (malgré la complexité) passer par la publication d'un Web Service Sage X3 ?

2. Transformation (C# / EDIFACT) :

Avez-vous des recommandations pour une bibliothèque .NET (C#) robuste pour générer des fichiers EDIFACT ? J'ai vu des mentions de EDI.Net ou EdiEngine. L'une d'elles est-elle préférable pour un message INVRPT ?

Existe-t-il des exemples ou des "gotchas" (pièges) connus lors de la création de segments EDIFACT pour les stocks (par exemple, les segments LIN pour l'article et QTY pour les quantités) ?

3. Processus (ETL) :

Y a-t-il des exemples de projets similaires (ETL C# depuis un ERP vers EDI) que je pourrais consulter pour m'inspirer de la structure du code ?

Merci d'avance pour vos conseils et votre temps !