SAP IDoc — Intermediate Document
Le format pivot de SAP. L'IDoc n'est pas un standard de transport comme EDIFACT ou X12 : c'est le conteneur de données interne par lequel SAP émet et reçoit ses documents commerciaux. Dans la pratique, toute intégration EDI avec une entreprise sous SAP finit par mapper de l'EDIFACT ou du X12 vers — et depuis — un IDoc.
Qu'est-ce qu'un IDoc ?
IDoc signifie Intermediate Document. C'est une structure de données standardisée par SAP pour transporter un document métier (commande, facture, avis d'expédition, fiche article…) entre un système SAP et un autre système — qu'il soit SAP (via ALE, Application Link Enabling) ou externe (via une interface EDI).
Le point essentiel : l'IDoc est indépendant du transport et du standard cible. SAP produit toujours un IDoc ; c'est un composant tiers — le sous-système EDI (SAP Integration Suite / PI-PO, ou un éditeur comme SEEBURGER, Lobster, OpenText…) — qui traduit cet IDoc en EDIFACT, en X12 ou en un autre format avant de l'envoyer au partenaire, et inversement à la réception.
Les trois enregistrements
Tout IDoc est composé de trois types d'enregistrements :
| Enregistrement | Table | Rôle |
|---|---|---|
| Contrôle (1 seul) | EDIDC | Métadonnées de routage : émetteur/destinataire (partenaires logiques), type de message, type d'IDoc, sens (1 = sortant, 2 = entrant), port. |
| Données (n) | EDIDD | Le contenu métier, organisé en segments hiérarchiques (E1EDK* en-tête, E1EDP* postes…). |
| Statut (n) | EDIDS | L'historique de traitement : une suite de codes statut horodatés (03 transmis au port, 53 enregistré, 51 erreur…). |
Anatomie d'un IDoc
Un IDoc sortant ORDERS05 (commande d'achat) se lit comme un en-tête de contrôle suivi des segments de données imbriqués :
EDI_DC40 |IDoctype=ORDERS05 |Mestype=ORDERS |Direction=1 (sortant)
|Sender=PARTNER_SAP |Receiver=4012345500004 |Port=SUBSYS_EDI
E1EDK01 Données d'en-tête : devise EUR, n° de commande, Incoterm
E1EDK14 Qualifiants d'organisation (société, division)
E1EDKA1 Rôle partenaire AG (donneur d'ordre) — GLN 5412345000013
E1EDKA1 Rôle partenaire LF (fournisseur) — GLN 4012345500004
E1EDP01 Poste 1 : quantité 240, unité PCE
E1EDP19 Identifiant article : GTIN 4006381333931
E1EDP05 Conditions de prix : 2,85 EUR
E1EDP01 Poste 2 : quantité 120, unité PCE
E1EDP19 Identifiant article : GTIN 4006381333948
Les segments commencent par E1 suivi d'un code mnémonique :
E1EDK01 (en-tête, Kopf), E1EDKA1 (partenaire),
E1EDP01 (poste, Position), E1EDP19 (identifiant article).
La hiérarchie (en-tête → postes → sous-postes) est portée par les niveaux de segment, comme
les groupes de segments d'un message EDIFACT.
Type de message vs type de base
Deux notions à ne pas confondre :
- Type de message (message type) — la nature logique du document :
ORDERS,INVOIC,DESADV,MATMAS. - Type de base / type d'IDoc (basic type) — la structure technique versionnée :
ORDERS05,INVOIC02,DELVRY03. Le suffixe numérique est la version de la structure.
| Type de message | Type de base courant | Document |
|---|---|---|
| ORDERS | ORDERS05 | Commande d'achat / de vente |
| ORDRSP | ORDERS05 | Réponse / confirmation de commande |
| DESADV | DELVRY03 | Avis d'expédition |
| INVOIC | INVOIC02 | Facture / avoir |
| MATMAS | MATMAS05 | Fiche article (donnée de base) |
| DEBMAS / CREMAS | DEBMAS06 / CREMAS04 | Fiche client / fournisseur |
| REMADV | PEXR2002 | Avis de règlement |
ALE, ports et profils partenaires
La circulation des IDoc est paramétrée par quelques objets clés, manipulés via des transactions SAP bien connues des intégrateurs :
- Profil partenaire (
WE20) — pour chaque partenaire et chaque type de message, le sens, le type de base, le port et le mode de traitement. - Port (
WE21) — le canal de sortie : fichier (le sous-système lit un répertoire), tRFC (vers un autre SAP), ou XML. - Message control — déclenche l'émission d'un IDoc à partir d'un document applicatif (p. ex. une commande créée génère un ORDERS05).
- Suivi (
WE02/WE05) — la liste des IDoc et leur statut ;BD87pour retraiter,WE19pour tester.
Côté sortant : document applicatif → IDoc → port → sous-système EDI → EDIFACT/X12 → partenaire. Côté entrant : partenaire → EDIFACT/X12 → sous-système → IDoc → function module de posting qui crée le document dans SAP.
IDoc ↔ EDIFACT / X12
Codes statut
Les statuts les plus rencontrés (sortants 0x–4x, entrants 5x–7x) :
| Statut | Sens | Signification |
|---|---|---|
03 | Sortant | IDoc transmis au port (remis au sous-système). |
12 | Sortant | Dispatch OK (envoi confirmé). |
30 | Sortant | IDoc prêt, en attente de traitement. |
02 / 04 | Sortant | Erreur de transfert / dans le port. |
53 | Entrant | Document applicatif enregistré avec succès. |
51 | Entrant | Erreur de posting (données métier rejetées). |
64 | Entrant | IDoc prêt à être posté. |
Pour aller plus loin
- SAP Help — IDoc Interface / ALE (documentation officielle).
- Le mapping IDoc ↔ EDIFACT/X12 est assuré par les suites EDI (SAP Integration Suite, SEEBURGER, Lobster, OpenText, Comarch…).