From 2f38bddbf499dbe16bb5df873c70262be4e04c52 Mon Sep 17 00:00:00 2001 From: Fabian Lupa Date: Tue, 26 Nov 2024 13:36:34 +0000 Subject: [PATCH 01/13] Fix Navigation Open-Source-Kapitel --- docs/open-source/open-source-projects.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/open-source/open-source-projects.md b/docs/open-source/open-source-projects.md index 1cc24b3..20e309f 100644 --- a/docs/open-source/open-source-projects.md +++ b/docs/open-source/open-source-projects.md @@ -9,11 +9,10 @@ nav_order: 5 --- {: .no_toc} - # Vorstellung ausgewählter Projekte 1. TOC - {:toc} +{:toc} ## Übersicht From a760b024c094c16fa35967aa300f01aef6374124 Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Sun, 1 Dec 2024 13:10:46 +0100 Subject: [PATCH 02/13] Update index.md Aktualisierung Kapitel Dokument --- docs/documentation/index.md | 42 ++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/docs/documentation/index.md b/docs/documentation/index.md index 77e09b3..9c5d78e 100644 --- a/docs/documentation/index.md +++ b/docs/documentation/index.md @@ -40,12 +40,34 @@ Dokumentenvorlagen wie das arc42-Template müssen nicht immer vollständig “au Darüber hinaus kann eine veraltete Dokumentation irreführend sein. Deshalb sollte in allen Dokumenten der Stand und eine Versionierung enthalten sein, um die Aktualität bewerten zu können. +| BEST PRACTICE | +|---------------| +|Es sollte im Unternehmen geklärt werden, wie Dokumentation von Software erfolgen soll.| + Innerhalb einer SAP-Systemlandschaft bietet der SAP Solution Manager Möglichkeiten zur Projektdokumentation. Die nachfolgenden Links bieten weitere Informationen dazu. WEITERE QUELLEN 1. Das arc42-Template zur Architekturdokumentation, [Arc42-Template](https://arc42.org/download) (aufgerufen am: 19.09.2024) 2. Stefan Zörner: Softwarearchitekturen dokumentieren und kommunizieren. Carl Hanser Verlag GmbH Co KG, 2021. ISBN: 978-3446469280 +## Dokumentation zur Versionsverwaltung + +### Transportauftrag +Oftmals hilft es zum Transportauftrag zu dokumentieren +* Ticketnummer und Titel des Tickets +* Wichtigste Entwicklungsobjekte im Transport +* Abhängigkeiten zu anderen Transporten (sofern vorhanden) +* Kurzbeschreibung zu Änderungen im Transport +Die Dokumentation zu jeder Aufgabe und zu jedem Auftrag während der Auftragsbearbeitung im Reiter "Dokumentation" zu erfassen. Die Dokumentation kann bis zur Freigabe laufend erweitert werden. Nach der Freigabe des Auftrags ist dies nicht mehr möglich. + +Diese Dokumentation auf dem Reiter "Dokumentation" kann man für jeden Transportauftrag erstellen, der ins Produktive Systeme geht. Transporte von Kopien sollte man nicht dokumentieren, um redundante Dokumentation zu vermeiden. Letztlich interessieren nur die Transporte, die ins Produktiv System gehen sollen, bzw. bereits gegangen sind. + +### Git-Client +Sollte ein Git-Client wie abapGit oder gCTS eingesetzt werden, werden Code-Änderungen protokolliert. Zu jedem sogenannten Commit werden neben den Code-Änderungen noch Metadaten gespeichert. Zu den Metadaten zählen eine kurze Beschreibung, sogenannte Commit-Nachricht, Autor und Datum. Die so entstehende Commit-Historie ermöglicht, vergangene Commits zu sehen und die Code-Änderungen nachzuvollziehen. Wird ein Ticket-System, wie zum Beispiel Jira oder Azure DevOps, für die Erfassung der Anforderungen benutzt, hat jede Anforderung an die Entwicklung eine eindeutige ID. Viele Teams haben die Vorgabe oder die interne Vereinbarung, diese ID in den Commit-Nachrichten einzutragen, damit sich die Commits den Aufgaben zuordnen lassen. Wird das konsistent gemacht, lassen sich mittels Freitextsuche in den Commit-Nachrichten alle Commits identifizieren, die zu einer bestimmten Aufgabe gehören. Das erleichtert wesentlich das Wiederfinden und die Überprüfung der Umsetzung im Fall von Bugs. Gleichzeitig lassen sich dadurch ähnliche Aufgaben sehr schnell umsetzen, weil die Entwickler das bereits funktionierende Beispiel finden und verfolgen können. + +| BEST PRACTICE | +|---------------| +|Wir empfehlen bei Änderungen, die ins produktive Systeme gehen egal ob mit Transportauftrag oder Git-Client mit Angabe was geändert wurde und mit Bezug zu einem externen Tool wie Ticketsystem| ## Dokumentation von Entwicklungsobjekten Neben Methoden, Funktionsbausteinen und Reports, die Dokumentation im Quellcode enthalten können, existieren weitere Entwicklungsobjekte im ABAP-System, die keinen Quellcode besitzen und daher auf anderem Weg dokumentiert werden müssen. Beispiele dafür sind: @@ -53,10 +75,6 @@ Neben Methoden, Funktionsbausteinen und Reports, die Dokumentation im Quellcode * DDIC-Objekte * Transaktionen -| BEST PRACTICE | -|---------------| -|Wir empfehlen, für alle Entwicklungsobjekte und unabhängig vom Quellcode die Dokumentationsfunktion der ABAP-Workbench zu nutzen und die Aufgaben und Bedeutungen dieser Objekte im SAP-System zu dokumentieren. Hierbei sollte ausschließlich der Ist-Stand dokumentiert werden, gegebenenfalls angereichert um kurze Verweise auf die Änderungsdokumentation (Transportdokumentation, Defekt-Nummern).| - Da die Workbench-Dokumentation auch an das Transportwesen angeschlossen ist, steht sie in allen Einzelsystemen einer Systemlandschaft zur Verfügung. Weiterhin kann diese Dokumentation von allen Benutzern eingesehen werden und wird für Reports vom ABAP-System automatisch in die Benutzeroberfläche eingebunden. Ein weiterer Vorteil kann darin bestehen, dass die Dokumentation mehrsprachig geführt werden kann. Auf SAP-Systemen mit SAP_BASIS >= 7.40 können im Quellcode ABAP-Doc-Kommentare verwendet werden. Dies kann als Alternative zur Dokumentation in der ABAP-Workbench verwendet werden. Der volle Funktionsumfang von ABAP-Doc-Kommentaren lässt sich derzeit allerdings nur mit den ABAP-Development-Tools für Eclipse ausschöpfen. Bei Verwendung von Core Data Services zur Definition von DDIC-Objekten können wesentlich mehr Entwicklungsobjekte im Quellcode dokumentiert werden und die Notwendigkeit externer Dokumentation entfällt. Beginnend mit SAP NetWeaver 7.50 lassen sich die ABAP-Doc-Kommentare von Klassen und Schnittstellen als HTML-Dateien exportieren. Die SAP erweitert ihr Repertoire ab ABAP Plattform 7.55 um eine weitere Technologie zur Dokumentation von ABAP-Entwicklungsobjekten. Das Knowledge Transfer Document fokussiert sich auf die neuen Objekttypen, die primär aus dem ABAP Restful Application Programming Model (RAP) Kontext entstammen. Dieses umfasst unter anderem: CDS Views, Behavior Definitions, Service Definitions, Service Bindings, Annotation Definitions und Paket @@ -81,15 +99,19 @@ Seit ABAP Plattform 7.55 gibt es das Knowledge Transfer Document. KTD kann für KTD müssen im selben Paket wie das Entwicklungsobjekt sein. Es wird nicht automatisch mit dem Entwicklungsobjekt transportiert, aber wenn das Entwicklungsobjekt gelöscht wird, wird auch das dazugehörige KTD gelöscht. +| BEST PRACTICE | +|---------------| +|Wir empfehlen, für alle Entwicklungsobjekte und unabhängig vom Quellcode die Dokumentationsfunktion der ABAP-Workbench zu nutzen. Die Dokumentationsfunktion sollte in folgender Reihenfolge angewendet werden, je nachdem für welches Objekt welche Art von Dokumentationsobjekt verfügbar ist: 1. Knowledge Transfer Documents 2. abapDoc 3. Kurztexte Hierbei sollte ausschließlich der Ist-Stand dokumentiert werden, gegebenenfalls angereichert um kurze Verweise auf die Änderungsdokumentation (Transportdokumentation, Defekt-Nummern).| + ## Dokumentation im Quellcode ### Dokumentationssprache +Entwicklungsteams arbeiten heutzutage überwiegend international zusammen. Auch wenn Sie derzeit rein deutschsprachig entwickeln, kann Ihr Projekt im Laufe der Zeit internationalisiert werden. Der Aufwand, der dann durch Koordinationsprobleme oder sogar nachträgliches Übersetzen entsteht, steht in keinem Verhältnis zu dem vielleicht größeren Aufwand durch englische Dokumentation. Es hat sich außerdem gezeigt, dass die Lesbarkeit von Quellcode und Kommentaren durch englischsprachige Kommentare erhöht wird. Denn die ABAP-Befehle selbst sind englisch und im Stil von Sätzen aufgebaut. Der Leser des Quellcodes muss bei englischer Dokumentation also nicht ständig die Sprache wechseln. + | BEST PRACTICE | |---------------| -|Als Kommentierungssprache sollte Englisch verwendet werden.| - -Entwicklungsteams arbeiten heutzutage überwiegend international zusammen. Auch wenn Sie derzeit rein deutschsprachig entwickeln, kann Ihr Projekt im Laufe der Zeit internationalisiert werden. Der Aufwand, der dann durch Koordinationsprobleme oder sogar nachträgliches Übersetzen entsteht, steht in keinem Verhältnis zu dem vielleicht größeren Aufwand durch englische Dokumentation. Es hat sich außerdem gezeigt, dass die Lesbarkeit von Quellcode und Kommentaren durch englischsprachige Kommentare erhöht wird. Denn die ABAP-Befehle selbst sind englisch und im Stil von Sätzen aufgebaut. Der Leser des Quellcodes muss bei englischer Dokumentation also nicht ständig die Sprache wechseln. +|Es sollte im Unternehmen geklärt, was die Kommentierungssprache ist. Die Empfehlung ist in englisch zu kommentieren.| ### Dokumentation von Änderungen Ab dem Zeitpunkt der Produktivsetzung eines Programms sollte darauf geachtet werden, dass Änderungen in Programmen angemessen dokumentiert werden. Hier ist das richtige Maß wesentlich: Eine vollständige Versionshistorie aller Änderungen und auskommentierter Quellcode reduzieren die Lesbarkeit des Quellcodes. Trotz dieses Nachteils dokumentieren einige Entwicklungsteams bewusst alle Änderungen im Quellcode, um die Fehlersuche auf Produktiv- oder Testsystemen zu vereinfachen, in denen die Versionshistorie nicht zur Verfügung steht. @@ -101,12 +123,16 @@ Ab dem Zeitpunkt der Produktivsetzung eines Programms sollte darauf geachtet wer ### Kommentare im Quellcode Kommentare im Quellcode sollen dazu dienen, Entwicklern das Verstehen des Quellcodes zu erleichtern, sofern dies nicht durch geschickte Gestaltung des Quellcodes allein (Modularisierung, Namenswahl von Methoden und Variablen) erreichbar ist. -Kommentare sind für andere Entwickler und mit zunehmendem zeitlichen Abstand auch für den ursprünglichen Entwickler gedacht. Sie sollten die Frage beantworten, „Warum” etwas programmiert wurde und nicht „Was”. Letzteres ergibt sich aus dem Quellcode ohnehin, während die Beweggründe oft nicht klar erkennbar sind. Gerade sie helfen beim Verständnis aber wesentlich weiter. Dabei gilt der Grundsatz: So wenig Kommentar wie möglich, so viel Kommentar wie nötig. +Kommentare sind für andere Entwickler und mit zunehmendem zeitlichen Abstand auch für den ursprünglichen Entwickler gedacht. Stern-Kommentare sollten nur im Programmkopf oder für das temporäre Auskommentieren von altem Quellcode verwendet werden. Für alle anderen Kommentare empfiehlt SAP, Inline-Kommentare zu verwenden. Diese sollten jeweils vor dem Quellcode stehen, den sie dokumentieren, und genauso eingerückt sein wie dieser Quellcode. Letzteres wird (nur) für Inline-Kommentare auch vom Pretty Printer korrekt durchgeführt. +| BEST PRACTICE | +|---------------| +|Sie sollten die Frage beantworten, „Warum” etwas programmiert wurde und nicht „Was”. Letzteres ergibt sich aus dem Quellcode ohnehin, während die Beweggründe oft nicht klar erkennbar sind. Gerade sie helfen beim Verständnis aber wesentlich weiter. Dabei gilt der Grundsatz: So wenig Kommentar wie möglich, so viel Kommentar wie nötig.| + WEITERE QUELLEN 1. Horst Keller, Wolf Hagen Thümmel: ABAP-Programmierrichtlinien. SAP Press, 2009. ISBN: 9783836212861 From 1164c143cdac1c977c7af6f26cc2eb0dd522cf59 Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:37:20 +0100 Subject: [PATCH 03/13] Update index.md Einleitung version-management --- docs/version-management/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/version-management/index.md b/docs/version-management/index.md index 14782e6..30cd4b9 100644 --- a/docs/version-management/index.md +++ b/docs/version-management/index.md @@ -13,6 +13,11 @@ nav_order: 6 {:toc} ## Einleitung/Motivation +Zu den aufbewahrungspflichtigen Dokumenten gem. HGB, AO und GoBS gehören auch die Repositoriy-Objekten in ABAP. Dies wurde lange Zeit durch die integrierte Versionsverwaltung innerhalb der ABAP-Workbench (SE80) erreicht. In den letzten Jahren hat sich aber ABAP weiterentwickelt, sei es der Einsatz einer externen Entwicklungsumgebung (ABAP Development Tools), der Einsatz von Git-Versionsverwaltung oder die Entwicklung weiterer Repository-Objekten, die nicht in der ABAP-Workbench entwickelt werden können. Daher stellt sich für jeden ABAP-Entwickler, die zentrale Frage: +* Welche Versionsverwaltung soll ich wann nehmen. + +Dieses Kapitel soll daher einen Überblick und eine Gegenüberstellung von Versionsverwaltungs-Lösungen innerhalb des SAP-Universums für ABAP-Entwickler geben. + ## Git-Grundlagen ## Einsatz von gitbasierten Lösungen in der ABAP-Entwicklung From 8805321e474aff03ce3ddec5b47db88b0eb2030f Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:39:02 +0100 Subject: [PATCH 04/13] Update index.md add quelle --- docs/version-management/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/version-management/index.md b/docs/version-management/index.md index 30cd4b9..b3dbf24 100644 --- a/docs/version-management/index.md +++ b/docs/version-management/index.md @@ -57,3 +57,5 @@ Dieses Kapitel soll daher einen Überblick und eine Gegenüberstellung von Versi ## Risiken ## Zusammenfassung ## Empfehlung +## Quellen +https://www.rheinwerk-verlag.de/git-und-sap/?srsltid=AfmBOooMbM45uQOGPLDAiaKz5hHazrf45BIEVjmOIe8mz9HjpdHjgzZq From e58e8789dd72f08f27e9233c176042a7d1192ee9 Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Mon, 2 Dec 2024 11:33:52 +0100 Subject: [PATCH 05/13] Update index.md Update version-management --- docs/version-management/index.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/version-management/index.md b/docs/version-management/index.md index b3dbf24..f01cb77 100644 --- a/docs/version-management/index.md +++ b/docs/version-management/index.md @@ -14,7 +14,7 @@ nav_order: 6 ## Einleitung/Motivation Zu den aufbewahrungspflichtigen Dokumenten gem. HGB, AO und GoBS gehören auch die Repositoriy-Objekten in ABAP. Dies wurde lange Zeit durch die integrierte Versionsverwaltung innerhalb der ABAP-Workbench (SE80) erreicht. In den letzten Jahren hat sich aber ABAP weiterentwickelt, sei es der Einsatz einer externen Entwicklungsumgebung (ABAP Development Tools), der Einsatz von Git-Versionsverwaltung oder die Entwicklung weiterer Repository-Objekten, die nicht in der ABAP-Workbench entwickelt werden können. Daher stellt sich für jeden ABAP-Entwickler, die zentrale Frage: -* Welche Versionsverwaltung soll ich wann nehmen. +* Welche Versionsverwaltung soll ich wann nehmen? Dieses Kapitel soll daher einen Überblick und eine Gegenüberstellung von Versionsverwaltungs-Lösungen innerhalb des SAP-Universums für ABAP-Entwickler geben. @@ -33,7 +33,25 @@ Dieses Kapitel soll daher einen Überblick und eine Gegenüberstellung von Versi – Man kann alles zu einer Anwendung speichern (Dokumentation, Frontendcode, Backendcode) – Versionierung (Tags) +## Versionskontrollsysteme im SAP-Umfeld +Folgende Versionskontrollsysteme gibt es im SAP-Umfeld +### Lokale Versionsverwaltung in der SE80 +### Versionsverwaltung in ABAP Development Tools +### abapGit +### gCTS +### SAP BAS + ## Vergleich der unterschiedlichen Versionskontrollsystemen +### Versionskontrollsysteme + +#### Lokale Versionsverwaltung in der SE80 +#### Versionsverwaltung in ABAP Development Tools +#### abapGit in SAP GUI +#### abapGit in Eclipse +#### abapGit in der Cloud +#### gCTS onPremise +#### gCTS in der Cloud +#### SAP BAS ## Einsatzszenarien – Entwicklung als Partner – Auslieferbare Software From 63c6180091525de1d0fc1a9b9a947e8c58a4b1fe Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:31:57 +0100 Subject: [PATCH 06/13] Create images --- docs/version-management/images | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/version-management/images diff --git a/docs/version-management/images b/docs/version-management/images new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docs/version-management/images @@ -0,0 +1 @@ + From dfb84401ff432db7f7f9792ce3c16a11d8cab461 Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:32:48 +0100 Subject: [PATCH 07/13] softwarelieferant.png --- docs/version-management/softwarelieferant.png | Bin 0 -> 18777 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/version-management/softwarelieferant.png diff --git a/docs/version-management/softwarelieferant.png b/docs/version-management/softwarelieferant.png new file mode 100644 index 0000000000000000000000000000000000000000..36995969ddf6d9fbc2002c3b0d6a3180199fbf6c GIT binary patch literal 18777 zcmeHv2UOG9wl^Yb0FeMHQk0;gDAJpVLVy4&Dkuty0#X7&N|1!!ktQgps5FtLg3_c* zjh#+FL2AH4lM7JCqa7Fnj$=J+?Ci`$WVGZZ zq`*(2hBgkCSXUhQ^TcWJAuR>Svg+V3@PmRJ{ZBUqxjlfQ=ICgLHbk52*noAlHnwQ+k2c!E77I<$z&K&;0Yyt%R$2lqP1{r7%*xEk=GP@O zEvW`G--ru5M^c(gcUzKtcFXk;s;<)m>$!OG0T)Wb^K(%s6|^!LjxFKX|m z?PTVNIgYhN+kurW-RMgI70T0@vUI0Y6y%lY1Z$_|eHhz91brKiWm#yP%Sc%}+gPG; z^tp_Icr4ZqZ{zq|q6OB$0d2vsD`TLUlM`f2nuH9J71oX+9fRNq+~GGPAcFqi=oF$F z+F0T-^s)P86zNhx^uuTyYs~V_(h3au?9G-3GbF)b%z$sv=l_ja=z3h%rV|zm*89b3 zzy7>D$lgr@Z3iiPSξ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 e_QoHQ1Hv3V3LZ8|;Qy7xbVTz6DqH Date: Mon, 2 Dec 2024 16:36:38 +0100 Subject: [PATCH 08/13] Update index.md --- docs/version-management/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/version-management/index.md b/docs/version-management/index.md index f01cb77..bf4f878 100644 --- a/docs/version-management/index.md +++ b/docs/version-management/index.md @@ -54,7 +54,9 @@ Folgende Versionskontrollsysteme gibt es im SAP-Umfeld #### SAP BAS ## Einsatzszenarien -– Entwicklung als Partner – Auslieferbare Software +### Softwarelieferant +![Alt text](softwarelieferant.png) + – Kundenentwicklung in einer normalen 3-System-Landschaft – Entwicklung in verschiedene Systemlandschaften verteilen – Recovery in drei Systemlandschaft From 379e220f5162c830fd0ede3443817be00eabf27b Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:45:46 +0100 Subject: [PATCH 09/13] Upload image --- .../dsagleitfaden-RECOVERY.drawio.png | Bin 0 -> 46150 bytes .../dsagleitfaden-customcode.drawio.png | Bin 0 -> 51773 bytes .../dsagleitfaden-normal.drawio.png | Bin 0 -> 46348 bytes .../dsagleitfaden-parallel.drawio.png | Bin 0 -> 50879 bytes .../dsagleitfaden-softwarelieferant.drawio.png | Bin 0 -> 52269 bytes .../dsagleitfaden-verteilung.drawio.png | Bin 0 -> 20746 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/version-management/dsagleitfaden-RECOVERY.drawio.png create mode 100644 docs/version-management/dsagleitfaden-customcode.drawio.png create mode 100644 docs/version-management/dsagleitfaden-normal.drawio.png create mode 100644 docs/version-management/dsagleitfaden-parallel.drawio.png create mode 100644 docs/version-management/dsagleitfaden-softwarelieferant.drawio.png create mode 100644 docs/version-management/dsagleitfaden-verteilung.drawio.png diff --git a/docs/version-management/dsagleitfaden-RECOVERY.drawio.png b/docs/version-management/dsagleitfaden-RECOVERY.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..b31b902878781ac9650104fcff00754c256d7334 GIT binary patch literal 46150 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 literal 0 HcmV?d00001 diff --git a/docs/version-management/dsagleitfaden-parallel.drawio.png b/docs/version-management/dsagleitfaden-parallel.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..55da8b4e035c9607142938677154f4df7cd61599 GIT binary patch literal 50879 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 b)g|)Uyu4w7#1SF_@SmEp7A#%y=*j;F{ZX;A literal 0 HcmV?d00001 diff --git a/docs/version-management/dsagleitfaden-verteilung.drawio.png b/docs/version-management/dsagleitfaden-verteilung.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..492da793d704e689147530893514e0e38e84fc64 GIT binary patch literal 20746 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 G{r?X`_GEYf literal 0 HcmV?d00001 From 5128f8847e6f1a527ac85bbe10dc436886357199 Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:50:26 +0100 Subject: [PATCH 10/13] Update index.md Update images szenarien --- docs/version-management/index.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/version-management/index.md b/docs/version-management/index.md index bf4f878..4d29a5c 100644 --- a/docs/version-management/index.md +++ b/docs/version-management/index.md @@ -53,9 +53,23 @@ Folgende Versionskontrollsysteme gibt es im SAP-Umfeld #### gCTS in der Cloud #### SAP BAS ## Einsatzszenarien +### Normale 3-System-Landschaft +![Alt text](dsagleitfaden-normal.drawio.png) ### Softwarelieferant -![Alt text](softwarelieferant.png) +![Alt text](dsagleitfaden-softwarelieferant.drawio.png) + +### Verteilung in verschiedene Systemlandschaften +![Alt text](dsagleitfaden-verteilung.drawio.png) + +### Recovery +![Alt text](dsagleitfaden-RECOVERY.drawio.png) + +### Paralleles Arbeiten +![Alt text](dsagleitfaden-parallel.drawio.png) + +### Custom Code Migration +![Alt text](dsagleitfaden-customcode.drawio.png) – Kundenentwicklung in einer normalen 3-System-Landschaft – Entwicklung in verschiedene Systemlandschaften verteilen From cb30ae8f66ce1b1941dc40be2c0434b2ed9753ba Mon Sep 17 00:00:00 2001 From: Sven Treutler <55890216+bibber0612@users.noreply.github.com> Date: Tue, 3 Dec 2024 07:07:34 +0100 Subject: [PATCH 11/13] Update index.md Update einsatzszenarien --- docs/version-management/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/version-management/index.md b/docs/version-management/index.md index 4d29a5c..3996d29 100644 --- a/docs/version-management/index.md +++ b/docs/version-management/index.md @@ -54,15 +54,21 @@ Folgende Versionskontrollsysteme gibt es im SAP-Umfeld #### SAP BAS ## Einsatzszenarien ### Normale 3-System-Landschaft +Bei diesem Einsatzszenario geht es darum, dass der Code auf dem Entwicklungssystem in ein Git-Repository mit einem Git-Versionsverwaltungssystem übertragen wird. + ![Alt text](dsagleitfaden-normal.drawio.png) ### Softwarelieferant +Dieses Einsatzszenario dient zum Austausch zwischen Quellcode von einem Softwarelieferant an seinem Kunden über ein Git-Repository. ![Alt text](dsagleitfaden-softwarelieferant.drawio.png) ### Verteilung in verschiedene Systemlandschaften +Hier geht es darum, dass man zwischen seinen verschiedenen Systemlandschaften Quellcode austausch. So ist es möglich ohne Quertransporte den gleichen Quellcode zu nutzen und weiterzuarbeiten. ![Alt text](dsagleitfaden-verteilung.drawio.png) ### Recovery +Dieses Szenario beschreibt die Möglichkeit, dass aus dem Git-Repository ein alter Stand zurückgewonnen werden kann. +Dabei muss nicht jedes Repository-Objekt einzeln zurückgeholt werden, sondern ein alter Stand einer ganzen Anwendung. ![Alt text](dsagleitfaden-RECOVERY.drawio.png) ### Paralleles Arbeiten From 324c646ebe6a81e8f315f972b5bb30d30f31753d Mon Sep 17 00:00:00 2001 From: Marco Krapf Date: Fri, 6 Dec 2024 17:59:37 +0100 Subject: [PATCH 12/13] Kapitel "testing" - recommended tools (#67) * Update recommended-tools.md Stichpunkte sortiert und ein bisschen ausformuliert. * Update recommended-tools.md * Update recommended-tools.md nix besonderes * ...testing/img (new folder) * image uploaded (interim img) * Delete docs/testing/img/test test file deleted * Update recommended-tools.md Interim-Grafik eingebaut * Update recommended-tools.md * Update recommended-tools.md Ausformulierung generelle Beschreibung * Update recommended-tools.md Strukturierung "Testwerkzeuge im SAP Solution Manager" * Update recommended-tools.md --------- Co-authored-by: Fabian Lupa --- .../img/tricentis_tools_uebersicht.png | Bin 0 -> 62982 bytes docs/testing/recommended-tools.md | 59 ++++++++++++------ 2 files changed, 40 insertions(+), 19 deletions(-) create mode 100644 docs/testing/img/tricentis_tools_uebersicht.png diff --git a/docs/testing/img/tricentis_tools_uebersicht.png b/docs/testing/img/tricentis_tools_uebersicht.png new file mode 100644 index 0000000000000000000000000000000000000000..dfcba7cdb2d0bb8fd69ae5dd4e329717dba6aa22 GIT binary patch literal 62982 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%0Ar~dIzs5>e?h*~S{X(}5YKERDQz7aPjNc= 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 LU)3l7zWu)dJx1YB literal 0 HcmV?d00001 diff --git a/docs/testing/recommended-tools.md b/docs/testing/recommended-tools.md index 0f63e01..503dda8 100644 --- a/docs/testing/recommended-tools.md +++ b/docs/testing/recommended-tools.md @@ -13,29 +13,62 @@ nav_order: 3 1. TOC {:toc} +Die nachfolgend aufgeführten Testwerkzeuge sind nicht ABAP-spezifisch, sondern generell im Rahmen der (SAP)-Softwareentwicklung zu sehen. Das bedeutet auch, dass von Seiten des ABAP-Entwicklers (maskulin?) nichts beachtet werden muss, was die Tests in irgendeiner Weise, also weder positiv oder negativ, beeinflussen könnte. -Die nachfolgend aufgeführten Tools (Testwerkzeuge?) sind nicht ABAP-spezifisch, sondern generell im Rahmen der (SAP)-Softwareentwicklung zu sehen. Das bedeutet auch, dass von Seiten des ABAP-Entwicklers (maskulin?) nichts beachtet werden muss, was die Tests in irgendeiner Weise (weder positiv oder negativ) beeinflussen könnte. +Die Auswahl in diesem Leitfaden beschränkt sich auf die von SAP bereitgestellten(?) oder (schon) im Lizenzumfang enthaltenen Produkte. Daneben gibt es noch viele weitere Lösungen auf dem Markt, die für die ABAP-Entwicklung verwendet werden können. -## SAP Cloud ALM +## Testwerkzeuge im SAP Solution Manager +--> Marco -Als Nachfolgeprodukt des SAP Solution Managers, dessen Mainstream-Wartungsende seitens SAP auf Ende 2027 datiert ist, wurde für das Application Lifecycle Management (ALM, link zu diesem Kapitel) im Jahr xxx2018?xxx SAP Cloud ALM vorgestellt. Das Cloud-Produkt beinhaltet - wie auch der Solution Manager - unter anderem ein integriertes Testmanagement, das sowohl eigenständig (für manuelle Testfälle) als auch in Verbindung mit einer Testautmatisierungslösung wie Tricentis Test Automation (siehe den nächsten Abschnitt) eingesetzt werden kann. SAP Cloud ALM und damit auch dessen Testmanagement-Funktionen werden kontinuierlich weiterentwickelt. +Der SAP Solution Manager (https://support.sap.com/en/alm/solution-manager.html // die Seite ist auf EN...) ist ein ausgereiftes System für das Application Lifecycle Management (ALM, Link zu diesem Kapitel), das unter anderem verschiedene Testwerkzeugen enthält. + +### Test Suite +xxx...Standard SolMan +https://help.sap.com/docs/SUPPORT_CONTENT/sm/3530264795.html + +### Test Steps Designer (oder das volle Programm hier?) +xxx...aus FB... ST-OST Add-on +https://support.sap.com/en/alm/focused-build.html +https://support.sap.com/content/dam/support/en_us/library/ssp/alm/sap-solution-manager/focused-solutions/Focused_Build/sp14/FB%20-%20Test%20Management%20-%20L2%20SP14.pdf + +### CBTA +xxx...Automatisierung...Standard SolMan +https://help.sap.com/docs/SUPPORT_CONTENT/sm/3530264810.html + +## eCATT (extended Computer Aided Test Tool) --> gehört nicht unter "Testwerkzeuge im SAP Solution Manager" !!! +xxx... +Verwendung von eCATT irgendwie referenzieren auf eigenes Kapitel? +https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/de-de/49/6d2fa0e0221ec6e10000000a42189b/frameset.htm +oder https://help.sap.com/saphelp_gbt10/helpdata/DE/20/e81c3b84e65e7be10000000a11402f/frameset.htm ??? + +## Testwerkzeuge in SAP Cloud ALM + +Als Nachfolgeprodukt des SAP Solution Managers, dessen Mainstream-Wartungsende seitens SAP auf Ende 2027 datiert ist, wurde für das Application Lifecycle Management (ALM, Link zu diesem Kapitel bzw. hab ich oben schon) im Jahr xxx2018?xxx SAP Cloud ALM vorgestellt. Das Cloud-Produkt beinhaltet - wie schon der Solution Manager - unter anderem ein integriertes Testmanagement, das sowohl eigenständig (für manuelle Testfälle) als auch in Verbindung mit einer Testautmatisierungslösung wie Tricentis Test Automation (siehe den nächsten Abschnitt bzw. Link dort hin) eingesetzt werden kann. SAP Cloud ALM und damit auch dessen Testmanagement-Funktionen werden kontinuierlich weiterentwickelt. + +--> Marco + Automatische Prozesstests mit CloudALM? (wie) geht das ? ## Tricentis Test Automation +--> Harald -Tricentis ist ein eigenständiges Unternehmen, das nicht zu SAP gehört, aber durch eine (langjährige, tiefgehende?) Partnerschaft sehr gut in die SAP-Welt integriert und daher im SAP-Kontext die empfohlene Lösung zur Testautomatisierung ist (https://support.sap.com/en/alm/partners/test-automation.html). +Tricentis ist ein eigenständiges Unternehmen, das nicht zu SAP gehört, aber durch eine strategische Partnerschaft sehr gut in die SAP-Welt integriert und daher im SAP-Kontext die empfohlene Lösung zur Testautomatisierung ist (https://support.sap.com/en/alm/partners/test-automation.html) / (https://www.tricentis.com/sap). ...verschiedene Ausprägungen...Lizenzen teilweise schon dabei... · Tosca: Integration in SAP SolMan – Link zu https://documentation.tricentis.com/tosca/2310/de/content/sap_solutionmanager/concept.htm · TTA: Integration in SAP Cloud ALM – Link zu https://support.sap.com/en/alm/partners/test-automation.html -(Grafik, welches Tricentis-Tool für welches ALM-System etc.?) + § Tool für automatische GUI-Tests über sämtliche Technologien (Webseiten, SAP GUI etc.) + +(Grafik selber machen auf deutsch, welches Tricentis-Tool für welches ALM-System etc., in Anlehnung an die Darstellung von SAP --> "Quelle...in Anlehnung an..."?) und die einzelnen Punkte kurz beschreiben +![Clean Core](./img/tricentis_tools_uebersicht.png) -(sollen wir auf 4 Ebenen gehen?) -### Mögliche Einsatzszenarien +### Mögliche Einsatzszenarien für automatisierte Testfälle #### Tägliche Smoke-Tests +--> Harald Daily Smoke Tests in Testumgebungen... #### Regressionstests +--> Harald Automatisierte Testfälle können hervorragend für Regressionstests in Prä-Produktionssystemen eingesetzt werden... was muss da beachtet werden??? Testdaten etc.? @@ -48,15 +81,3 @@ SAP Application Lifecycle Management: Test Automation https://support.sap.com/en Tricentis: Die empfohlene Testlösungvon SAP https://www.tricentis.com/de/sap ---------------------- -/// Stichpunkte aus der Word-Datei /// - -o Cloud ALM - § ?Automatische Prozesstests mit CloudALM? - · Geht das ? - § Stand Sept 2024 laut Marco noch nicht gut nutzbar. ( freundlich formulieren ) --> ist das noch so? -o Tricentis: https://www.tricentis.com/de/sap - § Hat erst mal mit ABAP-Entwicklung wenig zu tun, also da wäre nix zu beachten, aber als allgemeines Tool, um Software zu testen - § Tool für automatische GUI-Tests über sämtliche Technologien (Webseiten, SAP GUI etc.) - - - From afd66bc138fd4516ad4408fb4187199ab2e8992a Mon Sep 17 00:00:00 2001 From: Volodymyr Vashchenko <132553813+volovash@users.noreply.github.com> Date: Sat, 7 Dec 2024 10:56:23 +0100 Subject: [PATCH 13/13] =?UTF-8?q?=C3=84nderungen=20am=20"What=20is=20clean?= =?UTF-8?q?=20core"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/clean-core/what-is-clean-core.md | 84 ++++++++++++++------------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/docs/clean-core/what-is-clean-core.md b/docs/clean-core/what-is-clean-core.md index 775a6ce..f8b84bf 100644 --- a/docs/clean-core/what-is-clean-core.md +++ b/docs/clean-core/what-is-clean-core.md @@ -18,16 +18,16 @@ nav_order: 1 ## Was ist Clean Core -Clean Core ist ein Konzept, und für manchen SAP Kunden eine Philosophie - Clean Core wird unterschiedlich aufgefasst, interpretiert und gelebt. Ein gemeinsames Verständniss der DSAG-Community wäre das folgende: +Clean Core ist ein Konzept und für einige SAP-Kunden eine Philosophie - Clean Core wird unterschiedlich verstanden, interpretiert und gelebt. Ein gemeinsames Verständnis der DSAG-Community wäre folgendes: -**"Clean Core"** - Streng genommen ist das Konzept so zu interepretieren: Systemupgrades sollen keinen Einfluss auf Kundenerweiterungen haben. Deshalb -dürfen die SAP Kunden nur freigegebene Schnittstellen für Geschäftprozesserweiterungen nehmen. +**"Clean Core"** - Streng genommen ist das Konzept so zu interpretieren: System-Upgrades sollen keinen Einfluss auf Kundenerweiterungen haben. Daher +dürfen SAP-Kunden nur freigegebene Schnittstellen für Geschäftsprozesserweiterungen verwenden. -**“Keep the core clean”** – Bedeutet, dass ein Unternehmen nach Clean Core Prinzipien - definierten Richtlinien in einem Unternehmen - Neuentwicklung aufsetzt. +**“Keep the core clean”** - Bedeutet, dass ein Unternehmen Neuentwicklungen nach Clean-Core-Prinzipien - definierten Richtlinien in einem Unternehmen - durchführt. -**“Make the core clean”** – Spricht die Unternehmenstransformation an und behandelt die iterative Reise zu einem Clean Core. +**Make the core clean"** - Bezieht sich auf die Unternehmenstransformation und die iterative Reise zu einem Clean Core. -Clean Core hat vier Fokusfelder: Geschäftsprozesse, Kundenerweiterungen, Geschäftsdaten und Integration. Vor allem die neuen Wege der Kundenerweiterungen stehen in diesem Leitpfaden im Fokus. +Clean Core hat vier Fokusbereiche: Geschäftsprozesse, Kundenerweiterungen, Geschäftsdaten und Integration. Vor allem die neuen Wege der Kundenerweiterungen stehen im Mittelpunkt dieser Roadmap. > „Die Erweiterbarkeitsfunktionen umfassen viele Optionen, die Kunden und Partner dabei unterstützen, Standard-Business-Software an ihre Geschäftsanforderungen anzupassen.“ @@ -38,66 +38,70 @@ Quelle: SAP Help Portal Clean Core {: .img-caption} -Das Clean Core Konzept mit seinen unterschiedlichen Facetten ist von SAP klar und deutlich bei der TechEd2023 kommuniziert. Die Schritt-für-Schritt Anleitung ist für etablierte Kunden, welche diverse „Legacy“ Technologien in ihren SAP-Systemen nutzen, ist dennoch unklar. -Es gibt zahlreiche Bestandskunden und SAP Partner, welche Mehrwerte durch Eigenentwicklung und Systemerweiterung, in Ihren Systemen geschaffen haben. Diese Mehrwerte gehören laut Definition nicht zum Clean Core - die Erweiterungen beruhen fast immer auf nicht freigegebene Schnittstellen. Es existieren unterschiedliche Nachfolge-Technologie-Matrizen für die sogenannten RICEFW-Objekte. Intern stellt sich primär die Fragen: „Wie können wir gegenüber unseren Kunden den Technologie-Wechsel vertreten? Und weshalb sollte ich jetzt gut-funktionierende Prozesse basierend bspw. auf Idocs, Nachrichten, RFCs, und ALV-Transaktionen umziehen? +Das Clean Core Konzept mit seinen verschiedenen Facetten wird von SAP in der [TechEd2023 - Clean Core: What It Is, Why to Do It, and How to Get There] (https://www.youtube.com/watch?v=jlzdD55ahqY) klar kommuniziert. Die Schritt-für-Schritt-Anleitung ist jedoch für etablierte Kunden, die verschiedene „Legacy“-Technologien in ihren SAP-Systemen einsetzen, unklar. +Es gibt zahlreiche Bestandskunden und SAP-Partner, die durch Eigenentwicklungen und Systemerweiterungen Mehrwerte in ihren Systemen geschaffen haben. Diese Mehrwerte gehören per Definition nicht zum Clean Core - die Erweiterungen basieren fast immer auf nicht freigegebenen Schnittstellen. Für die sogenannten RICEFW-Objekte gibt es verschiedene [Nachfolgetechnologie-Matrizen] (https://www.sap.com/documents/2022/10/52e0cd9b-497e-0010-bca6-c68f7e60039b.html). Intern stellen sich vor allem die Fragen: „Wie können wir den Technologiewechsel gegenüber unseren Kunden vertreten? Und warum soll ich gut funktionierende Prozesse, die z.B. auf Idocs, Messages, RFCs und ALV-Transaktionen basieren, jetzt umstellen? ### Zielgruppe -(Noch offen) -* SAP Kunden die auf S/4 HANA gehen - Greenfield Ansatz und stringent Clean Core bestimmen -* SAP Kunden die Brownfield auf S/4 sind- Clean Core nach und nach definieren und Neuentwicklung konform dazu halten +Im Wesentlichen sind im DSAG-Netzwerk zwei große Kundengruppen sichtbar: Die erste Gruppe entscheidet sich für eine große Investition in ihre SAP-Landschaft und arbeitet mit SAP und ihren Partnern zusammen, um auf einen Clean Core im Sinne der SAP-Definition zu gehen. Die andere Gruppe entscheidet sich für einen skalierten Ansatz, bei dem die Investitionen über mehrere Jahre verteilt werden. Hier einige Beispiele für mögliche SAP Kunden: + +* Szenario eins: Neue SAP-Kunden, die auf S/4 HANA migrieren. Hier sollte der Greenfield-Ansatz und das strikte Clean Core laut SAP angewendet werden. +* Szenario zwei - Brownfield to Bluefield: Bestandskunden von SAP, die seit Jahrzehnten mit SAP arbeiten und auf S/4 HANA migrieren. Je nach Investitionsbereitschaft kann schrittweise der Clean Core definiert und die Neuentwicklung konform dazu gehalten werden. Bestehende Kundenerweiterungen werden in Großprojekten auf eine Clean Core konforme Entwicklung umgestellt. +* Szenario drei - Brownfield to Greenfield: Bestands SAP Kunden, welche seit Jahrzenten mit SAP zusammenarbeiten und auf S/4 HANA migrieren. Hier kann eine Abbildung der Kundenerweiterungen mit sehr hohem Investitionsvolumen erfolgen. +* Szenario vier - Brownfield im S/4 HANA: Ist identisch mit Szenario zwei. ### Clean Core Definition -Im Kern dreht sich das Konzept des Clean Core darum, wesentliche Geschäftslogiken von nicht wesentlichen Funktionalitäten innerhalb der Software-Suite von SAP zu trennen. Durch die Isolierung von Kerngeschäftsprozessen und Datenstrukturen strebt SAP eine schlankere, agilere Grundlage an, die sich an sich ändernde Geschäftsanforderungen anpassen kann. +Im Kern dreht sich das Clean-Core-Konzept um die Trennung der Kerngeschäftslogik von der Nicht-Kernfunktionalität innerhalb der SAP-Software-Suite. Durch die Isolierung von Kerngeschäftsprozessen und Datenstrukturen strebt SAP eine schlankere und agilere Basis an, die sich an veränderte Geschäftsanforderungen anpassen kann. -Die neuen Wege der Kundenerweiterung heißt: ABAP Cloud, und “Side-By-Side Extensibility”. +Die neuen Wege der Kundenerweiterung heißen: ABAP Cloud und “Side-by-Side Extensibility”. -**ABAP Cloud oder auch “On-Stack Extensibility”** – Das sind zwei unterschiedliche Technologien: “Developer Extensibility” und “Key-User Extensibility” +**ABAP Cloud oder auch “On-Stack Extensibility”** - Das sind zwei unterschiedliche Technologien: “Developer Extensibility” und “Key-User Extensibility”. -**Side-By-Side Extensibility** – Ist die Aulagerungen von Kundenerweiterungen in die Business Technlogy Palltform – BTP. +**Side-by-Side Extensibility** - Ist die Auslagerung von Kundenerweiterungen in die Business Technology Platform - BTP. -Ein Beispiel: Statt an unterschiedliche Systeme das MATMAS Idoc – in heterogener Ausprägung an diverse Systeme zu schicken, sollten Sie auf die standardisierte Schnittstelle: Product Master API setzen. Um die SAP und Non-SAP-Systeme zu versorgen, nutzten Sie dann eine Schnittstelle, welche homogen ausprägt werden kann. +Ein Beispiel: Anstatt das MATMAS Idoc in heterogener Form an verschiedene Systeme zu senden, sollte die standardisierte Schnittstelle: Product Master API verwendet werden. Zur Versorgung der SAP- und Non-SAP-Systeme dient dann eine Schnittstelle, die homogen ausgeprägt werden kann. -Das Datenmodell darunter wird durch Key-User-Extensibility erweitert und auch in generischen Reports wie „embedded Analytics“, oder auch der SAP Analytic Cloud (SAC) verwendet. Bei komplizierter Kunden-Logik muss der Entwickler mit Developer Extensibility und dem RESTful Application Programming Model (RAP) diese Kunden-Logik erweitern. +Das Datenmodell darunter wird durch Key-User-Extensibility erweitert und auch in generischen Reports wie „Embedded Analytics“ oder auch der SAP Analytic Cloud (SAC) verwendet. Bei komplexer Kundenlogik muss der Entwickler diese Kundenlogik mit Developer Extensibility und dem RESTful Application Programming Model (RAP) erweitern. -Grundsätzlich heißt Clean Core, so wie der Hersteller es beschreibt: -1. Erweiterungen sind klar vom SAP-Code getrennt, und Erweiterungen verändern keine SAP-Objekte. -2. Nutzen Sie die neuen Erweiterungstechnologien und den SAP Standard. Erweiteren Sie mit den neuen Erweiterungsmethoden, wie Key-User, Developer und Side-by-Side Extensibility. -3. Erweiterungen verwenden nur stabile, freigegebene SAP-APIs und Erweiterungspunkte. Classical Extensibility sollte nur in zugelassenen Business Add-Ins, mit freigegebenen Entwicklungsobjekten stattfinden. -4. Die Legacy Technologien, wie bspw. RFCs, Idocs und kundeneigene Dynpro Transkationen, oder SAP Gateway Projekte sollen nicht mehr für neue Entwicklungen genutzt werden. -5. Alte Kundeneigene Entwicklungen / Erweiterungen sollen umziehen auf neue Technologien, oder die Geschäftsprozessanforderung wird im SAP Standard wiedergefunden. +Grundsätzlich ist Clean Core so, wie es der Hersteller beschreibt: +1. Erweiterungen sind klar vom SAP-Code getrennt und Erweiterungen verändern keine SAP-Objekte. +2. Nutzen Sie die neuen Erweiterungstechnologien und den SAP-Standard. Erweiterungen verwenden die neuen Erweiterungsmethoden wie Key-User, Developer und Side-by-Side Extensibility. +3. Erweiterungen verwenden nur stabile, freigegebene SAP APIs und Erweiterungspunkte. Classical Extensibility sollte nur in freigegebenen Business Add-Ins mit freigegebenen Entwicklungsobjekten stattfinden. +4. Legacy Technologien wie RFCs, Idocs und kundeneigene Dynprotransaktionen oder SAP Gateway Projekte sollten nicht mehr für Neuentwicklungen verwendet werden. +5. Alte kundeneigene Entwicklungen / Erweiterungen sollen auf neue Technologien migriert werden, oder die Geschäftsprozessanforderung wird im SAP Standard wiedergefunden. -Aus den Herstellerangaben bilden sich vier Anwedungsgebiete und die Fakten um ein Clean Core zu erreichen sehen wie folgt aus: +Aus den Herstellerangaben ergeben sich vier Anwendungsbereiche und die Fakten zur Erreichung eines Clean Core sehen wie folgt aus: #### Datenmodelle -* Egal ob einfache oder komplexe Anwendungsfälle zu implementieren haben ist eine Datenmodellierung /ein Umgang mit dem Virtual Data Model (VDM) notwendig. -* Es soll keine Direktzugriffe auf SAP Standard Tabellen geben. +* Unabhängig davon, ob einfache oder komplexe Anwendungsfälle implementiert werden sollen, ist eine Datenmodellierung / ein Umgang mit dem Virtual Data Model (VDM) erforderlich. +* Es sollte kein direkter Zugriff auf SAP Standardtabellen erfolgen. #### Anwendungslogik -* SAP Standard Coding soll nicht mehr klassisch erweitert werden -* Die Erweiterungen am Standard sollen in definierten, freigegebenen Badis migriert werden. -* Eigenentwicklung muss Clean Core konforme Entwicklungsobjekte benutzen (Stichwort: Release Contracts) +* SAP Standard Coding soll nicht mehr klassisch erweitert werden. +* Erweiterungen am Standard sollen in definierte, freigegebene Badis migriert werden. +* Eigenentwicklungen müssen Clean Core konforme Entwicklungsobjekte verwenden (Stichwort: Release Contracts). -#### Oberflächen -* Grundsätzlich sollen die Kunden die Standard Fiori Apps nutzen, oder SAP GUI for HTML mit Screen Personas verwenden um existierende, SAP Standard Transkationen zu nutzen. -* Die Standard Fiori Apps, und die Standard APIs dahinter sollten erweitert werden. -* Bei Custom Apps soll primär erst Fiori Elements + RAP und Standard APIs genommen werden. Die nächste Stufe wären dann Freestyle Fioris Apps. Oder Cloud Native Applications in der Cloud (Side-by-side Extensibility). Das Portfolio der SAP Build bieten auch weitere Lösungswege. +#### Schnittstellen +* Grundsätzlich sollen Kunden die Standard Fiori Apps oder SAP GUI for HTML mit Screen Personas verwenden, um bestehende SAP Standardtransaktionen zu nutzen. +* Die Standard Fiori Apps und die dahinterliegenden Standard APIs sollen erweitert werden. +* Für Custom Apps sollten zunächst Fiori Elements + RAP und Standard APIs verwendet werden. Der nächste Schritt wären dann Freestyle Fiori Apps. Oder Cloud Native Apps in der Cloud (Side-by-Side Extensibility). Das Portfolio von SAP Build bietet weitere Lösungsansätze. #### Schnittstellen -* Nur Clean Core-konforme, freigegebene Schnittstellen sollen benutzt werden -* Erweiterungen werden an APIs / Microservices durchgeführt, um die Funktionalität von SAP zu erweitern, ohne die Integrität des Kernsystems zu beeinträchtigen. -* Integration nach außen muss klar geregelt sein, Prozessintegration und die Middleware für das API-Management muss gegeben sein. -* Legacy Technologien wie Idocs, RFCs, und Gateway Projekte müssen sukzessive umgezogen werden. +* Es werden nur Clean Core konforme, freigegebene Schnittstellen verwendet. +* Erweiterungen werden an APIs / Microservices vorgenommen, um die Funktionalität von SAP zu erweitern, ohne die Integrität des Kernsystems zu beeinträchtigen. +* Die Integration nach außen muss klar geregelt sein, Prozessintegration und Middleware für das API-Management müssen vorhanden sein. +* Legacy-Technologien wie Idocs, RFCs und Gateway-Projekte müssen sukzessive abgelöst werden. -Zusammenfassend steht das Clean Core Konzept von SAP für einen Paradigmenwechsel im Design von Unternehmenssoftware. Die SAP setzt darauf neue Services nur im Cloud Bereich anzubieten, und die Schnittstellen zu dem Kern weiterauszubauen. Der Mehrwert gut-laufende Lösung auf eine neue Plattform zu bringen, ist erstmal nicht gegeben. Neue Lösungen sollte ein Unternehmen mit den neuen Erweiterugsarten gehen um sich zukunftsicher aufzustellen. Somit profitiert ein SAP Kunde von der Innovationen rund um den Standard. -Durch die Umsetzung der Prinzipien des Clean Core und strategischer Initiativen können Organisationen sich auf zukünftige SAP-Strategien, vor allem Cloud-Technologien vorbereiten. +Zusammenfassend stellt das Clean Core Konzept der SAP einen Paradigmenwechsel im Design von Unternehmenssoftware dar. SAP setzt darauf, neue Services nur noch in der Cloud anzubieten und die Schnittstellen zum Core weiter auszubauen. Der Mehrwert, gut laufende Lösungen auf eine neue Plattform zu bringen, ist vorerst nicht gegeben. Neue Lösungen sollte ein Unternehmen mit den neuen Erweiterungsarten gehen, um für die Zukunft gerüstet zu sein. So profitiert ein SAP-Kunde von den Innovationen rund um den Standard. Zum Paradigmenwechsel gehört auch die digitale Transformation: weg vom SAP GUI und Dynpros hin zum Fiori Launchpad, die Endanwender sollen primär im Browser arbeiten. Zu einem Clean Core gehört auch ein massives Change Management durch die IT und die Fachbereiche. + +Durch die Umsetzung der Prinzipien des Clean Core und strategischer Initiativen können sich Organisationen auf zukünftige SAP-Strategien, insbesondere Cloud-Technologien, vorbereiten. Laut SAP geht es bei Clean Core vor allem, dass die Kunden sich die Zukunft nicht versperren und standardisiert Schnittstellen aufbauen. Durch die Standardisierung von Geschäftsprozessen und den Einsatz der SAP BTP können SAP Services, oder auch Lösungen von SAP Partnern komplett verwendet werden.   Die Clean Core Strategie ist für viele Bestandskunden eine Philosophie, bis interne Richtlinien die Nutzungen der Nachfolge-Technologien regeln. Basierend auf den Richtlinien werden Entwickler organisatorisch ausgerichtet, und geschult. Ein Gremium um die „Clean Core Governance“ einzuhalten ist Pflicht, mit dem Mandat die Richtlinien zu pflegen, zu erweitern und zu forcieren. Research und Development sollte häufig betrieben werden, um die Mehrwerte durch SAP-Service herauszuarbeiten. ### Private/Public Cloud/BTP ... - +siehe [Mapping your journey to SAP S/4HANA Cloud Private Edition - A practical guide for senior IT leadership](https://d.dam.sap.com/x/HvXc6b7/94115_92460_enUS.pdf?rc=19&inline=true) ### Zielbild - Reise mit SAP, der Weg in die Public Cloud? Clean Core ist relevant und anwendbar für "SAP S/4HANA on-premise" und "SAP S/4HANA Cloud, private edition (RISE)"