OCI
SAP Open Catalog Interface. Le protocole de punchout maintenu par SAP, dominant dans les écosystèmes SAP SRM et SAP Ariba depuis le début des années 2000.
Qu'est-ce que OCI ?
OCI est un protocole de punchout dont le rôle est de permettre à un utilisateur d'un ERP SAP (SRM, Ariba, S/4HANA) de naviguer dans le catalogue web hébergé chez un fournisseur, de constituer un panier, puis de rapatrier ce panier dans son ERP sous forme de lignes de commande prêtes à approbation. Contrairement à cXML qui transporte les articles dans un XML, OCI transporte les articles dans les champs d'un formulaire HTML que le catalogue fournisseur poste vers l'ERP acheteur via le navigateur de l'utilisateur.
Cette mécanique simple — un POST HTTP standard avec un jeu de champs nommé
NEW_ITEM-* — explique le succès du protocole : aucun stack XML à
déployer côté fournisseur, aucun système d'échange B2B intermédiaire, juste une page web
qui sait soumettre un formulaire à l'URL fournie par l'ERP acheteur au lancement du
punchout.
Anatomie d'un retour OCI
Le flux OCI tient en deux temps : (1) l'ERP acheteur ouvre la session
en transmettant au catalogue fournisseur l'URL de retour (HOOK_URL) et les
identifiants utilisateur ; (2) au moment du checkout, le catalogue
poste vers cette URL un formulaire HTML contenant une ligne de paramètres
NEW_ITEM-<CHAMP>[n] par article du panier (où n est le
rang de la ligne, à partir de 1). Voici une trame minimale :
<!-- Formulaire HTML que le catalogue fournisseur poste vers le système acheteur (SAP) -->
<form method="POST" action="https://buyer.example/sap/bc/srm/return">
<input type="hidden" name="NEW_ITEM-DESCRIPTION[1]" value="Stylo bille noir" />
<input type="hidden" name="NEW_ITEM-MATNR[1]" value="" />
<input type="hidden" name="NEW_ITEM-QUANTITY[1]" value="2" />
<input type="hidden" name="NEW_ITEM-UNIT[1]" value="EA" />
<input type="hidden" name="NEW_ITEM-PRICE[1]" value="9.99" />
<input type="hidden" name="NEW_ITEM-PRICEUNIT[1]" value="1" />
<input type="hidden" name="NEW_ITEM-CURRENCY[1]" value="EUR" />
<input type="hidden" name="NEW_ITEM-VENDOR[1]" value="0000100042" />
<input type="hidden" name="NEW_ITEM-VENDORMAT[1]" value="SKU-123" />
<input type="hidden" name="NEW_ITEM-MATGROUP[1]" value="44121706" />
<input type="hidden" name="NEW_ITEM-LEADTIME[1]" value="3" />
<button type="submit">Valider le panier</button>
</form>
Le formulaire est généralement auto-submitté en JavaScript dès l'arrivée sur la page de
confirmation. Les champs NEW_ITEM-UNIT[n] portent une unité de mesure issue
de la recommandation UNECE Rec 20 (par exemple EA,
KGM, PCE), et les champs NEW_ITEM-CURRENCY[n]
portent un code monnaie ISO 4217 (EUR, USD,
GBP).
Versions
| Version | Statut | Notes |
|---|---|---|
| 2.0B | Historique | Sous-ensemble initial de champs NEW_ITEM-*. |
| 3.0 | Historique | Élargissement du jeu de champs et de la documentation. |
| 4.0 | Encore largement déployée | Spécification courte (~10 pages), référence stable pour SAP SRM. |
| 5.0 | Courante | Spécification complète (~50 pages), introduit la recherche fédérée multi-fournisseurs et les attributs étendus (services, contrats, attachments). |
Référence des champs NEW_ITEM-*
Les champs ci-dessous proviennent directement de la spécification SAP OCI 5.0 archivée
sur ediverse.io. Chaque ligne du panier répète l'ensemble du jeu de champs avec son indice
[n] propre.
| Champ | Rôle |
|---|---|
NEW_ITEM-DESCRIPTION[n] | Description de l'article. |
NEW_ITEM-MATNR[n] | Numéro produit SRM de l'article (à remplir uniquement si connu du catalogue). |
NEW_ITEM-QUANTITY[n] | Quantité commandée pour la ligne. |
NEW_ITEM-UNIT[n] | Unité de mesure de la quantité (UNECE Rec 20). |
NEW_ITEM-PRICE[n] | Prix de l'article par unité de prix. |
NEW_ITEM-PRICEUNIT[n] | Unité de prix (si vide, vaut 1). |
NEW_ITEM-CURRENCY[n] | Code monnaie ISO 4217 de la ligne. |
NEW_ITEM-LEADTIME[n] | Délai de livraison en jours. |
NEW_ITEM-VENDOR[n] | Identifiant du fournisseur dans le système acheteur. |
NEW_ITEM-VENDORMAT[n] | Référence produit du fournisseur (catalogue source). |
NEW_ITEM-MANUFACTCODE[n] | Identifiant du fabricant. |
NEW_ITEM-MANUFACTMAT[n] | Référence du fabricant pour le produit. |
NEW_ITEM-MATGROUP[n] | Groupe de matières (UNSPSC ou taxonomie interne). |
NEW_ITEM-SERVICE[n] | Indicateur de ligne de service plutôt que de produit. |
NEW_ITEM-CONTRACT[n] | Référence de contrat applicable. |
NEW_ITEM-CONTRACT_ITEM[n] | Référence de poste contractuel applicable. |
NEW_ITEM-EXT_CATEGORY_ID[n] | Identifiant de catégorie externe (UNSPSC, eCl@ss, etc.). |
NEW_ITEM-EXT_CATEGORY[n] | Schéma de catégorisation externe utilisé. |
NEW_ITEM-EXT_PRODUCT_ID[n] | Identifiant produit externe (GTIN, codes-barres, etc.). |
NEW_ITEM-EXT_SCHEMA_TYPE[n] | Type de schéma externe utilisé. |
NEW_ITEM-EXT_QUOTE_ID[n] | Référence de devis externe associé à la ligne. |
NEW_ITEM-EXT_QUOTE_ITEM[n] | Référence de poste de devis externe. |
NEW_ITEM-ATTACHMENT[n] | URL ou fichier joint à la ligne. |
NEW_ITEM-ATTACHMENT_PURPOSE[n] | Rôle de la pièce jointe (fiche technique, photo, etc.). |
NEW_ITEM-LONGTEXT_n:132[] | Texte long de description de la ligne (multi-ligne). |
NEW_ITEM-ITEM_TYPE[n] | Type de ligne (catalogue, service, etc.). |
NEW_ITEM-PARENT_ID[n] | Identifiant du parent pour les structures hiérarchiques. |
NEW_ITEM-SLD_SYS_NAME[n] | Nom du système d'information source (System Landscape Directory). |
NEW_ITEM-CUST_FIELD1[n] … 5 | Champs d'extension client, libre usage. |
Cas d'usage
- Punchout catalogue dans SAP SRM / S/4HANA Sourcing — l'utilisateur
navigue dans le catalogue fournisseur depuis l'écran de création de demande d'achat ;
au retour, les lignes
NEW_ITEM-*alimentent automatiquement la demande, qui part ensuite dans le workflow d'approbation interne. - SAP Ariba Punchout — bien qu'Ariba pousse cXML comme protocole principal, OCI reste accepté pour les fournisseurs historiques, en particulier les catalogues spécialisés (papeterie, fournitures industrielles, MRO).
- Recherche fédérée multi-fournisseurs (OCI 5.0) — l'acheteur soumet une requête textuelle à plusieurs catalogues OCI 5.0 simultanément ; chaque catalogue répond avec une liste structurée d'articles directement consommable côté ERP.
- Catalogues MRO — petite quincaillerie, consommables, EPI : OCI reste majoritaire chez les fournisseurs de ces familles.
Pour aller plus loin
- SAP Open Catalog Interface 5.0 — Specification (PDF, 50 pages, archivé localement).
- SAP OCI 4.0 — Specification (PDF, 10 pages) pour la version courte.
- help.sap.com — portail officiel SAP : documentation contextuelle pour SAP SRM et S/4HANA Sourcing (URL UUID variable selon les releases).