Integration von SAP und OutSystems

John Doe

John Doe

Click edit button to change this text. Lorem ipsum dolor sit amet consectetur adipiscing elit dolor

OutSystems wird von großen Unternehmen immer häufiger eingesetzt, um die Art und Weise der Software-Entwicklung zu erneuern. Das bedeutet, dass OutSystems mit den umfangreichen Legacy-Systemen des Unternehmens integriert werden muss, bei denen es sich fast immer um SAP handelt. OutSystems verfügt über eine native Verbindung mit dem .Net Connector von SAP, kann aber auch mit anderen Protokollen wie OData, SOAP und REST arbeiten. Wie wählt man angesichts der vielen Integrationsmöglichkeiten den besten Weg zur Integration?

Die gute Nachricht ist, dass OutSystems und SAP sehr gut zusammenpassen: Die Integration von OutSystems in SAP ist schnell und einfach, unabhängig davon, ob Sie BAPIs über den SAP .NET Connector oder OData-Dienste über das SAP Gateway nutzen.

Doch während die technische Integration von jedem OutSystems-Entwickler leicht zu bewerkstelligen ist, erfordert die Erstellung der eigentlichen Anwendungen einiges an Wissen über SAP selbst, was eine Welt für sich ist. In diesem Artikel werde ich mich nur auf die technischen Eigenheiten von SAP konzentrieren und darauf, was bei der Integration zu beachten ist, wobei ich mich auf RFC und OData konzentriere.

Welche Art von Integration?

SAP .NET Konnektor

Der schnellste Weg zur Integration mit SAP führt über den .NET Connector. Sobald Sie eine Verbindung hergestellt haben, können Sie sofort mit der Nutzung der über 50.000 Remote-Funktionen beginnen, die RFCs oder BAPIs genannt werden. Unten sehen Sie einen Screenshot, wie Sie eine Verbindung herstellen können, ähnlich wie beim Einrichten einer Verbindung über das SAP Login Pad.

Technisch gesehen ist der .NET Connector ziemlich vollständig und ausgereift. Er bietet Optionen für die gängigsten Szenarien, wie die Verbindung zu SAP über einen Anwendungsserver oder die Verbindung zu einem Message Server (SAP-Jargon für Load Balancer). Oder Sie überlassen SAP die Entscheidung, wie Ihre Anfrage bearbeitet wird, oder verwenden eine spezielle Warteschlange. Ein weiteres wichtiges Merkmal ist, dass der Entwickler die Anzahl der Prozesse, die auf dem SAP-Server verwendet werden, begrenzen kann, so dass OutSystems nicht alle verfügbaren Dialogprozesse beanspruchen kann, was das Ende des SAP-Servers bedeuten würde. Außerdem ist die Verbindung blitzschnell und liefert die Daten schneller zurück, als wenn die Daten auf einem SAP-Bildschirm abgefragt werden. Der .Net-Konnektor ist auch in den On-Premise- und Private-Cloud-Versionen von S/4HANA verfügbar.

Die Verwendung von BAPIs birgt einige Nachteile. Eines der Ärgernisse bei der Arbeit mit SAP ist, dass die Plattform nicht einheitlich programmiert wurde. Ein einfaches Beispiel: In einem Programm bedeutet das Drücken von F6 “Ändern”, während in einem anderen Programm das Drücken der gleichen Taste plötzlich “Anzeigen” bedeutet. Das gleiche gilt für BAPIs: einige haben ein geerbtes COMMIT WORK, während andere einen separaten Aufruf von BAPI_TRANSACTION_COMMIT benötigen, um z.B. die Datenbankaktualisierungen dauerhaft zu machen. Außerdem ist die RFC-Bibliothek für einige Funktionsbereiche, wie z.B. die Lagerverwaltung, recht vollständig, hat aber unerklärlicherweise keine Funktionen für viele andere gängige Aktionen. Und manchmal gibt es zwar ein BAPI, aber es deckt Ihr Szenario nicht vollständig ab. Das bedeutet, dass Sie immer eine vollständige Funktionsanalyse durchführen müssen, um festzustellen, ob SAP die richtigen BAPIs zur Verfügung stellt, um die Anforderungen zu erfüllen. In der Praxis bedeutet dies manchmal, dass die Integration mit SAP zu einem Spiel von Versuch und Irrtum wird, bei dem unerwartete Hindernisse auftauchen, die den Zeitplan für die Entwicklung gefährden.

OData Services

SAP hat sich für OData als bevorzugten Weg entschieden, um über das SAP-Gateway mit externen Plattformen zusammenzuarbeiten. Viele Objekte in SAP, wie RFCs, Objektmethoden und CDS-Ansichten, können als OData-Dienste bereitgestellt werden. Das SAP-Gateway wickelt den Datenverkehr ab und stellt sicher, dass die Kommunikation vom Anwendungsserver entkoppelt ist – ein solides Architekturprinzip. OutSystems kann das OData-Protokoll gut handhaben und bietet mit dem Integration Builder einen Service zur einfachen Integration von OData-Diensten an. Unten sehen Sie einen Screenshot des Integration Builders:

Nach dem Import des OData JSON können Entitäten und Aktionen ausgewählt werden, die dann in OutSystems erstellt werden. Eines der wichtigsten Merkmale ist, dass für Entitäten nicht nur die CRUD-Aktionen in SAP erstellt werden, sondern auch Suchaktionen.

Obwohl SAP die Verwendung von OData empfiehlt und in die Erstellung weiterer Dienste investiert, ist die aktuelle Bibliothek recht begrenzt und schwer zu navigieren. Auf api.sap.com gibt es beispielsweise nur 187 OData-APIs, die für S/4HANA zum Download bereitstehen. Das bedeutet, dass Sie alle Ihre OData-Verbindungen zu OutSystems aufbauen müssen, wenn Sie diese Art der Verbindung bevorzugen.

Ein schwerwiegender Nachteil ist, dass Sie, sobald Sie mit der Entwicklung von OData-Diensten beginnen, vom SAP-Freigabekalender Ihres Unternehmens abhängig sind, was zu einer Verzögerung des Go-Live von mehreren Monaten führen kann. Um dies zu vermeiden, müssen Sie mit dem SAP-Lieferteam vereinbaren, dass eigenständige Entwicklungen von OData-Diensten für OutSystems-Projekte einen separaten Release-Track zur Produktion haben können.

Fazit

Für welche Art der Integration soll man sich entscheiden? .Net ist recht einfach zu implementieren und verfügt über eine umfangreiche Bibliothek von Diensten, aber diese SAP-Dienste wurden nicht einheitlich programmiert und müssen analysiert werden. OData hingegen entspricht architektonisch den SAP-Richtlinien, bietet aber nur eine begrenzte Funktionalität, und die Entwicklung neuer OData-Dienste kann Ihre Inbetriebnahme erheblich verzögern.

Persönlich bin ich der Meinung, dass Sie beides verwenden können. Verwenden Sie auf jeden Fall die .Net RFC-Verbindung für das schnelle Prototyping von PoCs und zur Validierung Ihrer Ideen. Wenn Sie dann bewiesen haben, dass die Lösung funktioniert, können Sie sich immer noch dafür entscheiden, die Funktionalität in OData nachzubilden, wenn dies Ihre Firmenpolitik ist.

Wenn Sie mehr wissen möchten? Bitte kontaktieren Sie mich unter r.vandekerkhof@novioq.com!

 

 

Share this post

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest
Share on print
Share on email