Knowledge-Hub zu üblichen SAP-Schnittstellen
Nicht alle Anforderungen und Geschäftsprozesse beschränken sich auf ein System, sondern werden innerhalb mehrerer Systeme realisiert. Um deren Zusammenwirken zu automatisieren und Abläufe zu optimieren, gilt es Systeme über Schnittstellen miteinander zu verbinden. Üblicherweise setzte sich die gesamte Systemlandschaft zudem nicht nur aus Systemen eines Herstellers (wie SAP) zusammen, sondern es gilt vielmehr Systeme diverser Hersteller und sogar Eigenentwicklungen über Standardschnittstellen zu integrieren. Im Laufe der Zeit wird diese Übersicht sukzessive weiterentwickelt; indem insbesondere eine Linksammlung zu Tutorials und Details integriert wird.
Gruppierung der Schnittstellen nach technischer Architektur
SAP-Standardintegration & Enterprise Messaging
- Business Application Programming Interfaces (BAPIs)
- Application Link Enabling (ALE)
- Remote Function Calls (RFC)
- Business Document (BDOC)
Dateibasierte und asynchrone Schnittstellen
- Electronic Data Interchange (EDI)
- Comma-separated values (CSV)
- Intermediate Document (Idoc)
Middleware & Prozessintegration
- SAP Exchange Infrastructure (XI) bzw. Process Integration (PI)
- SAP Java Connector (JCo)
- ABAP Push Channels
Web- und Cloud-Schnittstellen
- SAP HANA Extended Applications Services, Advanced Model (XSA)
- Representational State Transfer (REST)
- Simple Object Access Protocol (SOAP)
- Open Data Protocol (oData)
Daneben ist natürlich auch die manuelle Datenübertragung bzw. via Legacy Migration Workbench (LSMW Batch Input) oder CATT möglich.
Business Application Programming Interfaces (BAPIs)
Der objektorientierte Ansatz ist Stand der Technik, bildet Objekte der realen Welt ab (Ferrtigungsauftrag) und reduziert damit die Komplexität. Daten und Prozesse werden in Form von Business-Objekten (BO) verfügbar gemacht. Ein BO-Typ bildet einen dezidierten betriebswirtschaftlichen Sachverhalt, dessen Funktionalität und Daten ab.
Auf diese Objekte können externe Anwendungen mittels standardisierter Schnittstellen (BAPIs) zugreifen. Die BAPI-Programmierschnittstellen werden jeweils zu den BOs bereitgestellt, um externen Komponenten einen objektorientierten Zugriff auf SAP BOs zu gestatten ohne deren Implementierungsdetails kennen zu müssen. Es handelt sich dabei um RFC-fähige Funktionsbausteine mit festem Funktionsumfang. Sie gestattet den Datenaustausch sowohl zwischen SAP-Komponenten, als auch Nicht-SAP-Komponenten. Die technische Integration von Geschäftsprozessen über mehrere SAP- oder Fremdsysteme hinweg erfolgt z.B. asynchron über ALE (Application Link Enabling), worüber die Business-Objekttypen systemübergreifend verteilt werden. Beispielsweise lassen sich so systemübergreifende Workflows realisieren. Anwendungsbeispiele sind dem Autor auch im Bereich der Inventur und Lagerhaltung bekannt. Durch Ihre Offenheit kann von allen Entwicklungsplattformen auf BAPIs zugegriffen werden, die das RFC-Protokoll unterstützen. Außerdem garantiert SAP langfristige Abwärtskompatibilität Ihrer Schnittstellendefinition und Parameter, weshalb BAPI-Erweiterungen keine Beeinträchtigung vorhandener Anwendungen verursachen.
SAP Exchange Infrastructure (XI) bzw. Process Integration (PI)
Die SAP NetWeaver XI stellt eine Plattform mit diversen Schnittstellen zur Verfügung (Webservices, SOAP, XML etc.), damit unterschiedliche Systeme und Geschäftspartner integriert werden können. Dies inkludiert unternehmensübergreifende Prozesse, unterschiedliche Programmiersprachen und NON-SAP-Systeme. Zentrale Aufgabe ist das Design von Nachrichten, Transformationen und systemübergreifenden Integrationsszenarien.
Webservices (SOAP)
Webservices (SOAP) ermöglichen über das HTTP-Protokoll einen Aufruf von Funktionen. Über eine WSDL-Datei bekommt der Client Informationen bzgl. der Funktionen und Parameter. Die Web Service Description Language-Datei kann über einen URL abgerufen werden. Die Webservices werden über WebDynpro erstellt und mit ABAP-Programmen und RFC-Schnittstellen verbunden. Über andere Lösungen (z.B. SAP MII) können auch RFC-Funktionen als Webservices publiziert werden.
Representational State Transfer (REST API)
Auch REST API ermöglicht genauso wie SOAP den Funktionsaufruf über ein http-Protokoll. Im Gegensatz zu SOAP überträgt es vom Menschen lesbare Daten (JSON oder XML), ist schneller und Ressourcenschonender. Es wird auf ein Objekt zugegriffen (nicht auf einer seiner Methoden) und dessen Zustand kann via REST-Parameterübergabe geändert werden. ABAP RESTful APIs stellt eine neue Möglichkeit zur Verfügung basierend auf SAP UI5 (Fiori) Daten mit einem SAP-System auszutauschen.
Comma-separated Values (CSV)
CSV beschreibt den Aufbau einer Textdatei zum Datenaustausch. Üblicherweise in Form einer durch Komma getretten Aufzählung von Daten (Liste) bzw. Tabelle. Auch geschachtelte Datenstrukturen können durch Regeln bzw. verkettete CSC-Dateien theoretisch abgebildet werden, dafür bevorzugt an jedoch JSON, XML, EDIFACT usw.
Open Data Protocol (oData)
Es handelt sich dabei um ein von Microsoft entwickeltes Protokoll, welches auf HTTP basiert. Diese Schnittstellentechnologie verbindet Fiori-Anwendungen (SAPUI5) mit dem SAP-Backendsystem.
Electronic Data Interchange (EDI)
Es gibt verschiedene Standards, wie z.B. EDIFACT, ANSI X12 usw., um den Datenaustausch zwischen SAP und externen Partnern zu konkretisieren. Idocs werden dabei von und zu EDI Nachrichten konvertiert.
Intermediate Document (Idoc)
iDocs sind unternehmensinterne Datencontainer für den Austausch von Dokumenten wie beispielsweise Rechnungen, Lieferscheine oder Bestellungen. Es handelt sich um eine Schnittstelle für den Nachrichtenaustausch diverser SAP-Systeme und NON-SAP-Systeme. Ein Idoc ist ein Dateiformat von SAP und untergliedert sich in eine Kopfzeile, diverse Datensegmente und Statussätze. Dessen genaue Struktur ist über den jeweiligen IDoc-Typ vorgeschrieben und definiert die genaue Länge und Positionierung von Feldern in der Datei. Im Gegensatz zu RFC erfolgt die Kommunikation asynchron. Idoc-Erstellung und Übergabe seitens des Senders und dann Verarbeitungspuffer mit sukzessiver Abarbeitung seitens des Empfängers. Insbesondere für den Transfer von Stammdaten und Buchungsdatensätzen, wird diese klassische Schnittstellentechnologie weiterhin gerne gewählt.
Remote Function Calls (RFC)
Über RFCs können Funktionen in entfernten Systemen aufgerufen werden. Hier gibt es einen RFC-Client und einen RFC-Server, wobei der Client beim Server eine Funktion (Funktionsbaustein) synchron (direkt) aufruft. Es gibt jedoch auch transaktionale RFCs (tRFC). Diese stellen asynchron sicher, dass RFC-Funktionen verlässlich und unabhängig von der Verfügbarkeit des RFC-Servers genau einmal ausgeführt werden. Die RFC-Schnittstelle übernimmt einerseits die Konvertierung aller Parameterdaten in die im entfernten System nötige Darstellung und andererseits übernimmt es den Aufruf der Kommunikationsroutinen im entfernten System und ggf. dessen Fehlerhandhabung. Bei einer RFC-Kopplung können jeweils beide Systeme als Server und Client agieren. Zudem können SAP-Systeme untereinander kommunizieren; sowie NON-SAP-System-Anbindungen realisiert werden. RFC wird auch als Überbegriff für SAP-eigene Protokolle und Schnittstellen verwendet. Mit Hilfe der RFC-Bibliothek wird der Entwickler davon entbunden, eigene Kommunikationsroutinen zu implementieren. Ein üblicher Anwendungsfall ist z.B. die Synchronisation von Datenbeständen über Systemgrenzen hinweg.
SAP Java Connector (JCo)
Diese Middleware ermöglicht die bidirektionale Kommunikation von Java-Komponenten/Servern mit dem ABAP-NetWeaver Application Server. Man unterscheidet Inbound (Java ruft ABAP) und Outbound Calls (ABAP ruft Java).
Business Document (BDOC)
Stellt einen Container zur Verfügung, mit dem Daten im CRM-Umfeld ausgetauscht werden können.
Herausforderungen der Integration diverser Systeme
- Sicherheitsaspekte und Datenschutz (DSGVO etc.)
- Expertise in mehreren Programmiersprachen und Konnektoren erforderlich (PHP, Java, .Net etc.)
- Vielfalt (Wartung, Nacharbeiten und Unübersichtlichkeit)
- Zeitversetzte Übermittlung mit Schiefstand bei redundanten Daten. Bsp: SAP ERP geht z.B. davon aus, dass momentan in der Fertigung keine Kapazitäten frei sind und schickt daher keine neuen Fertigungsaufträge, weil der aktuellen Status noch nicht zurückgemeldet wurde.
