SAP Integration

SAP-Integration, die mit Verstehen beginnt

SAP mit anderen Systemen zu verbinden heißt, zwei Welten zusammenzubringen — unterschiedliche Datenmodelle, unterschiedliches Know-how, unterschiedliche Erwartungen. Wer beide Seiten versteht, kann die passende Architektur entwerfen und das Fehlende bauen.

Was SAP-Integration schwierig macht

Diese Herausforderungen begegnen uns in fast jedem Projekt.

Zwei Teams, zwei Sprachen

SAP-Teams und die Teams der angebundenen Systeme arbeiten mit unterschiedlichen Datenmodellen und Begriffen. Beide Seiten zusammenzubringen braucht bewusste Abstimmung.

Der Scope ist noch unklar

Lesen oder schreiben? Synchron oder asynchron? UI-Anbindung, Datenreplikation oder beides? Diese Fragen entscheiden über die Architektur — und brauchen Antworten, bevor es losgeht.

Ein Konnektor löst die Integration nicht

SAP hat Geschäftslogik, Berechtigungen und Transaktionssemantik, die jede Integration berücksichtigen muss. Die Verbindung herzustellen ist der erste Schritt. Die eigentliche Arbeit beginnt danach.

Produktionslast verändert alles

Was im Test funktioniert, kann unter echtem Traffic Probleme machen. Jede Nutzeranfrage, die einen RFC-Aufruf auslöst, erzeugt Last in SAP.

Wie solche Projekte gelingen

Das Muster, das funktioniert: Prozess verstehen, passende Technologie wählen, von Anfang an für Produktion bauen.

Beim Geschäftsprozess anfangen

Erst klären, was tatsächlich zwischen den Systemen fließen muss — dann das passende Werkzeug oder die Middleware wählen.

Technologie nach Kontext wählen

RFC, OData, CPI oder Eigenentwicklung — je nachdem, was die Teams kennen und was die Systemlandschaft hergibt.

Von Anfang an für Produktion bauen

Caching, Lastverteilung, asynchrone Verarbeitung. Architektur, die unter echtem Traffic hält — nicht nur in der Demo.

SAP-Team und Fachsystem-Team zusammenbringen

SAP ist keine Datenbank, die man einfach abfragt — Geschäftslogik, Berechtigungen und Transaktionsverhalten prägen jede Integrationsentscheidung. Erfolgreiche Projekte investieren früh in ein gemeinsames Verständnis von Datenmodellen und Prozessen auf beiden Seiten.

Den richtigen Integrationsweg finden

Nicht jede Anbindung braucht SAP Cloud Integration. Manchmal ist RFC die richtige Wahl — bewährt, in S/4HANA gut unterstützt, dem Integrationspartner bekannt. Die Entscheidung hängt an den Teams, der Landschaft und dem, was langfristig wartbar sein muss.

Produktionslast im Griff behalten

Eine Webanwendung, die bei jedem Seitenaufruf RFC aufruft, überlastet SAP. Produktionsarchitekturen brauchen Caching, asynchrone Replikation und Laststeuerung von Anfang an.

Integrationsmuster, mit denen wir arbeiten

Verschiedene Szenarien brauchen verschiedene Ansätze. Wir wählen den, der zu Ihrer Architektur passt.

RFC- & BAPI-Integration

Direkte Funktionsaufrufe in SAP — der mächtigste und komplexeste Integrationspfad. Echtzeitzugriff auf SAP-Geschäftslogik.

Custom RFC-Funktionsbausteine
BAPI-Wrapper für stabile APIs
.NET-Integration via YaNco
Fehlerbehandlung und Retry-Muster

OData- & REST-APIs

Moderne API-Schicht für SAP-Daten. CDS Views, RAP-Services oder Custom-OData-Endpunkte — abhängig von Ihrer S/4HANA-Version und Clean-Core-Strategie.

CDS-basierte analytische und transaktionale APIs
RAP-Business-Objekte für S/4HANA
Custom OData Services für Legacy-Szenarien
API-Versionierung und Lifecycle Management

SAP Cloud Integration (CPI)

Cloud-basierte Integrationsflows für hybride Landschaften. Managed Middleware wenn SAP- und Nicht-SAP-Systeme Transformation und Routing brauchen.

Integration Suite iFlow-Entwicklung
Cloud Connector Sizing und HA
Event-driven mit SAP Event Mesh
Vorgefertigte und individuelle Integrationsinhalte

Custom-Integrationsentwicklung

Wenn keines der obigen passt: maßgeschneiderte Komponenten in .NET, TypeScript oder ABAP für Ihr spezifisches Datenmodell und Ihren Prozessablauf.

Asynchrone Replikationsengines
Message Queue und event-basierte Integration
Transformations- und Mapping-Logik
Monitoring- und Betriebs-Tooling

Volle BTP-Entwicklungskompetenz

Mehr als Middleware nötig? Wir entwickeln auch individuelle Anwendungen auf der BTP.

CAP-Applikationen

Custom-Business-Applikationen auf dem SAP Cloud Application Programming Model. TypeScript oder Java, verbunden mit SAP- und Nicht-SAP-Backends.

Integration Suite Flows

iFlow-Entwicklung für komplexe Transformation und Routing. Groovy-Scripting, Custom Adapter und On-Premises-Konnektivität via Cloud Connector.

Event-Driven Architecture

SAP Event Mesh, Cloud Events, Webhook-Muster. Entkoppelte Integration für Szenarien, in denen Echtzeit-Push besser ist als geplanter Pull.

Unsere Werkzeuge für SAP-Integration

Open Source, produktionserprobt — und als Grundlage für Ihr Projekt verfügbar.

Fertiges Integrationsframework

Nicht jede Integration lässt sich mit Standardtools lösen. SAPHub ist unser praxiserprobtes Integrationsframework — asynchron, modular und auf Wunsch auch unter Ihrer eigenen Marke einsetzbar.

SAPHub reference architecture diagram
SAPHub-Referenzarchitektur — die Open-Source-Version auf GitHub zeigt den grundlegenden Aufbau. Produktiv-Deployments ergänzen Workflow-Orchestrierung, Taskmanagement und transaktionales RFC.

Interesse an einer eigenen Integrationslösung?

Beschreiben Sie Ihre Anforderungen — wir zeigen Ihnen, wie SAPHub als Grundlage dienen kann.

Wir respektieren Ihre Privatsphäre. Lesen Sie unsere Datenschutzerklärung.

SAP RFC auf modernem .NET — mit YaNco

Für unsere Integrationsprojekte brauchten wir eine RFC-Bibliothek, die mit modernem .NET läuft und auf Linux deployt werden kann. YaNco ist Open Source und MIT-lizenziert.

  • Open Source, MIT-lizenziert
  • Volle .NET Core / .NET 6–8+ Unterstützung
  • Dependency Injection und IRfcContext für Testbarkeit
  • Im Produktiveinsatz bei Kundenprojekten
Mehr erfahren
SapIntegration.cs
using Dbosoft.YaNco;

// Register SAP connection via DI
services.AddSingleton(_ =>
    new ConnectionBuilder(sapConfig)
        .ConfigureRuntime(c => c.WithLogger(log))
        .Build());

// Call RFC function (injected context)
var result = await rfcContext
    .CallFunction("BAPI_COMPANYCODE_GETLIST",
      Output: f => f.MapTable(
        "COMPANYCODE_LIST", s =>
        from c in s.GetField<string>("COMP_CODE")
        from n in s.GetField<string>("COMP_NAME")
        select new { Code = c, Name = n }));

Keine Standardlösung für Ihre Integration?

Solche Fälle kennen wir. Erzählen Sie uns von Ihrem Vorhaben.