OCI Punchout Katalog
Der Online-Shop kann als OCI Punchout Katalog benutzt werden. Der Kunde kann in den Katalog eingesprungen, einen Warenkorb zusammenstellen und diesen an das einkaufende SAP-System zurückliefern.
Es gibt verschiedene Versionen der OCI Spezifikation. Der Shop unterstützt Aufrufe bis Version 5.0
Die OCI Spezifikation von SAP definiert die aufrufenden Parameter und die Form des Rücksprungs.
Die Spezifikation liegt unter
https://wiki.scn.sap.com/wiki/display/SRM/OCI+Documentation
Aufruf des OCI Katalogs
Einsprungpunkt für das aufrufende System ist immer
der dann noch mit dem Benutzernamen und Kennwort ergänzt wird, der für die Anmeldung im Shop definiert wurde. Die Felder können als URL Parameter USERNAME und PASSWORD übergeben werden (Aufruf des URLs per GET-Methode) oder beim Aufruf über POST als Formularfelder USERNAME und PASSWORD.
Zusätzlich übergibt SAP beim Aufruf eine HOOK_URL für den Rücksprung. Nur wenn ein HOOK_URL angegeben ist, schaltet der Shop korrekt in den OCI-Modus.
Zusätzlich können noch ~Target für einen Rücksprung auf eine bestimmte Framehierarchie (Aufruf erfolgt z.B. innerhalb eines iframe-Fensters) oder eine FUNCTION mitgeliefert werden, mit der der Shop spezielle Aufgaben erledigt (siehe weiter unten BACKGROUND_SEARCH).
Ein Aufruf-URL ergibt sich also z.B. mit Benutzername lidl und Kennwort lidl mit
Achtung: alles hinter https://shop.firma.com/oci/?USERNAME=lidl&PASSWORD=lidl wird dynamisch vom aufrufenden System generiert und ist nicht durch den Shop vorgegeben.
Konto für den OCI Aufruf
Während die Einsprungadresse für alle Kunden identisch ist, muss der Benutzername und das Kennwort für jeden OCI Kunden getrennt angelegt werden. Diese Daten werden im Einkaufssystem des Kunden hinterlegt und alle Mitarbeiter des Kunden springen über den selben Account in den Katalog.
Das Konto muss so konfiguriert sein, dass beim ersten Anmelden keine Bestätigungen mehr notwendig sind.
Das Konto muss den gleichen Kundengruppen zugeordnet werden, wie alle anderen Mitarbeiter der Firma auch.
Das Konto kann über das Admin Backend angelegt werden oder mit einer normalen Neukunden Registrierung.
Über die Registerkarte Extern kann im Admin Backend eine Reihe von Parametrisierungen vorgenommen werden, u.a. nach welchem Klassifikationssystem die Artikel zurückgemeldet werden. Im Feld Punchout Klassifikation kann dazu:
ECLASS
UNSPSC
ETIM
eingetragen werden. Natürlich müssen diese Klassifikationssysteme dann auch in den Artikelstammdaten enthalten sein.Ist nichts eingetragen, wird ECLASS angenommen.

Sind im Artikelstamm mehrere Versionen der Klassifikationssysteme gepflegt, kann der Eintrag durch einen Bindestrich und die Versionsnummer ergänzt werden. Für EClass 11 oder EClass 13 würden dann die Einträge ECLASS-11 bzw. ECLASS-13 lauten.
Die korrekte Wahl der Klassifikation und der Version muss mit dem Kunden geklärt werden.
Testaufruf
Um den Shop im Katalogmodus zu prüfen und die Rückgabewerte an das SAP System zu sichten, kann der Shop mit der URL
https://shop.firma.com/oci/test
aufgerufen werden. In den Eingabefeldern müssen die angelegten Zugangsdaten für Benutzername und Kennwort eingegeben werden.
OCI Felder
Am Ende der Punchout Session gibt der Shop die ausgewählten Produkte als einzelne Datenfelder an das aufrufende Einkaufssystem des Kunden zurück. Die untenstehende Auflistung definiert die Defaultfelder und mit welcher Information sie befüllt werden.
NEW_ITEM-DESCRIPTION:{name1}
NEW_ITEM-QUANTITY:{count}
NEW_ITEM-UNIT:{unit}");
NEW_ITEM-PRICE:{unitprice}
NEW_ITEM-CURRENCY:{currency}
NEW_ITEM-VENDORMAT:{stockno}
NEW_ITEM-LONGTEXT:{name}
NEW_ITEM-EXT_CATEGORY:{category}
NEW_ITEM-PRICEUNIT:{priceunit}
NEW_ITEM-LEADTIME:{leadtime}
NEW_ITEM-VENDOR:{vendor}
NEW_ITEM-MANUFACTCODE:{brand}
NEW_ITEM-MATNR:{buyerstockno}
NEW_ITEM-CONTRACT:{contract}
NEW_ITEM-CONTRACT_ITEM:{contractitem}
NEW_ITEM-EXT_CATEGORY_ID:{eclass}
NEW_ITEM-EXT_SCHEMA_TYPE:{classification}
NEW_ITEM-EXT_PRODUCT_ID:{stockno}
NEW_ITEM-ZECCN:{eccn}
NEW_ITEM-ZALNUM:{alnumber}
NEW_ITEM-ZSTAWN:{customsnumber}
NEW_ITEM-ZHERKL:{countryoforigin}
NEW_ITEM-ZPUL:{preferentialorigin}
Die Angaben müssen immer in der Form OCI Feld, Doppelpunkt und dann Text inklusive gewünschter Platzhalterfelder angegeben sein. Pro Zeile ist nur ein Feld erlaubt.
Anstelle der Platzhalterfelder in geschwungenen Klammern kann auch einfacher Text angegeben werdne, der dann unverändert bei jedem Artikel in das Feld geschrieben wird, z.b.
NEW_ITEM-ATTACHMENT_TITLE:Produktbild
Als Platzhalterfelder können zusätzlich zu den oben abgebildeten alle Datenbankfelder benutzt werden, die in der Artikelstammtabelle items enthalten sind.
Wünscht ein Kunde ein anderes Mapping, kann im Admin Backend auf der Registerkarte Extern dieses Kunden das Feld Punchout Mapping für eine abweichende Einstellung benutzt werden.

Sollen alle obenstehenden Felder unverändert befüllt, aber ein zusätzliches Feld z.B. NEW_ITEM-ATTACHMENT übertragen werden, dann bitte dieses Mapping eintragen:
*
NEW_ITEM-ATTACHMENT:{picture}
Der Stern übernimmt alle Felder des bereits bestehenden Mappings und definiert dann zusätzlich noch Felder in den Folgezeilen.
Sollen Felder weggenommen werden, muss leider ein komplettes Mapping selbst definiert werden. Dann bitte keinen Stern angeben und nur die Felder, die an den Kunden gemeldet werden sollen.
Background Search
Der Shop unterstützt auch die seit OCI 4.0 definierte Funktion BACKGROUND_SEARCH. Dabei wird im Parameter FUNCTION der Wert BACKGROUND_SEARCH übergeben und im Parameter SEARCHSTRING der Suchbegriff.
Der Aufruf erzeugt keine Benutzer-Session im Shop, sondern gibt das Suchergebnis sofort an das aufrufende SAP System zurück.
Validate
Der Shop unterstützt auch die seit OCI 3.0 definierte Funktion VALIDATE. Dabei wird im Parameter FUNCTION der Wert VALIDATE übergeben und im Parameter PRODUCTID die Artikelnummer.
Der Aufruf erzeugt keine Benutzer-Session im Shop, sondern gibt das Suchergebnis sofort an das aufrufende SAP System zurück.
DOWNLOADJSON für Offline Suche
Der Shop unterstützt auch die seit OCI 5.0 definierte Funktion DOWNLOADJSON, mit der das aufrufende System einen Suchindex der angebotenen Artikel für interne Suchoperationen im eProcurement System des Kunden vom Shop erhält.
Der Aufruf erzeugt keine Benutzer-Session im Shop, sondern gibt das Suchergebnis sofort an das aufrufende SAP System zurück.
Kommunikation an den Kunden
Nach dem Einrichten von Benutzerkonto und dem Hinterlegen der Preise kann der Kunde mit einem folgenden Mail über den Zugriff informiert werden
Die Aufrufparameter für den normalen OCI Einsprung wäre identisch mit dem Abruf des JSON Files dh.
TEST: https://shop-test.firma.com/oci/
Username: theuser
Password: thepassword
PROD: https://shop.firma.com/oci/
Username: theuser
Password: thepassword
D.h. der komplette Aufruf wäre dann
https://shop.firma.com/oci/?USERNAME=theuser&PASSWORD=thepassword&~OkCode=ADDI&~TARGET=_top&~CALLER=CTLG&HOOK_URL=SAPEVENT:POST
Derzeit würde dann z.B. folgende Felder zurückkommen:
NEW_ITEM-DESCRIPTION[1]: Anreissplatte,300x300mm,Qualitaet 1
NEW_ITEM-QUANTITY[1]: 1
NEW_ITEM-UNIT[1]: PCE
NEW_ITEM-PRICE[1]: 248,50
NEW_ITEM-CURRENCY[1]: EUR
NEW_ITEM-VENDORMAT[1]: 0249-033
NEW_ITEM-LONGTEXT_1:132[]: Anreissplatte,300x300mm,Qualität 1Porenfreier Spezialguss,fein geschabt
NEW_ITEM-MATNR[1]:
NEW_ITEM-CONTRACT[1]:
NEW_ITEM-CONTRACT_ITEM[1]:
NEW_ITEM-EXT_SCHEMA_TYPE[1]: ECLASS
NEW_ITEM-EXT_CATEGORY_ID[1]: 21031306
Das können wir dann gerne noch um CUSTOM_FIELDs erweitern – bitte einfach die gewünschten Felder benennen.
FUNCTION=BACKGROUND_SEARCH würde auch funktionieren.