organisiere-deine-arbeit-mit-abapgit-inspiricon

Organisiere deine Arbeit mit abapGIT

Was ist abapGit und wie funktioniert es?

Wenn du bereits mit der ABAP-Programmierung vertraut bist, aber noch nichts von abapGit gehört hast, stellen wir dir hier zunächst die Git-Welt vor.

Git ist ein Versionskontrollsystem mit dem man alle Änderungen einer Datei während ihrer Laufzeit nachverfolgen kann.

Aber was ist ein Versionskontrollsystem? Ein Auszug aus dem Buch von Scott Chacon und Ben Straub schafft Klarheit:

Was ist eine „Versionskontrolle“ und warum sollte ich mich damit beschäftigen? Versionskontrolle ist ein System, das Änderungen an einer oder mehreren Dateien registriert, um spezifische Versionen später noch abrufen zu können. Für die Beispiele in diesem Buch werden wir Software-Quellcodes verwenden, um die Änderungen nachzuverfolgen. In Wirklichkeit könnt ihr das jedoch mit nahezu jeder Datei auf einem Computer machen.

Falls du ein Grafik- oder Webdesigner bist und du jede Version eines Bildes oder eines Layouts behalten möchtest (was du wahrscheinlich nicht möchtest!), dann ist ein Versionskontrollsystem (VKS) die richtige Wahl. Damit kannst du eine Datei in einen früheren Zustand zurückversetzen, ein ganzes Projekt rückgängig machen, Änderungen zu verschiedenen Zeitpunkten vergleichen, sehen wer als letztes etwas geändert hat, das möglicherweise Probleme machen könnte, wer einen Aspekt hinzugefügt hat und vieles mehr. Wenn du ein VKS nutzt heißt das auch, dass es einfach ist, die Dateien wiederherzustellen, falls du etwas durcheinander gebracht oder Dateien verloren hast. Dies alles bekommst du für sehr geringe Kosten.

ABAP selbst liefert ebenfalls ein Versionskontrollsystem, aber dieses System gilt nur für die eigene geschlossene Arbeitsumgebung. Es ist also nicht möglich mit „Outsidern“ zusammen zu arbeiten. Code-Sharing ist immer schwierig, besonders jedoch bei Opensource Projekten.

Du möchtest mehr über Git erfahren? Dann kann ich dir das Buch „Pro Git“ von Scott Chacon und Ben Straub empfehlen: https://git-scm.com/book/en/v2.

abapGit, der GitClient in ABAP, ist ein Opensource Projekt, das von Lars Hvam (https://people.sap.com/lars.hvam) unter Anwendung einer MIT Lizenz initiiert wurde.

Mehr über das abapGit selbst und andere großartige ABAP Opensource Projekte findest du in diesem wirklich sehr guten Blog von Graham Robinson, auf dem auch dieser Artikel basiert: https://blogs.sap.com/2017/06/21/abapgit-so-easy/.

In diesem Artikel konzentrieren wir uns auf die Installation und Nutzung des abapGit mittels GitHub und Amazon Web Services (AWS) CodeCommit.

In den folgenden Verfahren wurde SAP NetWeaver 7.5 als Arbeitsumgebung verwendet. Lass uns jetzt starten!

Vier Schritte bis zur abapGit Erfahrung

Um die Funktionen von apabGit optimal nutzen zu können, sind vier Schritte zur Einrichtung und Anbindung an die Entwicklungsplattform und die Hosting-Dienste notwendig.

Schritt 1: Einrichtung des abapGit Servers

Als erstes müssen wir nur das abapGit-Projekt auf unserem ABAP-Entwicklungssystem laufen lassen.

Wenn du den SAP NetWeaver bereits auf deinem Rechner installiert hast, öffne nun den SAP GUI-Client und erstelle einen ABAP-Report „ZABAPGIT“ über die Transaktionen SE38 oder SE80. Dann wiederhole den Code auch im untenstehenden Link:

https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap

Aktiviere den Bericht und führe ihn aus. Danach wird die abapGit Startseite auf dem Bildschirm angezeigt.

abap-Git-berichte-abrufen

Bitte beachte, dass, wenn du dein abapGit-Projekt auf eine neuere Version aktualisieren möchtest, du nur den Code im Bericht durch die neuesten Einstellungen ersetzen musst – damit ist das Upgrade schon beendet.

Anders gesagt ist dieses Verfahren ein unkomplizierter Weg, über den du jederzeit die neueste Version des abapGit herunterladen kannst. Ziemlich einfach, oder?

Schritt 2: GitHub Root Zertifikate herunterladen

In diesem nächsten Schritt werden wir mit der SSL-Einrichtung fortfahren, die es uns ermöglicht, die Online-Funktion des Git-Servers zu nutzen. Im Gegensatz dazu arbeiten Offline-Projekte hinter Firewalls und ohne SSL. Ein SSL, „Secure Sockets Layer“ Zertifikat ist eine Textdatei mit verschlüsselten Daten, die wir auf unserem Server installieren sollten, um eine sichere, zuverlässige und reaktionsschnelle Kommunikation mit einem Webbrowser sicherzustellen.

Heutzutage ist GitHub die beliebteste webbasierte Gemeinschaft, die von Git organisiert wird. Um die Kommunikation zwischen abapGit und GitHub zu ermöglichen, ist es notwendig, einige Root-Zertifikate auf Ihrem ABAP-System zu installieren. Je nach verwendetem Webbrowser hat man verschiedene Möglichkeiten, die Dateien herunterzuladen, ansonsten kann man sie manuell herunterladen. Der Zweck dieser Root-Zertifikate ist es, die Integrität und Geheimhaltung der Kommunikationsdaten zwischen dem Server und Webbrowser zu sichern.

Wir haben Google Chrome als Standard-Webbrowser verwendet. Führe die folgenden Schritte aus, um an die erforderlichen Zertifikate zu kommen:

  • Gehe auf die Seite https://github.com.
  • Klicke auf das Schließfachsymbol neben der Adressleiste und wähle dann „Certificate“.
  • Gehe auf die Registerkarte „Details“ und klicke auf „Copy to file…“, um das Zertifikat in eine CER-Datei zu exportieren.
  • Gib den Namen der Datei an, wähle den Pfad, in dem die Datei gespeichert werden soll und drücke auf „Finish“.
  • Wähle die Registerkarte „Certification Path“ und wiederhole die beiden vorherigen Schritte vom übergeordneten Knoten bis zum Wurzelknoten.

Wenn du die Root-Zertifikate manuell herunterladen möchtest, navigieren zur GitHub-Plattform und finden heraus, welches Zertifikat sie verwendet; so wie wir es oben schon gezeigt haben. Lade diese Zertifikate unter https://www.digicert.com/digicert-root-certificates.htm im Bereich „Root Certificates“ herunter.

Weitere Informationen findest du unter http://docs.abapgit.org/.

Wir haben nun die Dateien im gewünschten Format und können so die Verbindung zum SAP-System herstellen.

Schritt 3: SSL-Einrichtung mit dem SAP Trust Manager

Damit die zuvor heruntergeladenen Zertifikate bestätigt werden können, müssen wir nun die sogenannte Trust Manager Anwendung im SAP-System installieren. Melde dich dazu an deinem SAP-GUI-System an und führe die Transaktion STRUST aus.

Wechsle zum „Change“ Modus und öffne aus der linken oberen Objektliste den Ordner „SSL Sys-tem Client SSL Client (Anonymous)“.

SSL-Einrichtung-mit-dem-SAP-Trust-Manager

Wähle „Import certificate“ unten links im Feld „Certificate“ aus und füge die Dateipfade der zuvor aus dem Webbrowser exportierten Zertifizierungsdateien ein.

abapGit-add-to-certificate

Wähle „Add to Certificate List“ für jede Zertifizierungsdatei einzeln aus, eine nach der anderen. Am Ende sollte das Feld „Certificate List“ wie folgt aussehen:

abapGit-certificate-list

Speichere die vorgenommenen Änderungen. Die Root-Zertifikate sind nun auf dem SAP-Entwicklungssystem installiert.

Um zu prüfen, ob die ABAP-Werkzeuge mit dem Git-Server kommunizieren können, ist es zwingend notwendig zu testen, ob die Verbindung zwischen ihnen funktioniert. Erstelle einen ABAP-Report „ZABAPGIT_TEST_SSL“ über die Transaktionen SE38 oder SE80, um dies zu veranschaulichen und kopiere den Code aus dem folgenden Link: http://docs.abapgit.org/other-test-ssl.html

Aktiviere dein Programm und führe es aus. Wenn die Verbindung erfolgreich hergestellt wurde, wird folgende Ausgabe erwartet:

abapGit-test-ssl

Wenn die Verbindung jedoch nicht korrekt funktioniert, achte darauf, dass du eventuell zwei Profilparameter in der Transaktion RZ10 einstellen musst (siehe auch SAP-Hinweis 510007 – Einrichten von SSL auf dem Application Server ABAP, Schritt 7).

In unserem System mussten wir zum Beispiel folgende Werte einstellen:

ssl/ciphersuites = 135:PFS:HIGH::EC_P256:EC_HIGH

ssl/client_ciphersuites=150:PFS:HIGH::EC_P256:EC_HIGH

Bitte beachte, dass du den Applikationsserver neu starten musst oder zumindest in der Transaktion ICM Monitor, SMICM, um den icman-Prozess neu zu starten!

Hier kannst du tiefer in das Thema eintauchen: https://blogs.sap.com/2008/10/31/calling-webservices-from-abap-via-httpsssl-with-pfx-certificates/.

Schritt 4: Git Repositories-Verbindung

Halte deinen installierten abapGit-Code auf dem neuesten Stand und erweitere die unterstützten Objekttypen durch das Herunterladen der benötigten Plugins.

Wenn abapGit zum ersten Mal ausgeführt wird, wird die abapGit-Tutorial-Seite angezeigt, wie schon in Schritt 1 gezeigt. Auf der Unterseite der Seite findest du den Abschnitt „abapGit related repositories“.

abapGit-repositories

Klicke auf „install abapGit repo“, um den Prozess zu starten. Klicke auf „Continue“, um die aktuelle Version von abapGit in das Paket $ABAPGIT herunterzuladen, das in diesem Fall ein lokales Paket ist. Wähle „Overwrite“, um das zuvor erstellte Programm „ZABAPGIT“ zu aktualisieren und alle abapGit-Werkzeuge zu aktivieren.

Gehe genauso für „install abapGit plugins“ vor. Dann bist du bestens dafür vorbereit, die abapGit-Funktionen auszuprobieren.

abapGit-Funktionen

Wichtig dabei ist, dass nicht nur die GitHub-Plattform – ein webbasierter gehosteter Dienst zur Versionskontrolle – mit dem abapGit verbunden werden kann, sondern auch die Möglichkeit der Kommunikation über die Amazon Web Services besteht.

Wir als Inspiricon arbeiten viel mit den Amazon Web Services, daher lag es für uns nahe, den „AWS Service CodeCommit“ als Git-Server für unsere Repositories zu nutzen. Wenn dies auch deine Wahl sein sollte, musst du dein System nach der Installation zunächst mit den Amazon Web Services verbinden, damit du die Online-Funktion der abapGit-Plattform nutzen kannst.

Amazon Web Services, kurz „AWS“ genannt, bietet zuverlässige, skalierbare und sichere Cloud-Computing-Services, Datenbankspeicher und andere Funktionalitäten zur Unterstützung der Geschäftsprozesse. Um sich mit dem AWS Server zu verbinden, musst du mehrere Schritte ausführen.

Die ersten Schritte sind ähnlich wie die für die Verbindung mit dem GitHub-Server, einschließlich des Herunter- und Hochladens der Root-Zertifikate, wie in Schritt 2 und Schritt 3 beschrieben. Als nächstes müssen IAM-Benutzer im AWS angelegt werden. Es ist wichtig, dass du im IAM-Benutzerprofil „HTTPS Git credentials for AWS CodeCommit“ arbeitest.

Als Rechte solltest du mindestens die folgenden Berechtigungen vergeben:

  • AWSCodeCommitPowerUser AWS Managed Policy
  • IAMReadOnlyAccess AWS Managed Policy
  • IAMSelfManageServiceSpecificCredentials AWS Managed Policy

Weitere Informationen findest du auch unter: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html.

Nach der Erstkonfiguration kannst du im AWS CodeCommit Dashboard eigene Repositories anlegen.

Online und Offline?

Das abapGit-Projekt kann in der SAP NetWeaver-Plattform über die Transaktion „ZABAPGIT“ gestartet werden. abapGit verfügt über Online- und Offline-Funktionen. Die Offline-Funktion bezieht sich einerseits auf die Replikation eines lokalen ABAP-Pakets aus deinem System in den abapGit-Workspace. Andererseits erlaubt uns die Online-Funktion, mit Repositories zu arbeiten. Was ist also ein Repository?

Ein Repository, häufig als „repo“ abgekürzt, ist ein Ort, an dem alle Dateien für ein einzelnes Projekt gespeichert werden. Jedes Projekt hat sein eigenes Repository und kann über eine eindeutige HTTPS-Url angesprochen werden. Wir müssen dieses Repository mit einem bestehenden ABAP-Paket aus unserem System verbinden oder ein neues anlegen.

Fazit

Immer mehr Unternehmen und Entwickler auf der ganzen Welt haben sich entschieden, Git als zentrale Steuerungssoftware einzusetzen. In der Landschaft der SAP-Branche kommt abapGit den Entwicklern in Form eines in ABAP geschriebenen ABAP-Clients zu Hilfe, der von den Git-Funktionalitäten profitiert.

abapGit ist kostenlos, schnell und bietet ein konsistentes, skalierbares Modell. Ein weiterer großer Vorteil ist, dass abapGit automatisch geänderte Objekte in das remote Git-Repository schiebt und gleichzeitig eine Umgebung ist, die Parallelentwicklungen erleichtert. Es eignet sich am besten für die gemeinsame Nutzung von Code und für die Verfolgung von Änderungen im Entwicklungsprozess.

Wenn du eine zentrale Stelle für die Organisation des Quellcodes in deinen Projekten benötigst, ist abapGit das perfekte Werkzeug.

Bist du motiviert und möchtest mehr über das Thema erfahren? Gerne informieren wir dich über die Updates und stellen dir weitere interessante Themen und Projekte vor, an denen wir ebenfalls beteiligt sind. Bleib mit uns in Kontakt – folge uns auf LinkedIn, XING oder facebook!

Autor dieses Beitrags
Andra Atanasoaie Associate
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de