Herausforderung Cutover-Projekt meistern

Automatisierte Transformation von Excel nach BPMN

 

 

Cutover-Projekte mit Workflowtools oder doch lieber Excel? Unsere Antwort darauf lautet: beides!

Obwohl zahlreiche unterschiedliche Softwarelösungen zur Projektplanung und -steuerung existieren, greifen viele Cutover-Projektteams nach wie vor auf excelbasierte Projektpläne zurück. Einerseits weil Excel flexibel einsetzbar und über Unternehmensgrenzen hinweg in den Fachabteilungen bekannt ist, andererseits weil spezielle Projektplanungs¬werkzeuge nicht flexibel genug, proprietär und zudem teuer sind. Der Einsatz von Excel zur Planung, Durchführung und Steuerung von Projekten ist einfach, bringt aber auch entscheidende Nachteile mit sich. Die Natuvion GmbH, SAP Gold Partner mit Sitz in Walldorf/Baden, hat mit der Cutover App eine cloudbasierte Software entwickelt, die zur Planung, Ausführung und zum Monitoring von Cutover-Projekten eingesetzt werden kann. Wie die Software mit ihrem Kernelement – der automatisierten Transformation von Excel nach BPMN – die scheinbar gegensätzlichen Anforderungen „Flexibilität“ und „Stabilität“ in sich vereint, wird im folgenden Beitrag beschrieben.

Cutover-Projekte zeichnen sich durch einen engen Zeitrahmen aus. In der Regel werden dabei mehrere Testläufe ausgeführt, bevor es zum Produktivlauf kommt. Ein solcher Prozesslauf ist gekennzeichnet durch einen individuellen Umfang und Ablauf. Dabei laufen einerseits viele Einzelaktivitäten nach einem wiederkehrenden Muster ab, andererseits variieren die Anzahl und Dauer dieser Einzelaktivitäten je nach Umfang des jeweiligen Cutover-Projekts. Bis zuletzt können sich, z. B. durch unvorhergesehene Ereignisse, Aktivitäten oder auch Projektphasen ändern. So kommt es immer wieder vor, dass selbst einstudierte Abläufe, die in Testsystemen mehrfach durchgeführt wurden, während der Ausführung in einer Produktivumgebung kurzfristig geändert werden müssen (bspw. durch unterschiedliche Systemparameter).

 

Cutover

Abbildung 1

 

Als Cutover [1] bezeichnet man den ganzheitlichen Übergangsprozess vom alten zum neuen System oder von der alten in die neue Prozesswelt. Kernelement des Cutover sind kleinteilige und differenzierte Aufgaben (Tasks), die in der Regel von einem größeren Personenkreis (Cutover-Team) und in Abhängigkeit zueinander durchgeführt werden müssen. Da die Umstellungen von Produktivsystemen i.d.R. an Wochenenden stattfinden, müssen die einzelnen Tasks zeitlich eng getaktet werden. Zudem dürfen keine Leerlaufzeiten entstehen.


Trotz der vielen existierenden Softwarelösungen zur Projektplanung und -steuerung greifen viele Cutover-Teams aufgrund dieser volatilen Abläufe nach wie vor auf excelbasierte Projektpläne zurück. Neben den unumstrittenen Vorteilen – insbesondere die flexiblen Einsatzmöglichkeiten und die branchenunabhängige Verbreitung – hat die Verwendung von Excel zur Planung und Steuerung von Cutover-Projekten jedoch auch entscheidende Nachteile:
 

  • Die Projektdatei wird dem Cutover-Team meist auf einem gemeinsamen Verzeichnis zur Verfügung gestellt. Das gemeinsame Bearbeiten wird durch Excel aber standardmäßig nicht unterstützt, wodurch es häufig zu Sperrkonflikten und Missverständnissen, bspw. durch eingestellte Spaltenfilter, kommt.
  • Die Excel-Sheets sind oftmals sehr überladen, weil versucht wird, Informationen für Benutzer mit unterschiedlichen Rollen auf wenigen Seiten darzustellen.   
  • Die Planung des Prozessablaufs über Tasks mit Vorgängern, Nachfolgern, paralleler und sequenzieller Verarbeitung kann mit Excel weder visualisiert noch adäquat getestet werden.
  • Eine proaktive Steuerung der Projektbeteiligten und ein Monitoring in Echtzeit sind mit Excel nicht möglich, da Aktualisierungen zur Projektausführungszeit manuell in die Projektdatei eingetragen werden. Dies ist nicht nur zeitaufwendig, sondern auch fehleranfällig.
  • Zusätzliche Informationen, bspw. für einen aktuellen Report an das Management, müssen aus den Laufzeitdaten manuell erstellt und aufbereitet werden, was eine weitere Arbeitsbelastung für die Mitarbeiter darstellt.
  • Die Kommunikation zwischen den Mitarbeitern, Projektleitern und Management läuft über verschiedene Kanäle (E-Mail, Telefon, usw.), was die Projektdurchführung zusätzlich erschwert.

 

Cutover-Projekte mithilfe von Workflow Engines realisieren

Cutover-Projekte sind prädestiniert für workflowbasierte Werkzeuge. Workflow Engines sind weit verbreitet und bilden das Rückgrat vieler Unternehmen in zahlreichen Geschäftsbereichen bei der automatisierten Verarbeitung wiederkehrender Tasks – von der Datenkommunikation (M2M) über eCommerce-Geschäftsprozesse (B2B, B2C usw.) bis hin zu Self-Service-Prozessen. Da diese Prozesse stets geschäftskritisch sind, sind sie meist langlebig und werden zuverlässig und standardisiert durch Workflow Engines ausgeführt.

Die Vorteile von workflowbasierten Anwendungen sind u. a.

  • automatisierte Ausführung durch eine Workflow Engine
  • permanente und automatische Überwachung des Prozessablaufs und der -performance
  • Erkennung von Fehlentwicklungen nach ihrer Wichtigkeit, bspw. durch automatische Meldung von Ausnahmen und Vorfällen, die unmittelbares Eingreifen erfordern, sowie gleichzeitige Meldung der aufgetretenen Fehler an alle relevanten Beteiligten
  • zentrale Dokumentation
  • Prozessdaten in Realtime inkl. Monitoring und Dashboard-Funktionalität

Für flexible, schnell zu verändernde Prozessabläufe – wie es bei Cutover-Projekten der Fall ist – wurden Workflow Engines bisher jedoch eher selten in Betracht gezogen.
 

Vom Prototyp…

Ausgehend von obigen Überlegungen und der daraus resultierenden Idee, die beiden Welten Excel und BPMN zusammenzuführen, wird im Folgenden ein erfolgreich durchgeführter Proof of Concept (PoC) vorgestellt, in dessen Mittelpunkt ein Prototyp zur Transformation von Excel nach BPMN steht (vgl. Abbildung 2), der mittlerweile in einer produktiv eingesetzten Software verwendet wird.

 

Abbildung 2

 

Bei dem Prototyp handelte es sich um einen Spring Boot [2] basierten Microservice, der zunächst nur über Postman-Aufrufe zu bedienen war. Diese Komponente wurde in mehreren Sprints evolutionär weiterentwickelt und erweitert. Nach erfolgreichen Tests und erstem positiven Feedback von Pilotkunden wurde der Prototyp zu einer „echten“ Anwendung weiter ausgebaut (vgl. Kasten „Cutover App“). Weitere Microservices kamen dazu, u. a. eine Komponente, in der die BPM Workflow Engine eingebettet wurde.


Cutover App

Technologie - Die Cutover App ist eine Mehr-Mandanten- und Multi-Projekt-fähige cloudbasierte Anwendung zur Planung, Ausführung und Steuerung von Cutover-Projekten. Zentraler Bestandteil der Cutover App ist die automatisierte Transformation von excelbasierten Workflowdaten in BPMN-Dateien, die in einer integrierten BPM Workflow Engine zur Ausführung kommen. Die Cutover App basiert auf einer modernen Microservice-Architektur. Für die grafischen Oberflächen wird mit SAP UI5 [3] die aktuellste UI Technologie der SAP verwendet, eine JavaScript Bibliothek, die einer Single Page Architektur (SPA) folgt. Die Bedienoberflächen kommunizieren mittels asynchronen REST-Aufrufen u. a. über WebSockets mit den Java-Komponenten, die die Integrations- und Geschäftslogik abbilden. Für die Java-Komponenten kommt Spring Boot zum Einsatz. Zusätzlich werden verschiedene Open Source Bibliotheken verwendet. Die Cutover App wurde primär für den Cloud Foundry [4] Stack der SAP Cloud Platform entwickelt, dank ihres modularen Aufbaus ist sie jedoch Multi-Cloud-fähig und kann auf vergleichbaren Cloud-Infrastrukturen (z. B. Amazon AWS, Microsoft Azure, Google GCP) zum Einsatz gebracht werden.

Business Process Modeling (BPM) - BPM (Geschäftsprozessmodellierung) [5] beschreibt die Abstraktion von Geschäftsprozessen (oder Ausschnitte daraus). Die Prozesse werden mittels einer standardisierten Notation (BPMN) modelliert. Die aktuelle Version des BPMN-Standards, BPMN 2.0, wurde im Januar 2011 von der Object Management Group (OMG) verabschiedet und erlaubt die grafische Darstellung und darüber hinaus die Ausführung der Prozessmodelle. Die Tatsache, dass BPMN 2.0 schon seit Jahren unverändert zum Einsatz kommt, sagt viel über die Robustheit und Zuverlässigkeit dieser Technologie aus.

Co-Innovated with SAP - Die Entwicklung der Cutover App erfolgte in Kooperation mit SAP. Hierbei bietet SAP einen exklusiven Premiumservice für Partner rund um den Globus an, die innovative Lösungen bauen wollen – auf Basis neuester SAP-Technologien (z. B. SAP Cloud Platform, SAP S/4HANA) und SAP-Qualitätsstandards –, ohne auf dem Weg von der Idee bis zur Markteinführung Zeit zu verlieren. Gemeinsamer Ausgangspunkt für Partner und SAP-Experten ist eine Idee, die zu einer qualifizierten, markttauglichen und zertifizierten Applikation ausgearbeitet wird und das Logo „Co-Innovated with SAP“ erhält.


Der aktuelle Transformations-Microservice stellte einen REST-Controller für die UI zum Importieren des Cutover-Plans (Exceldatei) bereit. Das Hochladen und die Transformation der Exceldaten erfolgten in einem Schritt.

Für die Transformation kam u. a. die Bibliothek Apache POI [6] zum Einsatz, mit deren Hilfe die einzelnen Worksheets gelesen und die Spalten und Zeilen extrahiert wurden. Obwohl BPMN als standardisiertes XML-Format auch ohne zusätzliche Werkzeuge bzw. APIs erzeugt werden kann, fiel die Wahl dennoch auf die Java-API der Firma Camunda [7]. Die API stellt sehr viele, gut dokumentierte Klassen bereit, mit denen sehr schnell valides BPMN erzeugt werden kann. Beide Bibliotheken wurden in bekannter Weise in der POM-Datei des Spring Boot Projekts als Dependency hinzugefügt (vgl. Listing 1, Maven).


Listing 1:

<dependency>

<groupId>org.apache.poi</groupId>

   <artifactId>poi-ooxml</artifactId>

   <version>3.9</version>

</dependency>

<dependency>

<groupId>org.camunda.bpm</groupId>

   <artifactId>camunda-bom</artifactId>

   <version>${camunda.version}</version>

   <scope>import</scope>

   <type>pom</type>

</dependency>


Der Controller delegierte die eigentliche Arbeit an mehrere Service-Klassen. Diese Service-Klassen waren u. a. für das Extrahieren der Daten aus Excel und das Generieren der BPMN-Datei für den Cutover-Prozess zuständig. Die Exceldatei wurde als org.springframework.web.multipart.MultipartFile übergeben. Der InputStream der file-Instanz wurde in den Konstruktor der POI-Klasse XSSFWorkbook mitgegeben und erzeugte dadurch eine Instanz der Klasse Workbook. Die POI-Bibliothek bietet auch noch weitere Klassen an, z. B. HSSFWorkbook. Aus der XSSFWorkbook-Instanz ließ sich über den Worksheetnamen (oder über den Index) auf die einzelnen Worksheets der Exceldatei zugreifen. Die einzelnen Worksheets ließen sich nun zeilen- und spaltenweise auslesen (vgl. Listing 2).


Listing 2:

public @ResponseBody ResponseEntity<?> convertAndDeploy (                                       
@RequestParam("file") MultipartFile file
                     . . .  ) {
       . . .

      Workbook workbook = new XSSFWorkbook(file.getInputStream());

      . . .

     Sheet sheet = workbook.getSheet(sheetName);

     . . .

    for (Row row : sheet) {

for (Cell cell : row) {

// store values in Value-Objects
WorksheetElement worksheetElement = ...
worksheetElementList.add (worksheetElement);

}

}


Die Werte wurden zunächst in Value-Objekten zwischengespeichert, um daraus im nächsten Arbeitsschritt von einer weiteren Service-Klasse BPMN-Objekte zu erzeugen (vgl. Listing 3).

Da die meisten Cutover-Tasks zunächst sog. User Tasks waren, also Tasks, die von Mitarbeitern bearbeitet werden müssen, konzentrierte man sich bei den ersten Prototypen auf das Generieren ausgewählter BPMN-Artefakte, z. B. Start-/End-Events, User Tasks, Gateways. In der Zwischenzeit sind jedoch weitere BPMN-Artefakte hinzugekommen, wie z. B. Service Tasks (zur automatisierten Ausführung), Call Activities (für Subprozesse) u.v.m.


Listing 3:

private BpmnModelInstance createProcessDiagram(String processId, . . .  ) {
       BpmnModelInstance modelInstance = Bpmn.createEmptyModel();

Process process = modelInstance.newInstance(Process.class);

   process.setId(processId);

   process.setExecutable(true);

   . . .

   BpmnDiagram diagram = modelInstance.newInstance(BpmnDiagram.class);

   BpmnPlane plane = modelInstance.newInstance(BpmnPlane.class);

   plane.setBpmnElement(process);

   diagram.setBpmnPlane(plane);

   . . .

   // iterate over worksheet values and create BPMN

   for (WorksheetElement worksheetElement : worksheetElementList) { 

          BpmnElementCoordinate bpmnElementCoordinate =
                     worksheetElement.getBpmnElementCoordinate();
              Class<T> elementClass = (Class<T>)
              bpmnElementCoordinate.getElementClass();

          T element = modelInstance.newInstance(elementClass);

          parentElement.addChildElement(element);
              . . .

   }
       . . .
       // validate generated BPMN
       Bpmn.validateModel(modelInstance);


Da der Prozess auch als BPMN-Diagramm in der UI angezeigt wurde, war neben dem Generieren der eigentlichen Workflow-Artefakten (Start-/End-Event, Gateways, Tasks usw.) auch das Berechnen der Koordinaten dieser Artefakte notwendig. Um ein zufriedenstellendes Ergebnis zu bekommen, mussten verschiedene Algorithmen getestet werden. Nach dem Generieren der BPMN-Datei wurde diese validiert und anschließend an die BPM Workflow Engine übergeben. Auch hierzu stellt die Camunda-API entsprechende Klassen zur Verfügung. Damit war der Transformationsprozess abgeschlossen. Der Prozess konnte unmittelbar gestartet werden und lief ab diesem Zeitpunkt unter der Kontrolle der Workflow Engine.

… zum Produkt
Die vorgestellte Funktionalität ist Kernbestandteil der Cutover App von Natuvion [8], die bereits bei mehreren namhaften Kunden produktiv im Einsatz ist. Die Anwendung ist im Rahmen des Projekts „Co-Innovated with SAP“ durch SAP zertifiziert und steht u. a. über den SAP Cloud App Store zur Verfügung. Die folgende Abbildung zeigt die Architektur der Anwendung:

Abbildung 3


Die Applikation zeichnet sich durch eine intuitive Bedienung aus, die den UX-Designprinzipien von „SAP Fiori“ folgt. Für die Mitarbeiter steht eine optimierte mobile Version zur Verfügung. Projektleiter schätzen den Realtime Monitor, durch den sie jederzeit einen aktuellen Überblick über den Projektverlauf haben.

Abbildung 4


Für das Management steht ein spezielles Dashboard zur Verfügung, selbstverständlich basierend auf den aktuellsten Prozessdaten.

Abbildung 5


Fazit: Cutover-Prozesse – flexibel oder als standardisierter Prozessablauf?

Die Verarbeitung von excelbasierten Projektdateien zu ausführbaren BPM-Workflows bietet eine große Chance, um bisher angewendete, manuelle und damit fehleranfällige Praktiken ohne großen Aufwand zu automatisieren. Nüchtern betrachtet scheinen sich beide oben genannten Anforderungen zunächst auszuschließen. Glücklicherweise ist man jedoch nicht länger gezwungen, sich zwischen den beiden Optionen entscheiden zu müssen. Den Experten der Natuvion ist es gelungen, durch eine automatisierte Transformation der excelbasierten Daten in BPMN-konforme Daten die Stärken der beiden Welten effizient miteinander zu kombinieren: Einerseits bleibt Excel als Medium für die Fachabteilungen erhalten, andererseits werden dadurch BPMN-basierte Workflows erzeugt und in einer BPM-Engine standardisiert ausgeführt. Excel: Flexible Planung Die Planung der Cutover-Projekte erfolgt durch den Projektverantwortlichen weiterhin in Excel. Dies hält die Einstiegshürde niedrig und sorgt für die nötige Akzeptanz seitens der beteiligten Fachabteilungen. Außerdem lassen sich so bereits bestehende Ablaufpläne mit wenig Aufwand wiederverwenden.


BPMN: Standardisierte Ausführung

Beim Hochladen der Exceldatei werden die projektspezifischen Daten aus den Worksheets extrahiert und automatisch in verschiedene Zielformate transformiert. U. a. erfolgt die Transformation der jeweiligen Prozessdaten in BPMN-basierte Workflows, die dann einer BPM Workflow Engine zur standardisierten Ausführung übergeben werden. Durch die Verwendung einer stabilen Workflow Engine werden alle Projektbeteiligten von zeitaufwendigen und fehleranfälligen Tätigkeiten, wie bspw. dem Aktualisieren der Laufzeiten, Statusberichte etc., entlastet und können sich auf das Wesentliche konzentrieren. Der Zugriff auf die Daten erfolgt rollenbasiert in Echtzeit.


Excel und BPMN: Flexible Workflows

Die Exceldateien bilden den sog. Single Point of Truth (SPOT): Falls es zu Änderungen im Ablauf eines Cutover-Prozesses kommt, aktualisiert der Projektleiter zunächst die zugrunde liegende Exceldatei und importiert sie anschließend in die Cutover App. Dabei wird sie on the fly in BPMN transformiert und in die Workflow Engine geladen. Danach kann der Projektleiter den Prozess erneut starten, wobei bereits ausgeführte Tasks übersprungen werden können. Diese Schritte dauern nur wenige Momente und verleihen der Applikation eine enorme Flexibilität.


Ausblick

Die vorgestellte Funktionalität ist Kernbestandteil der Cutover App von Natuvion und hat bereits ihren produktiven Nachweis geliefert. Die Komponente wird kontinuierlich optimiert, u. a. wird die Anzahl der generierbaren BPMN-Artefakte ständig erweitert. Außerdem werden der Einsatz von Machine Learning innerhalb des Transformations-Algorithmus sowie Process Automation für die Ausführung wiederkehrender Service-Tasks evaluiert.


Links & Literatur

 

[1] Cutover Prozess: http://news.sap.com/germany/cut-over-prozess-die-schritte-zum-neuen-erp-system
[2] Spring Boot: https://spring.io/projects/spring-boot
[3] SAP UI5: https://sapui5.hana.ondemand.com
[4] Cloud Foundry: https://www.cloudfoundry.org
[5] BPMN: https://de.wikipedia.org/wiki/Business_Process_Model_and_Notation [6] Apache POI: https://poi.apache.org/
[7] Camunda Docs: https://docs.camunda.org/manual/7.9/
[8] Cutover App: https://www.natuvion.com/en/products/sap-cloud-development/cutover-app

 


Anmerkung:

Dieser Artikel erschien in der Ausgabe 10.19 des Java Magazins. Die Veröffentlichung können Sie hier finden: https://kiosk.entwickler.de/java-magazin/java-magazin-10-2019/zusammenfuehrung-zweier-welten/ (nur mit Login sichtbar)

 

Fragen, Anregungen oder Feedback? Kontaktieren Sie uns!