ABAP Platform 1909 Testversion jetzt gratis verfügbar

Die ABAP Platform 1909 Testversion ist ab sofort verfügbar. Die ABAP Platform 1909 Testversion ersetzt die bisherige ABAP Developer Edition 1909. Mit der ABAP Platform 1909 Testversion ist es möglich, die Programmiersprache ABAP selbstständig und kostenlos zu erlernen oder auszuprobieren. Die Testversion von ABAP Platform 1909 ist auf Docker verfügbar.

An der Nachfolgeversion ABAP Platform Testversion 2022 wird bereits gearbeitet. Die Versionen ABAP Platform Testversion 2020 und ABAP Platform Testversion 2021 werden übersprungen. Es ist geplant, die ABAP Platform Testversion mit jedem neuen Release der ABAP Platform (Version 2023, 2025 und 2027 gemäß der Release-Strategie für SAP S/4HANA) auszuliefern. Darüber hinaus ist geplant, die ABAP Platform Testversion zu aktualisieren, sobald ein neues SP-Update für die ABAP Platform veröffentlicht wird.

Außerdem möchte ich folgende zwei SAP Blog-Beiträge hervorheben, die wichtige Änderungen und Rahmenbedingungen zur ABAP Platform 1909 Testversion hervorragend beschreiben:

Im Artikel „Eigenes SAP-System kostenlos einrichten – Tutorial“ wird im Detail erläutert, wie man SAP NetWeaver AS ABAP Developer Edition einrichtet.

Video zum Artikel

Ich habe ein englischsprachiges Video erstellt und auf YouTube veröffentlicht, das die Schritte direkt im System zeigt. Dort findest du auch alle relevanten Informationen, um dein eigenes SAP-System selbständig zu installieren und zu nutzen.

Voraussetzungen für ABAP Platform 1909 Testversion

Bevor Du anfängst, die ABAP Platform 1909 Testversion einzurichten, solltest Du Folgendes verstehen und bereits kennen:

  • Prinzipien der Docker Container Technologie
  • Entitäten Docker-Image / Docker-Container und ihre Beziehung
  • Grundlegenden Befehle für die Arbeit mit Images und Containern

Technische Voraussetzungen

Windows- und Mac-Benutzer müssen sicherstellen, dass sie ihrem Desktop-Docker genügend Ressourcen zugewiesen haben, da ihr Docker in einer VM läuft, die GNU/Linux enthält, und diese zugrunde liegende VM ohne explizite Zuweisung keine Hardwareressourcen mit dem Host-Computer teilt.

Hinweis: Es wird empfohlen dringend 32 GB RAM, um das ABAP Platform Trial Image auszuführen. Die folgenden Anforderungen beziehen sich nur auf die Ressourcen, die für die Docker-Umgebung selbst benötigt werden.

Linux

  • 4 CPUs
  • 16GB RAM
  • 150GB Festplatte

Windows

  • 4 CPUs für Docker Desktop
  • 16GB für Docker Desktop
  • 170GB Festplatte für Docker Desktop

macOS

  • 4 CPUs für Docker Desktop
  • 16GB für Docker Desktop
  • 170GB Festplatte für Docker Desktop

Verwendung

Um das System starten zu können, musst Du der SAP COMMUNITY-Lizenz zustimmen, die Dir beim Start des Docker-Containers angezeigt wird.

Installation

Bevor Du beginnst, stelle bitte sicher, dass Du genügend Speicherplatz für dein Docker-Setup zur Verfügung hast. Das Image hat eine Größe von ca. 23 GB, wenn es komprimiert ist, und >53 GB, wenn es dekomprimiert ist. Es wäre frustrierend, viel Zeit mit dem Herunterladen des Images zu verschwenden, nur um dann festzustellen, dass Docker nicht genug Speicherplatz zum Entpacken des Images hat.

Um das System erfolgreich ausführen zu können, musst Du dem Docker-Desktop mindestens 16 GB RAM zuweisen.

Das Image ist nicht für anonyme Benutzer verfügbar, daher musst du einen Account bei Docker Hub haben. Um das Image ziehen zu können, musst du zunächst den Befehl „docker login“ ausführen oder dich über Docker Desktop anmelden.

Danach kannst du folgenden Befehl ausführen:

docker pull sapse/abap-platform-trial:1909

Ausführen

Das System erwartet den Hostnamen vhcala4hci, alle anderen Hostnamen verhindern den Start des Systems. Bitte verwende den folgenden Befehl und beobachte die Ausgabe genau:

GNU/Linux

docker run --stop-timeout 3600 -it --name a4h -h vhcala4hci sapse/abap-platform-trial:1909

Andere

docker run --stop-timeout 3600 -i --name a4h -h vhcala4hci -p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 50000:50000 -p 50001:50001 sapse/abap-platform-trial:1909 -skip-limits-check

Du startest den Container im interaktiven Modus (-i), damit Du das System mit der Tastenkombination Strg-C ordnungsgemäß herunterfahren kannst. Du verwendest jedoch auch den Parameter –stop-timeout, der sicherstellt, dass Docker der SAP HANA-Datenbank (HDB) genügend Zeit gibt, ihre In-Memory-Datenbank beim Herunterfahren auf die Festplatte zu schreiben.

Du nennst den Container „a4h“, um ihn in zukünftigen Befehlen leichter referenzieren zu können.

Wenn Du podman anstelle von Docker verwenden möchtest, füge bitte den Parameter -t hinzu, um SIGINT korrekt an den Init-Prozess des Containers zu übergeben.

Wenn Du vorhast, den Container zu stoppen und zu starten, um Deine Änderungen im System zu behalten, ist es empfehlenswert, auch den Parameter -agree-to-sap-license zu verwenden. Dieser Parameter stellt sicher, dass Du die Lizenzvereinbarung nicht manuell akzeptieren musst.

Nachdem alle Dienste erfolgreich gestartet wurden, solltest Du warten, bis die CPU-Last sinkt und der Speicherverbrauch nicht weiter ansteigt, bevor Du versuchst, Dich am System anzumelden.

Fehlerbehebung

Der Init-Prozess des Container-Laufs überprüft Deinen korrekten Hostnamen und die Linux-Kernel-Limits.

Wenn Du die Überprüfung der Linux-Kernel-Limits überspringen möchtest, kannst Du den Parameter -skip-limits-check an den oben stehenden Befehl „docker run“ anhängen.

Wenn Du den Docker-Run-Befehl einige Zeilen weiter oben auf dieser Seite verwendet hast und der Container mit der folgenden Fehlermeldung beendet wurde.

Cannot continue because of insufficient system limits configuration!

If you want to continue without recommended limits,
run again with the parameter -skip-limits-check

Das Anhängen des Parameters -skip-limits-check an den Ausführungsbefehl und das erneute Ausführen des Ausführungsbefehls führt höchstwahrscheinlich zu einem Container-Namenskollisionsfehler mit den folgenden Symptomen:

Error response from daemon: Conflict. The container name "/a4h" is already in use by container XYZ. You have to remove (or rename) that container to be able to reuse that name..

Das liegt daran, dass der erste Befehl einen Container namens a4h gestartet hat, der sofort beendet wurde, Docker ihn aber nicht gelöscht hat und Du nun versuchst, einen anderen Container mit demselben Namen zu starten. Richtig, das ist genau das, was wir Dir empfohlen haben. Um den Container jedoch erneut zu starten, musst Du die vorherige Instanz mit dem Befehl „docker rm -f a4h“ entfernen und erst dann den erweiterten Befehl „docker run“ erneut ausführen.

Die folgenden Grenzwerte werden überprüft:

  • kernel.shmmax (zulässig für docker run –sysctl) > 21474836480
  • kernel.shmmni (erlaubt für docker run –sysctl) > 32768
  • kernel.shmall (erlaubt für docker run –sysctl) > 5242880
  • kernel.msgmni (erlaubt für docker run –sysctl) > 1024
  • kernel.sem (erlaubt für docker run –sysctl) > 1250 256000 100 8192
  • Anzahl der geöffneten Dateideskriptoren (RLIMIT_NOFILE, ulimit -n, docker run –ulimit nofile=1048576:1048576) > 1048576
  • vm.max_map_count (muss auf dem Host über sysctl unter GNU/Linux eingestellt werden) > 2147483647
  • fs.file-max (muss auf dem Host über sysctl unter GNU/Linux eingestellt werden) > 20000000
  • fs.aio-max-nr (muss auf dem Host über sysctl unter GNU/Linux eingestellt werden) > 18446744073709551615

Die von Docker aktivierten Limits können auf der Docker-Run-Befehlszeile als übergeben werden:

--sysctl kernel.shmmax=21474836480 --sysctl kernel.shmmni=32768 --sysctl kernel.shmall=5242880 --sysctl kernel.msgmni=1024 --sysctl kernel.sem="1250 256000 100 8192" --ulimit nofile=1048576:1048576

Die sysctl-Parameter, die Du mit Docker nicht ändern kannst, müssen auf dem Docker-Host (dem Rechner, auf dem Du die Docker-Befehle ausführst) geändert werden. Leider können dies nur Linux-Benutzer tun, daher musst Du als Mac- oder Windows-Benutzer immer den Parameter -skip-limits-check verwenden. Wir entschuldigen uns dafür, dass wir diese Pseudoanforderung nicht früher erwähnt haben, aber wir wollten sicherstellen, dass Du Dir der Tatsache bewusst bist, dass einige Grenzen nicht eingehalten werden können und dass dies negative Auswirkungen haben könnte.

Wenn Du die Überprüfung des Hostnamens überspringen möchtest, füge den Parameter -skip-hostname-check in die Befehlszeile von „docker run“ ein.

Lizenzen

ABAP Platform (AS ABAP)

Das Image enthält ein Skript, das in der Lage ist, Deine AS-ABAP-Lizenz aus der Datei zu aktualisieren, die Du in den Container bindest oder kopierst. Speichere einfach die Textdatei auf Deinem lokalen Dateisystem und schiebe sie in den Container unter dem Pfad /opt/sap/ASABAP_license. Der für die Erstellung der Lizenzdatei notwendige Hardwareschlüssel wird während der Startphase des Containers ausgedruckt.

Wenn Du Probleme mit dem AS-ABAP-Lizenzaktualisierungsskript hast, kannst Du verhindern, dass der Container diese Funktion ausführt, indem Du den Parameter -no-asabap-license-update übergibst oder die Datei /opt/sap/.no_ASABAP_license_update im Container anlegst.

Neuer Container

Aktualisiere den Befehl „docker run“ mit „-v <lokaler Pfad der Schlüsseldatei>:/opt/sap/ASABAP_license“. Bitte stelle sicher, dass der Parameter -v in Deiner Befehlszeile vor dem Docker-Image-Namen (sapse/abap-platform-trial:1909) steht, da der Parameter zu „docker run“ gehört und alles hinter dem Image-Namen an Programme innerhalb des Containers weitergegeben wird.

Vorhandener Container

Kopiere die Schlüsseldatei mit dem Befehl „docker cp <lokaler Pfad der Schlüsseldatei> a4h:/opt/sap/ASABAP_license“ in den Container. Wenn der Container gestoppt wurde, wird die Datei angewendet, wenn Du den Container erneut startest. Wenn der Container läuft, kannst Du ihn entweder stoppen und starten oder Du kannst die Lizenzaktualisierung über „docker exec -it a4h /usr/local/bin/asabap_license_update“ auslösen.

HDB

Das Image wird mit einer gültigen HDB-Lizenz ausgeliefert und es ist nicht notwendig, die Lizenz vor Ablauf erneut zu beantragen.

Das Image enthält ein Skript, das die HDB-Lizenz anhand der Datei aktualisieren kann, die Du in den Container einbindest oder kopierst. Wenn also die HDB-Lizenz aktualisiert werden muss, muss nur die Textdatei auf dem lokalen Dateisystem gespeichert und in den Container unter dem Pfad /opt/sap/HDB_license kopiert werden. Der für die Erstellung der Lizenzdatei benötigte Hardwareschlüssel wird beim Start des Containers ausgedruckt.

Wenn Du Probleme mit dem Skript zur Lizenzaktualisierung hast, kannst Du den Container daran hindern, diese Funktion auszuführen, indem Du den Parameter -no-asabap-license-update übergibst oder die Datei /opt/sap/.no_HDB_license_update im Container erstellst.

Neuer Container

Aktualisiere den Befehl „docker run“ mit „-v <lokaler Pfad der Schlüsseldatei>:/opt/sap/HDB_license“. Bitte stelle sicher, dass der Parameter -v in der Befehlszeile vor dem Docker-Image-Namen steht (sapse/abap-platform-trial:1909), da der Parameter zu „docker run“ gehört und alles hinter dem Image-Namen an Programme innerhalb des Containers weitergegeben wird.

Vorhandener Container

Du kannst die Schlüsseldatei mit dem Befehl „docker cp <lokaler Pfad der Schlüsseldatei> a4h:/opt/sap/HDB_license“ in den Container kopieren. Wenn der Container gestoppt wurde, wird die Datei angewendet, wenn Du den Container erneut startest. Wenn der Container läuft, kannst Du den Container entweder anhalten und starten oder die Lizenzaktualisierung mit „docker exec -it a4h /usr/local/bin/hdb_license_update“ auslösen.

Verbindung

Die folgende Liste definiert die vom Container verwendeten Ports:

  • 3200: SAPGUI-Instanz 00
  • 3300: RFC-Instanz 00
  • 8443: SAP Cloud Connector
  • 30213: SAP HANA MDC Datenbank
  • 50000: AS ABAP HTTP
  • 50001: ALS ABAP HTTPS

Wenn Du auf den Container außerhalb des Docker-Hosts zugreifen musst (von einem anderen Rechner oder einer VM) oder Du nicht das Glück hast, GNU/Linux zu verwenden, gib die Ports mit dem Parameter -p (das kleine „p“, Groß- und Kleinschreibung spielt eine Rolle) an. Zum Beispiel, für SAPGUI, füge Folgendes in den Befehl „docker run“ ein: „-p 3200:3200“.

Zu Deiner Erleichterung, hier ist die Zeichenkette, die alle relevanten Ports angibt und die Du kopieren und in Deinen Docker-Startbefehl einfügen kannst:

-p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 50000:50000 -p 50001:50001

Wenn Du zu viele Ports freigeben musst, kannst Du „–net=host“ verwenden, anstatt einen Port nach dem anderen freizugeben. Bitte beachte jedoch, dass diese Option dazu führt, dass alle Ports des Containers außerhalb des Docker-Hosts verfügbar sind und Du nicht in der Lage bist, einen weiteren solchen Container zu starten. Leider scheint es, dass diese Option nur für GNU/Linux-Benutzer verfügbar ist.

Bitte verwende nicht den Parameter -P (das großgeschriebene „P“, Groß- und Kleinschreibung spielt eine Rolle), da dadurch die Container-Ports auf zufällige Host-Ports gelegt werden und viele SAP-Clients exakte Ports benötigen, die nicht geändert werden können. Zum Beispiel, wenn der Port 3200 des Containers als Port 54356 festgelegt ist, kannst Du unseres Wissens den SAPGUI für Windows nicht so konfigurieren, dass er sich mit diesem Port verbindet.

Wenn Du unter Windows arbeitest und Dich direkt mit der IP-Adresse des Containers verbinden möchtest, ohne die Ports mit dem Parameter -p freizugeben, musst Du möglicherweise die IP-Routen aktualisieren, damit die TCP/IP-Pakete korrekt von der Host-Maschine zum Docker-Container geleitet werden (der in einem virtualisierten GNU/Linux läuft). Hier findest Du Materialien zum Selbststudium:

Mac-Benutzer müssen aufgrund der bekannten Einschränkungen von Docker für Mac immer die erforderlichen Ports veröffentlichen:

Für den Fall, dass Du mehr als einen Container betreiben möchtest und nicht GNU/Linux verwendest, kannst Du mit den veröffentlichten Portnummern spielen. Zum Beispiel kannst Du den Port 3200 des Containers als Port 3201 veröffentlichen (-p 3201:3200) und dann kannst Du dich mit SAPGUI mit der Instanznummer 01 statt der Standardnummer 00 verbinden.

Browser

Der Zugriff auf die Port-HTTP- oder HTTPS-Dienste über einen Internetbrowser stellt keine besonderen Anforderungen dar, solange Du den Port 50000 für HTTP oder den Port 50001 für HTTPS und den richtigen Host verwendest.

Der Wert des Hosts hängt davon ab, wie Du den Container gestartet hast. Wenn Du alle erforderlichen Ports freigegeben hast, kannst Du „localhost“ verwenden. Wenn Dein Betriebssystem es Dir erlaubt, das IP-Routing so zu konfigurieren, dass Du die IP des Containers direkt erreichen kannst, kannst Du „<die IP des Containers>“ verwenden.

Wenn Du von SAPGUI zu Deinem Browser weitergeleitet wirst, wird die URL „host“ auf „vhcala4hci“ gesetzt, das nicht erreichbar sein wird, es sei denn, Du änderst Deine Hosts-Datei. Es ist notwendig, einen neuen Eintrag hinzuzufügen, der sicherstellt, dass Dein Betriebssystem in der Lage ist, den Hostnamen „vhcala4hci“ in eine IP-Adresse zu übersetzen. Der Inhalt des neuen Eintrags hängt davon ab, wie Du den Container gestartet hast.

Für manuell freigegebene Ports oder –net=host füge die Zeile „127.0.0.1 vhcala4hci“ hinzu.

Für keine explizite Portfreigabe füge die Zeile „<die IP des Containers> vhcala4hci“ hinzu.

SAP GUI

Bitte füge ein benutzerdefiniertes System mit dem Anwendungsserver „<IP des Containers>“ oder „localhost“ im SAP Logon hinzu, wenn Du den Port 3200 (d. h. „-p 3200:3200“) oder „vhcala4hci“, wenn Du Deine Hosts-Datei aktualisiert hast. Verwende schließlich Instanz 00 und SID A4H.

Der Benutzername ist „DEVELOPER“ mit dem Passwort „Htods70334“. Dies ist auch für Mandant 000, Mandant 001 vordefiniert (gleiches Passwort): „SAP*“ , „DDIC“.

SAP Cloud Connector

Um den SAP Cloud Connector nutzen zu können, musst Du den Connector über die folgenden Befehle als zusätzlichen Dienst starten:

docker exec -it a4h bash
/usr/local/sbin/rcscc_daemon start

Der Status des SAP Cloud Connector kann mit docker exec -it a4h bash /usr/local/sbin/rcscc_daemon status überprüft werden

The last command will start a daemon process which must be stopped before you can leave the container. Please, use the following command:

```bash
/usr/local/sbin/rcscc_daemon stop
exit

Du kannst Dich mit der Instanz von SAP Cloud Connector verbinden unter:

https://<the container's IP>:8443

mit dem Benutzer Administrator und dem Passwort manage.

Stop

Es muss sichergestellt werden, dass SAP HANA genügend Zeit hat, um alle Daten in die Dateien auf Deine Festplatte zu schreiben. Um den Container ordnungsgemäß zu beenden, drücke Strg-C in dem Befehlsfenster, in dem Du den Container gestartet hast, oder führe den folgenden Befehl aus:

docker stop --time-out 7200 a4h

Erneut starten

Du kannst einen gestoppten Container mit dem Befehl „docker start“ starten.

docker start -ai a4h

Du musst es im interaktiven Modus starten, um auf mögliche Startprobleme reagieren zu können, und Du musst den Container mit dem Parameter -a „anhängen“, um die Textausgabe zu sehen.

Bekannte Probleme

Fehlermeldung beim Start von SAP Cloud Connector (SCC)

ERROR: shell command for retrieving PID of process bound to SCC port ...java.io.IOEcception..

Die Fehlermeldung hat keinen Einfluss auf die Funktionalität von SAP Cloud Connector (SCC) und wird mit der nächsten Version von SCC entfernt.

Erstellen eines neuen Containers

Parameter nicht vergessen

-agree-to-sap-license 

Du wirst wahrscheinlich auf ein Problem stoßen, wenn Du den Container stoppst und wieder startest, da das Skript nach der Zustimmung fragt, wenn sie fehlt.

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar