Moderne ABAP Entwicklung mit
2© emineo AG
whoami
 Christian Günter
 emineo AG
• Sitz in Zürich
• ~80 MA
• IT Beratung
• Software Engineering
• SAP und non-SAP
 @chris_guenter
 christian.guenter@emineo.ch
3© emineo AG
Agenda
Was?
Warum?
Wie?
Live Demo
4© emineo AG
Was ist git?
Was ist git?
 Versionverwaltungssystem
 Dezentral und dateibasiert
 2005 erschaffen von Linus Torvalds
 Open Source
 De facto Standard in nicht SAP Softwareentwicklung
 Bekannte git Hoster: GitHub, GitLab, BitBucket, SCP…
5© emineo AG
Was is git?
Source: OpenSAP - SAP Cloud Platform Version Control with Git by Arnaldo Cavazos
6© emineo AG
 Git client implementiert in ABAP
 Open Source Projekt
 2014 gestartet von Lars Hvam Petersen
 MIT Lizenz
 Gehostet auf GitHub
 http://abapgit.org
Was ist abapGit?
Was ist abapGit?
7© emineo AG
Was ist abapGit?
43 Mitwirkende: u.a.
Alexander Tsybulsky Eduardo Copat
Oliver Jägle Svitlana Shlapak
Andrei Vishnevsky Bohdan Petrushchak
Graham Robinson Gregor Wolf
Nuno Godinho Fabio Zuber
Fabian Lupa Christian Günter
Christian Tapia Sabogal Domi Bigl
Giovanni Degani Kasper Vilhelm Torp
Christian Pfaller Alex Chan
Lars Hvam Petersen Pascal
Jakub Filak Johannes Konings
8© emineo AG
Was ist abapGit?
Was ist abapGit?
 Online und Offline Repositories
 ~66 000 Zeilen Code
 Min. Release 7.02
 2 700 commits
 82 Objektypen werden unterstützt (CLAS, PROG, uvam.)
9© emineo AG
Was ist abapGit?
Designziele von abapGit
 Leicht zu installieren
 Leicht zu aktualisieren
 Schmaler Fußabdruck im System
 Code soll im git Repository lesbar sein
10© emineo AG
Warum abapGit?
Warum abapGit?
 Optimierungspotenzial in der SAP Versionsverwaltung
 Versionen nur bei Transportfreigabe
 Temporäre Versionen werden gelöscht
 Entwickler hat wenig/keine Kontrolle über Versionierung
 Keine einfachen Rollbacks
 Manche Objekte ohne Versionsverwaltung:
z.B. Smartforms
11© emineo AG
Warum abapGit?
Warum abapGit?
 Eingeschränkte Nachverfolgbarkeit
 Was wurde in den letzten 2 Wochen alles geändert?
 Was wurde seit letztem Release/Transport geändert?
 Wie sah der Code vor drei Monaten aus?
12© emineo AG
Warum abapGit?
Warum abapGit?
13© emineo AG
Warum abapGit?
Warum abapGit?
 abapGit als Backup
 Experimente mit Code problemlos möglich
 Mehr Transparenz
 Enabler für DevOps
 Enabler für Code Reviews
 Kein Ersatz des SAP Transportsystems!
 abapGit als Code Archiv
14© emineo AG
Warum abapGit?
Warum abapGit?
 Installation von Open Source Projekten
 http://dotabap.org/ - Übersicht aller ABAP Projekte
 Inoffizieller Nachfolger von SAPLink
15© emineo AG
Wie funktioniert abapGit?
Online Repository
16© emineo AG
Wie funktioniert abapGit?
Offline Repository
17© emineo AG
Wie funktioniert abapGit?
Serialisierung und Deserialisierung
18© emineo AG
Wie funktioniert abapGit?
Demo
19© emineo AG
Wie funktioniert abapGit?
.XML
20© emineo AG
Wie funktioniert abapGit?
.ABAP
21© emineo AG
Wie funktioniert abapGit?
Ein Paket (+ Unterpakete) = ein git Repository
Paket: $DSAG_DEMO
22© emineo AG
Wie funktioniert abapGit?
Repository Ansicht
23© emineo AG
Wie funktioniert abapGit?
Objekt geändert
24© emineo AG
Wie funktioniert abapGit?
Diff
25© emineo AG
Wie funktioniert abapGit?
Stage und Commit
26© emineo AG
Wie funktioniert abapGit?
Commit Historie
27© emineo AG
Wie funktioniert abapGit?
https://github.com/christianguenter2/DSAG_DEMO.git
DSAG_DEMO Repository auf GitHub
28© emineo AG
Wie funktioniert abapGit?
Commit Historie
29© emineo AG
Wie funktioniert abapGit?
Diff
30© emineo AG
abapGit @emineo
abapGit @emineo
 Zwei ABAP Produkte
 Zwei SAP Entwicklungsteams
 01/2018: Start abapGit Nutzung in einem Team
 Je ein Entwicklungssystem
 BitBucket git Server
 Git ist Standard im Nicht-SAP Bereich
31© emineo AG
abapGit @emineo
04/2018: Einsatz in Produktentwicklung
32© emineo AG
abapGit @emineo
Softwareauslieferung
33© emineo AG
abapGit @emineo
 Offline Repositories
Custom Development
 Export Zip
 Commit und Push mit lokalem git Client
 Normalerweise kein Import
 Backup
 Zentrale ABAP Wissens-“Datenbank”
34© emineo AG
abapGit @emineo
 Migration von Kundenentwicklungen
Migrationen
 Zip Datei wird exportiert
 Suchen und Ersetzen -> Namenskonvention
 Zip in Offline Repository importieren
 Viele Wiederholungen
 Objekte werden in Dummy Transport gesammelt
35© emineo AG
abapGit @emineo
 Es funktioniert
Lessons learned
 Klein und einfach anfangen
 Üben mit Demo Repositories
 Pakete klein halten
 Experimentieren
 Steile lernkurve von git -> gute Online Materialien
36© emineo AG
abapGit @emineo
 Kommunikation ist wichtig
Lessons learned
 Ständiges lernen und optimieren
 abapGit wird stetig verbessert
 Bugs können selbst gefixt werden
 Vertrauen ist wichtig
 Neue Features können selbst entwickelt werden
37© emineo AG
abapGit @emineo
 Alle ABAP Produkte mit abapGit verwalten
Ziele
 Git Workflow optimieren - mehr Branching?
 Pull Requests in BitBucket nutzen
 Code Reviews in BitBucket machen
 Alle ABAP Entwicklungen sind im git
38© emineo AG
abapGit @emineo
Twitter Wall
39© emineo AG
abapGit @emineo
Fragen?
40© emineo AG
abapGit @emineo
Demo

Moderne abap entwicklung mit abapGit

  • 1.
  • 2.
    2© emineo AG whoami Christian Günter  emineo AG • Sitz in Zürich • ~80 MA • IT Beratung • Software Engineering • SAP und non-SAP  @chris_guenter  christian.guenter@emineo.ch
  • 3.
  • 4.
    4© emineo AG Wasist git? Was ist git?  Versionverwaltungssystem  Dezentral und dateibasiert  2005 erschaffen von Linus Torvalds  Open Source  De facto Standard in nicht SAP Softwareentwicklung  Bekannte git Hoster: GitHub, GitLab, BitBucket, SCP…
  • 5.
    5© emineo AG Wasis git? Source: OpenSAP - SAP Cloud Platform Version Control with Git by Arnaldo Cavazos
  • 6.
    6© emineo AG Git client implementiert in ABAP  Open Source Projekt  2014 gestartet von Lars Hvam Petersen  MIT Lizenz  Gehostet auf GitHub  http://abapgit.org Was ist abapGit? Was ist abapGit?
  • 7.
    7© emineo AG Wasist abapGit? 43 Mitwirkende: u.a. Alexander Tsybulsky Eduardo Copat Oliver Jägle Svitlana Shlapak Andrei Vishnevsky Bohdan Petrushchak Graham Robinson Gregor Wolf Nuno Godinho Fabio Zuber Fabian Lupa Christian Günter Christian Tapia Sabogal Domi Bigl Giovanni Degani Kasper Vilhelm Torp Christian Pfaller Alex Chan Lars Hvam Petersen Pascal Jakub Filak Johannes Konings
  • 8.
    8© emineo AG Wasist abapGit? Was ist abapGit?  Online und Offline Repositories  ~66 000 Zeilen Code  Min. Release 7.02  2 700 commits  82 Objektypen werden unterstützt (CLAS, PROG, uvam.)
  • 9.
    9© emineo AG Wasist abapGit? Designziele von abapGit  Leicht zu installieren  Leicht zu aktualisieren  Schmaler Fußabdruck im System  Code soll im git Repository lesbar sein
  • 10.
    10© emineo AG WarumabapGit? Warum abapGit?  Optimierungspotenzial in der SAP Versionsverwaltung  Versionen nur bei Transportfreigabe  Temporäre Versionen werden gelöscht  Entwickler hat wenig/keine Kontrolle über Versionierung  Keine einfachen Rollbacks  Manche Objekte ohne Versionsverwaltung: z.B. Smartforms
  • 11.
    11© emineo AG WarumabapGit? Warum abapGit?  Eingeschränkte Nachverfolgbarkeit  Was wurde in den letzten 2 Wochen alles geändert?  Was wurde seit letztem Release/Transport geändert?  Wie sah der Code vor drei Monaten aus?
  • 12.
    12© emineo AG WarumabapGit? Warum abapGit?
  • 13.
    13© emineo AG WarumabapGit? Warum abapGit?  abapGit als Backup  Experimente mit Code problemlos möglich  Mehr Transparenz  Enabler für DevOps  Enabler für Code Reviews  Kein Ersatz des SAP Transportsystems!  abapGit als Code Archiv
  • 14.
    14© emineo AG WarumabapGit? Warum abapGit?  Installation von Open Source Projekten  http://dotabap.org/ - Übersicht aller ABAP Projekte  Inoffizieller Nachfolger von SAPLink
  • 15.
    15© emineo AG Wiefunktioniert abapGit? Online Repository
  • 16.
    16© emineo AG Wiefunktioniert abapGit? Offline Repository
  • 17.
    17© emineo AG Wiefunktioniert abapGit? Serialisierung und Deserialisierung
  • 18.
    18© emineo AG Wiefunktioniert abapGit? Demo
  • 19.
    19© emineo AG Wiefunktioniert abapGit? .XML
  • 20.
    20© emineo AG Wiefunktioniert abapGit? .ABAP
  • 21.
    21© emineo AG Wiefunktioniert abapGit? Ein Paket (+ Unterpakete) = ein git Repository Paket: $DSAG_DEMO
  • 22.
    22© emineo AG Wiefunktioniert abapGit? Repository Ansicht
  • 23.
    23© emineo AG Wiefunktioniert abapGit? Objekt geändert
  • 24.
    24© emineo AG Wiefunktioniert abapGit? Diff
  • 25.
    25© emineo AG Wiefunktioniert abapGit? Stage und Commit
  • 26.
    26© emineo AG Wiefunktioniert abapGit? Commit Historie
  • 27.
    27© emineo AG Wiefunktioniert abapGit? https://github.com/christianguenter2/DSAG_DEMO.git DSAG_DEMO Repository auf GitHub
  • 28.
    28© emineo AG Wiefunktioniert abapGit? Commit Historie
  • 29.
    29© emineo AG Wiefunktioniert abapGit? Diff
  • 30.
    30© emineo AG abapGit@emineo abapGit @emineo  Zwei ABAP Produkte  Zwei SAP Entwicklungsteams  01/2018: Start abapGit Nutzung in einem Team  Je ein Entwicklungssystem  BitBucket git Server  Git ist Standard im Nicht-SAP Bereich
  • 31.
    31© emineo AG abapGit@emineo 04/2018: Einsatz in Produktentwicklung
  • 32.
    32© emineo AG abapGit@emineo Softwareauslieferung
  • 33.
    33© emineo AG abapGit@emineo  Offline Repositories Custom Development  Export Zip  Commit und Push mit lokalem git Client  Normalerweise kein Import  Backup  Zentrale ABAP Wissens-“Datenbank”
  • 34.
    34© emineo AG abapGit@emineo  Migration von Kundenentwicklungen Migrationen  Zip Datei wird exportiert  Suchen und Ersetzen -> Namenskonvention  Zip in Offline Repository importieren  Viele Wiederholungen  Objekte werden in Dummy Transport gesammelt
  • 35.
    35© emineo AG abapGit@emineo  Es funktioniert Lessons learned  Klein und einfach anfangen  Üben mit Demo Repositories  Pakete klein halten  Experimentieren  Steile lernkurve von git -> gute Online Materialien
  • 36.
    36© emineo AG abapGit@emineo  Kommunikation ist wichtig Lessons learned  Ständiges lernen und optimieren  abapGit wird stetig verbessert  Bugs können selbst gefixt werden  Vertrauen ist wichtig  Neue Features können selbst entwickelt werden
  • 37.
    37© emineo AG abapGit@emineo  Alle ABAP Produkte mit abapGit verwalten Ziele  Git Workflow optimieren - mehr Branching?  Pull Requests in BitBucket nutzen  Code Reviews in BitBucket machen  Alle ABAP Entwicklungen sind im git
  • 38.
    38© emineo AG abapGit@emineo Twitter Wall
  • 39.
    39© emineo AG abapGit@emineo Fragen?
  • 40.