Komplett, offen, schnell – geht doch!
Mit dem eben erworbenen Diplom der Universität Wien in der Tasche (Software Engineering und Internet Computing) und von nicht allzu vielen Abap-Kenntnissen „beeinträchtigt“, bekam ich kurz nach Beginn meiner Anstellung bei Snap Consulting eine spannende Aufgabe: mich in das Cloud Application Programming Model (CAP) von SAP einzuarbeiten und darauf aufbauend eine Cloudversion des Produkts „Digitale Unterschriftenmappe“ zu konzipieren.
Komplettes, offenes Tool-Set
Das SAP Cloud Application Programming Model ist ein Framework aus Sprachen, Bibliotheken und Werkzeugen zum Erstellen von Applikationen, Services und Anwendungen für Unternehmen. Es führt Entwickler auf einen „goldenen Weg“ bewährter Best Practices und einer Vielzahl von sofort einsatzbereiten Lösungen für wiederkehrende Aufgaben.
Nach einer intensiven Einarbeitungsphase und mit Unterstützung meines Teamleiters machte ich mich euphorisch ans Werk. Die Suche nach Unterlagen, Dokumentationen und Best-Practice-Beispielen endete mit einer ersten Ernüchterung. Obwohl schon 2018 gelauncht, sind frei zugängliche Informationsquellen zum neuen Framework von SAP teilweise noch etwas spärlich. Aber dank angeborener Neugier, gelernter Beharrlichkeit und zahlreicher Trial-and-Error-Selbstversuche ist die Umsetzung erfolgreich gelungen. Weil das CAP-Framework tatsächlich alle notwendigen Programmierwerkzeuge zur Prozessdigitalisierung zur Verfügung stellt, lässt sich eine vollständige Anwendung damit unglaublich schnell konzipieren und generieren.
Wesentlich dafür ist das tatsächlich komplette Tool-Set: Zu den Kernelementen zählen die Entwicklung auf Modellbasis und ein SDK mit vordefinierten, direkt nutzbaren Funktionalitäten. Dazu gehören die Core Data Services, welche benötigte Services innerhalb von CAP generieren, und die Domain Specific Language zur einfachen Beschreibung von Daten, Entitäten, Berechtigungen oder User-Interfaces. Und mit Fiori-Tools und Fiori-Elementen lassen sich die erforderlichen Bedienoberflächen rasch erzeugen.
In der praktischen Anwendung hat sich allerdings ein Problem immer wieder gezeigt: Durch das schnelle Hochziehen der Technologieplattform und die laufende Bereitstellung neuer Services in der SAP Cloud läuft diese als Ganzes noch nicht immer rund. So musste ich mich leider mehrfach über nicht funktionierende Services, nichtssagende Fehlermeldungen oder einfach nicht verfügbare Webservices ärgern.
Und schnell auch noch
Aber zurück zu CAP: Das Framework läuft auf der Open-Source-JavaScript-Laufzeitumgebung Node.js oder Java. Das Frontend muss nicht zwangsläufig in SAPUI5 entwickelt werden – es kann beispielsweise auch das Webapplikationsframework Angular sein. Denn prinzipiell ist CAP eine offene Lösung, wenngleich auch nicht Open Source.
Die offene Technologieplattform war dabei ein notwendiger Befreiungsschlag, um sich von der guten alten proprietären, Abap-basierten Client-Server-Technologie zu lösen. Denn der Markt verlangt zunehmend Cloudanwendungen und SaaS-Lösungen – mit CAP als Domain-fokussiertem Entwicklungsframework für Enterpriseanwendungen hat SAP diese Forderung erfüllt. Benutzer bleiben nicht mehr in den Boiler-Codes hängen, denn das Cloud Application Programming Model automatisiert mühsame Aufgaben und adressiert die erforderlichen Unternehmens- und Cloudqualitäten.
Abap-unabhängig
Ein beeindruckendes Plus ist auch die sehr enge Verzahnung der unterschiedlichen Technologien. Spielen SAP und die Hana-Datenbank zusammen, ist das Set überaus effizient. Aber nicht nur mit SAP-eigenen Diensten stimmt die Performance, sondern – und das ist in vielen Aspekten völlig neu – CAP funktioniert auch mit den Services anderer Cloudanbieter und performt dabei noch sehr gut.
So wohltuend reibungslos das Abap-unabhängige CAP auch funktioniert, in
nächster Zukunft ist man definitiv noch darauf angewiesen, dass SAP-Partner wie Snap Consulting eigene Ressourcen einsetzen, um das neue Framework kennenzulernen und für Kunden effektiv nutzbar zu machen – inklusive Proof of Concept. Kommt Ihnen das irgendwie bekannt vor?