ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.
OAGIS — Business Object Documents en XML canonique

OAGi — OAGIS et Business Object Documents

Le standard de fait du modèle canonique d'intégration ERP. OAGIS encode les interactions métier comme des BODs combinant un nom et un verbe — ProcessPurchaseOrder, GetItem, SyncCustomerParty, ConfirmBOD.

Qu'est-ce que OAGi et OAGIS ?

OAGi est un consortium ouvert créé en 1994 par des éditeurs et utilisateurs d'ERP nord-américains pour résoudre le problème majeur de l'époque : l'intégration point-à-point entre systèmes hétérogènes (SAP, Oracle, JD Edwards, PeopleSoft, Baan…). Plutôt que d'écrire un mapper par couple d'applications, l'idée a été de publier un vocabulaire commun : un ensemble normalisé d'objets métier et de verbes qui permettrait à chaque ERP de produire et consommer des messages canoniques.

Le produit principal d'OAGi est OAGIS — Open Applications Group Integration Specification. OAGIS définit deux briques fondamentales : une bibliothèque de nouns (objets métier comme PurchaseOrder, Invoice, Item, CustomerParty, Shipment) et un ensemble de verbs (actions canoniques comme Process, Acknowledge, Confirm, Get, Show, Sync, Notify). Le couplage d'un verbe avec un nom donne un BOD — Business Object Document, qui est la maille fondamentale d'échange.

Architecture d'un BOD

Tout BOD OAGIS suit la même structure binaire : une partie d'enveloppe technique (l'ApplicationArea) et une partie de charge utile métier (la DataArea).

SectionContenuRôle
ApplicationAreaSender, Receiver, CreationDateTime, BODID, Signature optionnelleMétadonnées d'enveloppe : qui envoie, quand, identifiant unique du message, signature.
DataAreaLe verbe (Process, Get, Sync…) puis le ou les nounsLe verbe précise l'intention, le noun porte les données métier.

Cette double séparation permet à un même Item d'être manipulé par n'importe quelle action : GetItem (lecture), ShowItem (réponse), SyncItem (push de données maître), ProcessItem (action transactionnelle), AcknowledgeItem (accusé). Le couplage explicite verbe + noun fait la singularité d'OAGIS face à des standards plus monolithiques.

Anatomie d'un ProcessPurchaseOrder

Le BOD ProcessPurchaseOrder est l'équivalent canonique d'un EDI 850 ou d'un ORDERS : un acheteur émet une commande d'achat vers un fournisseur. Voici un exemple condensé en OAGIS 10 :

xml ProcessPurchaseOrder-OAGIS-10.xml
<?xml version="1.0" encoding="UTF-8"?>
<ProcessPurchaseOrder
    xmlns="http://www.openapplications.org/oagis/10"
    releaseID="10.11" versionID="10.11">

  <ApplicationArea>
    <Sender>
      <LogicalID>ERP-CENTRAL-EU</LogicalID>
      <ComponentID>PurchasingModule</ComponentID>
      <ConfirmationCode>OnError</ConfirmationCode>
    </Sender>
    <CreationDateTime>2026-05-14T10:15:00Z</CreationDateTime>
    <BODID>5a8f7d2e-2b15-4c1a-9e6f-acme-2026-0014</BODID>
  </ApplicationArea>

  <DataArea>
    <Process>
      <ActionCriteria>
        <ActionExpression actionCode="Add"/>
      </ActionCriteria>
    </Process>
    <PurchaseOrder>
      <PurchaseOrderHeader>
        <DocumentID><ID>PO-2026-000871</ID></DocumentID>
        <DocumentDateTime>2026-05-14T10:00:00Z</DocumentDateTime>
        <BuyerParty>
          <PartyIDs><ID>4012345678901</ID></PartyIDs>
          <Name>Acme Industries</Name>
        </BuyerParty>
        <SupplierParty>
          <PartyIDs><ID>5790000123456</ID></PartyIDs>
          <Name>Northern Components</Name>
        </SupplierParty>
        <RequestedDeliveryDateTime>2026-06-04T08:00:00Z</RequestedDeliveryDateTime>
      </PurchaseOrderHeader>
      <PurchaseOrderLine>
        <LineNumber>1</LineNumber>
        <Item>
          <ItemIDs><ID>RBC-2200</ID></ItemIDs>
          <Description>Roulement à billes 22 mm</Description>
        </Item>
        <Quantity unitCode="EA">240</Quantity>
        <UnitPrice><Amount currencyID="EUR">8.40</Amount></UnitPrice>
      </PurchaseOrderLine>
    </PurchaseOrder>
  </DataArea>
</ProcessPurchaseOrder>

On reconnaît la structure générique : l'ApplicationArea identifie l'émetteur (LogicalID, ComponentID) et marque le BOD d'un UUID (BODID). La DataArea commence par le verbe Process avec son ActionExpression (ici Add — création), puis le noun PurchaseOrder avec son en-tête (PurchaseOrderHeader) et ses lignes (PurchaseOrderLine).

Les verbes OAGIS

OAGIS définit une dizaine de verbes principaux. Chacun documente une intention métier précise, et chaque BOD canonique combine un verbe et un noun.

VerbeSémantiqueExemple
ProcessDemande d'action transactionnelleProcessPurchaseOrder
AcknowledgeAccusé applicatif (positif ou négatif)AcknowledgePurchaseOrder
ConfirmConfirmation métier détailléeConfirmBOD
GetRequête de lectureGetItem, GetCustomerParty
ShowRéponse à un GetShowItem, ShowPurchaseOrder
SyncDiffusion de données maîtreSyncItem, SyncCustomerParty
NotifyÉvénement asynchrone, sans attente d'accuséNotifyShipment
UpdateMise à jour ciblée d'un objet existantUpdateItem
CancelAnnulation d'un BOD précédemment ProcessedCancelPurchaseOrder
LoadChargement en masseLoadInventoryCount

BODs les plus utilisés

Voici les BODs canoniques que l'on rencontre le plus souvent dans les architectures d'intégration ERP :

BODDomaineCas d'usage
ProcessPurchaseOrderAchatsÉmission de commande d'achat — équivalent canonique d'EDIFACT ORDERS ou X12 850.
AcknowledgePurchaseOrderAchatsAccusé applicatif de la commande — équivalent ORDRSP ou X12 855.
ProcessInvoiceComptabilitéFacture émise par le fournisseur — équivalent INVOIC ou X12 810.
ProcessReceiveDeliveryLogistiqueAvis de réception côté entrepôt destinataire.
SyncItemMasterMaster DataDiffusion du référentiel article entre ERP et systèmes adjacents (PIM, MES, WMS).
SyncCustomerPartyMaster DataDiffusion du référentiel client (CRM → ERP).
SyncSupplierPartyMaster DataDiffusion du référentiel fournisseur.
GetCatalogAchatsRequête de catalogue fournisseur (mode pull).
ShowCatalogAchatsRéponse à un GetCatalog avec le contenu du catalogue.
NotifyShipmentLogistiqueAvis d'expédition push — équivalent DESADV ou X12 856 (ASN).
SyncProductionOrderProductionDiffusion des ordres de fabrication entre ERP et MES.
ConfirmBODServiceBOD générique de confirmation utilisé après n'importe quel Process — l'équivalent OAGIS du CONTRL EDIFACT ou du 997 X12.

Catalogue des BODs documentés

Pages détaillées disponibles sur ediverse pour 50 BODs canoniques, regroupés par domaine fonctionnel (achats, logistique, catalogue, données maître, ventes, finance, production, RH) :

Achats

BODVerbeCas d'usage
ProcessPurchaseOrderProcessCommande d'achat — équivalent EDIFACT ORDERS / X12 850.
AcknowledgePurchaseOrderAcknowledgeAccusé de commande — équivalent ORDRSP / X12 855.
CancelPurchaseOrderCancelAnnulation d'une PO précédemment Processed.
GetPurchaseOrderGetRequête de lecture d'une PO existante.
ConfirmBODConfirmConfirmation métier générique — équivalent CONTRL / X12 997.

Logistique

BODVerbeCas d'usage
ProcessShipmentProcessAvis d'expédition push — équivalent DESADV / X12 856.
AcknowledgeShipmentAcknowledgeAccusé applicatif d'un ProcessShipment.
ProcessReceivedDeliveryProcessAvis de réception côté entrepôt — équivalent RECADV / X12 861.
AcknowledgeReceivedDeliveryAcknowledgeAccusé applicatif d'un ProcessReceivedDelivery.

Catalogue

BODVerbeCas d'usage
GetCatalogGetRequête catalogue fournisseur (pull).
ShowCatalogShowRéponse à GetCatalog avec contenu du catalogue.
ProcessCatalogProcessPush d'une mise à jour catalogue.
SyncCatalogSyncDiffusion en publication du catalogue.

Données maître — articles

BODVerbeCas d'usage
GetItemMasterGetRequête de fiche article complète.
ShowItemMasterShowRéponse à GetItemMaster.
SyncItemMasterSyncDiffusion du référentiel article (ERP → PIM, MES, WMS).

Données maître — tiers

BODVerbeCas d'usage
SyncCustomerPartySyncDiffusion du référentiel client (CRM → ERP).
SyncSupplierPartySyncDiffusion du référentiel fournisseur.
GetCustomerPartyGetRequête de fiche client.
ShowCustomerPartyShowRéponse à GetCustomerParty.

Ventes et devis

BODVerbeCas d'usage
ProcessSalesOrderProcessCommande de vente côté éditeur — miroir interne de ProcessPurchaseOrder.
AcknowledgeSalesOrderAcknowledgeAccusé applicatif d'une commande de vente.
GetSalesOrderGetRequête de commande de vente existante.
ProcessQuoteProcessÉmission de devis — équivalent QUOTES / X12 843.
ProcessInvoiceProcessFacture émise — équivalent INVOIC / X12 810.

Finance et comptabilité

BODVerbeCas d'usage
ProcessPaymentProcessPaiement enregistré côté ERP — équivalent PAYMUL / X12 820.
AcknowledgePaymentAcknowledgeAccusé applicatif d'un ProcessPayment.
ProcessRemittanceAdviceProcessAvis de paiement — équivalent REMADV / X12 820.
GetLedgerGetRequête grand livre comptable.
ShowLedgerShowRéponse à GetLedger avec écritures consolidées.
ProcessAccountingClassificationProcessClassification analytique (centre de coût, projet) appliquée à un objet métier.
ProcessJournalEntryProcessÉcriture comptable poussée vers le grand livre.
SyncJournalEntrySyncDiffusion d'écritures déjà postées vers BI / consolidation.
ProcessDebitCreditNoteProcessNote de débit ou avoir client — équivalent X12 812.
ProcessDunningInvoiceProcessRelance sur facture impayée (chaîne AR).

Production et fabrication

BODVerbeCas d'usage
ProcessProductionOrderProcessOrdre de fabrication poussé de l'ERP vers le MES.
ProcessProductionPerformanceProcessPerformance réelle de production remontée du MES vers l'ERP.
SyncProductionDefinitionSyncDéfinition technique de production (gamme, opérations) diffusée depuis le PLM.
SyncBOMSyncNomenclature (Bill of Materials) diffusée depuis le PLM.
GetBOMGetRequête de lecture canonique sur une BOM.

Entrepôt (logistique avancée)

BODVerbeCas d'usage
SyncReceivedDeliverySyncDiffusion en publication de l'état des réceptions clôturées.
ProcessShipDeliveryProcessOrdre d'expédition de livraison ERP → WMS.
ProcessShipNoticeProcessAvis d'expédition (ASN) canonique — équivalent DESADV / X12 856.
ProcessInventoryMovementProcessMouvement de stock (réception, sortie, transfert) remonté du WMS.
SyncWarehouseSyncRéférentiel entrepôt (sites, zones, emplacements) diffusé.

Ressources humaines

BODVerbeCas d'usage
SyncWorkerSyncRéférentiel salarié diffusé depuis le SIRH (matricule, contrat, organisation).
SyncPersonSyncIdentité personne (état civil, contact) indépendante du rôle salarié.
ProcessPayrollProcessRésultat consolidé d'un run de paie payroll → finance.
ProcessBenefitProcessAdhésion ou mise à jour d'avantage salarié — équivalent X12 834.
SyncOrganizationalUnitSyncStructure organisationnelle (entités, divisions, départements) diffusée.

OAGIS 9, 10 et après

OAGIS s'est construit par grandes générations successives.

  • OAGIS 8 (2002-2007) — premier format XML stable, fortement orienté SOAP, encore présent dans certaines plateformes legacy.
  • OAGIS 9 (2008-2014) — refonte autour de la modularité, ajout des Components réutilisables et clarification de la dichotomie ApplicationArea / DataArea. Très répandu dans l'aéronautique et l'auto US dans les années 2010.
  • OAGIS 10 (depuis 2014, releases incrémentales 10.0 → 10.11+) — base actuelle : encore plus modulaire, sérialisation JSON canonique en plus du XSD, intégration native avec REST, et adossement à la plateforme Score qui remplace progressivement l'outil de génération historique.
  • connectSpec — surcouche en cours de standardisation au sein d'OAGi : même grammaire BOD que OAGIS 10, mais formats et outils REST-first, dont les versions 10.12 / 10.12.1 publiées récemment sur oagi.org.

Cas d'usage : modèle canonique ERP

Le cas d'usage emblématique d'OAGIS est le modèle canonique d'intégration (canonical data model). Dans une architecture où plusieurs ERP, MES, WMS, PIM doivent s'interconnecter, plutôt qu'écrire N × (N − 1) mappers binaires, on définit un format canonique unique au centre — OAGIS — et chaque système publie / consomme via ce pivot. Le nombre de mappers passe à N, et chaque nouveau système ajouté à l'écosystème ne coûte qu'un seul mapping additionnel.

OAGIS s'oppose ici à l'EDI traditionnel (EDIFACT, X12), qui reste centré sur l'échange B2B inter-entreprises, alors qu'OAGIS opère majoritairement à l'intérieur d'une entreprise étendue ou d'un groupe industriel. Beaucoup d'intégrateurs orchestrent les deux conjointement : traduction EDIFACT / X12 en bordure, vie interne en OAGIS.

Pour aller plus loin

  • oagi.org — site officiel, téléchargement libre des spécifications OAGIS 10.x et connectSpec.
  • Wikipedia — OAGIS (l'article peut renvoyer 404 selon les renommages, retomber sur la catégorie OAGi).
  • EDIFACT sur ediverse — comparer les équivalences ORDERS / ProcessPurchaseOrder, INVOIC / ProcessInvoice.
  • UBL / PEPPOL sur ediverse — autre famille de BODs XML, axée e-invoicing public européen.