Webinar – SAP®/ABAP® und Microsoft

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Ein Datenaustausch zwischen MS und SAP muss nicht immer ein CSV Up- oder Download sein. Dass hier mehr möglich ist, haben wir in diesem Webinar gezeigt.

Diesmal hat uns Sören Schlegel von der Consilio unterstützt. Vielen Dank dafür!

Unterlagen/Links zum Webinar „SAP/ABAP und Microsoft

Links

Unser nächtes Webinar

Das nächste Webinar findet nach der Sommerpause statt. Das Thema wird noch rechtzeitig bekannt gegeben, aber mit Sicherheit wird es wieder sehr interessant!

Refactoring mit den ABAP® Development Tools

In diesem Blog werde ich auf die wichtigsten bzw. interessantesten Refactoring Funktionen der ABAP Development Tools eingehen. Ich werde an dieser Stelle nicht weiter ausführen was Refactoring an sich ist bzw. warum wir unsere Entwicklungen regelmäßig einem Refactoring unterziehen sollten. Wer sich darüber informieren will, der soll bitte Googlen oder sich das Buch „Refactoring“ von Martin Fowler besorgen.

Bevor wir uns nun mit ADT beschäftigen, schauen wir mal, ob bzw. wie man bereits in der SE24 den Code überarbeiten kann bzw. ob es auch da schon ein Tool gibt?

Refactoring in der SE24

Ja, gibt es – Aber nur sehr wenige Entwickler kennen den Refactoring Assistent in der SE24. Mit Hilfe dieses Asistenten können Attribute oder Methoden einer Klasse in eine Superklasse oder ein Interface verschoben werden. Das war es dann aber auch schon wieder.

In einigen sehr alten Blogs ist noch von weiteren Funktionen die Rede, bei meinen Tests in aktuellen Systemen konnte ich jedoch keine der erwähnten Möglichkeiten vorfinden.

Ich gehe daher davon aus, dass dieses Tool irgendwann einmal da war und dann zumindest teilweise wieder entfernt wurde.

ABAP Development Tools

Nun aber zum eigentlichen Thema. Die Vorteile von ADT gegenüber der SE80 aufzuzählen, sprengt diesen Rahmen – aber ein wesentlicher Unterschied sind die umfangreichen Tools die so eine moderne IDE liefert. Und die Unterstützung des Refactoring-Prozesses mit dem Quick Assist ist dabei nur ein Aspekt.

Quick Assist

ADT stellt mit dem Quick Assist eine große Anzahl von Funktionen zur Verfügung die uns bei der Verbesserung unserer Entwicklungen unterstützen. Die zur Verfügung gestellten Funktionen können im groben in die zwei Bereiche eingeteilt werden:

  • ABAP Refactoring um die Struktur des Source Codes zu verbessern
  • ABAP Quick Fixes um Fehler oder Warnung zu beheben

Ergänzend dazu gibt es noch Quick Assists welche weder das eine noch das andere sind. Dazu zählen z.B. das Generieren von CONSTRUCTOR oder FACTORY Methoden oder die Erstellung von Text Symbolen. Ziemlich cool finde ich auch das Erzeugen von SET- bzw. GET-Methoden für ein Attribut.

Der Quick Assist/Quick Fix kann an jeder Stelle des Codes entweder über STRG 1 oder über das Kontextmenü aufgerufen werden:

Quick Assist View

Es gibt auch einen Quick Assist View welcher über STRG Shift 1 eingeblendet werden kann:

Ergänzenden zum Popup wird im View die zuletzt vorgenommene Anpassung im Bereich Previous Result angezeigt. Man kann hier direkt zu den veränderten oder erzeugten Elementen verzweigen. Im View werden die möglichen Quick Assists kontextabhängig permanent aktualisiert. Das Layout und die anzuzeigenden Inhalte des Views kann man über die Toolbar individuell anpassen.

Quick Assist Funktionen

Aktuell (ABAP 7.54 und ADT 3.10) gibt es um die 50 verschiedene Quick Assist Funktionen. Nachfolgend werde ich auf jene Funktionen eingeben, die uns beim Überarbeitung der Codes – dem Refactoring – unterstützen.

Umbenennen von Bezeichnern

Eine der wichtigsten Regeln für sauberen und lesbaren Code sind wohlüberlegte und aussagekräftige Namen für Methoden, Variablen oder auch Form Routinen. Mit der Quick Assist Funktion Rename können diese Bezeichner entweder nur lokal im aktuellen Source Code oder zusätzlich in allen anderen Source Codes wo die Komponente verwendet wird umbenannt werden.

Die beiden Funktionen können auch über die Shortcuts ALT SHIFT R oder STRG 2, R direkt aufgerufen werden. Zudem befindet sich die Funktion auch im Kontextmenü.

Variablen oder Konstanten extrahieren oder konvertieren

Zur Erstellung oder Änderung von Variablen existieren viele Möglichkeiten:

  • Lokale Variablen aus einer Expression erzeugen
  • Lokale Variable in ein Klassen Element umwandeln (Attribut oder Konstante)
  • Lokale Variable in einen Methodenparameter umwandeln
  • Lokale Variable aus einem funktionalen Methodenaufruf generieren
  • Inline deklarierte Variable in explizite Variable umwandeln
  • Nicht verwendete Variablen löschen
  • Konstanten aus einer Variable erzeugen
  • Bestehende Konstanten wiederverwenden

Nachfolgend ein Beispiel wie aus einer Expression eine lokale Variable erzeugt wird:

Und hier noch ein Beispiel, wie aus einer Variable eine Klassenkonstante erzeugt wird:

Methoden extrahieren

Vielleicht die wichtigste und hilfreichste Refactoring Funktion ist das Extrahieren von Codesegmenten oder einer markierten Expression in eine neu Methode.

Man kann neue Methoden aus einem markierten Codebereich oder aus einer markierten Expression generieren. Klingt nach nicht viel, ist aber vielleicht die wichtigste Refactoring Funktion überhaupt.

Verwirrend ist hier der Umstand dass die im Quick Assist View auswählbare Funktion Extract Method lediglich den Code in eine neue private Methode extrahiert. Es gibt jedoch zusätzlich die Möglichkeit mit ALT SHIFT M oder dem Kontextmenü einen Wizard für die Extraktion aufzurufen. Hier können detaillierte Angaben zur zu erstellenden Methode vorgenommen werden:

Wenn im zu extrahierenden Code mit impliziten Datendefinitionen oder impliziten Feldsymbolen gearbeitet wird, kann es bei der Generierung zu Problemen kommen. Um diese impliziten Definitionen in Explizite umzuwandeln gibt es glücklicherweise auch einen Quick Assist:

Methoden und Attribute verschieben

Manchmal muss die Sichtbarkeit verändert werden oder Methoden sollen in ein Interface verschoben werden. Um dies zu erreichen, gibt es folgende Quick Assists:

  • Sichtbarkeit von Methoden, Attributen oder Konstanten ändern
  • Methoden, Attribute oder Konstante in die Superklasse verschieben
  • Methoden, Attribute oder Konstante in ein Interface verschieben.

Im nachfolgenden Beispiel wird eine Methode in ein Interface verschoben:

Um die Sichtbarkeit eines Attributes oder eine Methode zu ändern, genügt es natürlich auch im Source Code der Klassendefinition das entsprechende Objekt per cut/past in einen anderen Sichtbarkeitsbereich zu verschieben.

Ausnahmenbehandlung

Das mit den Ausnahmen ist in ABAP so eine Sache. Sehr oft werden Ausnahmen gar nicht, teilweise oder einfach falsch eingesetzt. Die meisten Quick Assists für Ausnahmen sind leider erst mit 7.50 zur Verfügung.

Unter anderem können folgende Quick Assists verwendet werden:

  • Unbehandelte Ausnahmen in die Methodensignatur aufnehmen
  • TRY/CATCH für einen markierten Bereich erzeugen
  • Catch Variable extrahieren

Links

Zusammenfassung

Es gibt nur eins: Jetzt wird gerefactored!

Webinar – Online gegen Corona im SAP® Umfeld

Vielen Dank für Ihre Teilnahme am Webinar!

Ich möchte mich nochmals ausdrücklich bei allen Co-Hosts und bei Svea Becker bedanken!

Damir Majer @majcon
Christian Drumm @ceedee666
Enno Wulff @ennowulff
Sören Schlegel @SoSchlegel87
Domi Bigl @DomiBiglSAP
Johann Fößleitner @foessleitnerj
Svea Becker @sveabecker3112

 

Unterlagen/Links zum Webinar „Online gegen Corona im SAP Umfeld

 

Links aus den Folien

Nachfolgend alle Links aus den Folien

 

Ressourcen der SAP und HPI

developers.sap.com
answers.sap.com
blogs.sap.com
developers.sap.com/tutorial-navigator.html
community.sap.com/programs
community.sap.com/resources/community-calls
events.sap.com/teched/en/sessions.aspx
open.sap.com
open.hpi.de

 

Community Blogs

abapblog.com (by Łukasz Pęgiel)
tricktresor.de (by Enno Wulff)
zevolving.com (by Naimesh Patel)
sapyard.com
codezentrale.de

 

Community Newsletter

abapweekly.info  – (ABAP Newsletter by Damir Majer)

 

Community Events

wiki.scn.sap.com/wiki/display/events (SAP Inside Tracks, ABAP Events, Stammtische)
opensit.net (Recent SAP Inside Tracks)
blogs.sap.com/2020/02/21/announcing-sap-inside-track-online-in-may-2020 (SAP Online Track in May 2020)
wiki.scn.sap.com/wiki/display/events/ABAP+CodeRetreat (ABAP CodeRetreat)
wiki.scn.sap.com/wiki/display/events/SAP+Inside+Track – (Inside Tracks, Stammtische, ABAP Events)

 

Streaming & Videos

youtube.com/playlist?list=PLzLY5gikd9hCE52Xlz9e9tYGQj_U2ThYx  – (Max’s Adventure in SAP Cloud Platform by Max Streifeneder)
youtube.com/playlist?list=PL068D7CC6E905E638 – (SAP Code Talk by Ian Thain)
youtube.com/c/christiandrumm – (Christian Drumm FH Achen)
youtu.be/mxybNzCjN98 – (ABAP Freak Show by Thomas Jung)
youtube.com/playlist?list=PL6RpkC85SLQAIntm7MkNk78ysDm3Ua8t0 – (Hands – on SAP dev with qmacro by DJ Adams)
youtube.com/playlist?list=PLmhd8krmIyyhUkFBuGYG0k4lXYWG63RK_ – (Code at home with qmacro by DJ Adams)
youtube.com/channel/UCRhV_0Jlwgz_v3jmAuhHYZg – (SAP Hana Academy)
blogs.sap.com/tag/sapcommunityreportlive – (SAP Community Report Live by Craig Cmehil)

 

Podcasts

open.sap.com/static/education-newscast/ (Education NewsCast)
anchor.fm/sap-community-podcast (Coffee Corner Radio)
se-radio.net/ (SERadio)
innoq.com/de/podcast/ (INNOQ Podcast)

 

Sonstiges

dsag.de/veranstaltungen/liste (DSAG Veranstaltungen)
rheinwerk-verlag.de/sap/ (SAP PRESS)
rheinwerk-verlag.de/dsag/ (SAP PRESS – DSAG Discount!)
de.espresso-tutorials.com/ (Espresso Tutorials)
dotabap.org/ (ABAP Open Source Projects)

 

Unsere nächstes Webinar

Webinar – ABAP® 7.53/7.54 Releaseabhängige Änderungen

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Unterlagen/Links zum Webinar „ABAP 7.53/7.54 Releaseabhängige Änderungen

Links

Blogs

Unsere nächtes Webinar

Hintergrundfarbe für SQLScript/AMDP in ADT einstellen

Einer der großen Vorteile von ADT gegenüber der klassischen Entwicklung im SAP Gui ist die Tatsache, dass man sich das Tool sehr umfangreich an seine persönlichen Bedürfnisse einstellen kann. Beispielweise können die Fenster in Größe und Position beliebig verändert werden oder man kann verschiedenste Farbeinstellungen für den Syntax Editor vornehmen.

AMDPs sind SQL Script Prozeduren die in Form von ABAP Klassen implementiert werden. In den ADT Einstellungen kann man die Hintergrundfarbe von solchen eingebauten Programmiersprachen einstellen.

Dies ist die einzige farbliche Einstellungen die ich in den ADT vornehme, ansonsten bleibe ich hier bei den initialen Einstellungen die SAP ausliefert.

 

Webinar – ABAP® Managed Database Procedures – 31. Jänner 2020

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Unterlagen/Links zum Webinar „ABAP Managed Database Procedures“

Bücher

  • SQLScript for SAP HANA , SAPPress, 2018, ISBN 978-3-8362-6208-8, Jörg Brandeis

Andere Blogs/Links zu dem Thema

Unser nächtes Webinar

Wir freuen uns schon auf die kommenden Webinare!

Rückblick 2019: Webinare, CodeRetreats und CodeJams

Wir waren 2019 wieder ziemlich aktiv. Wir haben mehrere Webinare gehalten, eine ABAP CodeRetreat gehalten und 2 SAP CodeJams mitorganisiert. Nachfolgend ein kurzer Überblick.

 

Cadaxo ABAP Webinare

Auch 2019 haben wir unsere gewohnten ABAP Webinare gehalten. Wie immer mit kleineren technischen Problemen aber das macht die Sache ja erst spannend.

Begonnen haben wir im Jänner mit den wichtigsten Releaseinformationen zu ABAP 7.51. Im März ging es dann mit dem sehr umfangreiche Thema Modern ABAP weiter und mit den Entwurfsmuster folgte dann im Mai ein eher trockenes Thema. Nach der Sommerpause folgte nach 2016 erneut ein Webinar zum Thema ADT.

Hier nochmals die Links zu allen Unterlagen, Videos, …

Selbstverständlich machen wir auch 2020 weiter. Erstes Thema: AMDP am 31. Jänner.

 

ABAP CodeRetreat 26. Oktober

Trotz des Umstandes, dass in Österreich am 26. Oktober der Staatsfeiertag stattfindet, fanden sich 15 interessierte Entwickler an diesem Samstag in Wien zusammen um gemeinsam mehr über ABAP, über moderne ABAP Entwicklung zu erlernen. Gemeinsam mit der SCC EDV-Beratung AG haben wir die Veranstaltung organisiert.

Als Retreat bezeichnet man eine spirituelle Ruhepause bzw. Rückzug von der gewohnten Umgebung. Und genau darum geht es bei einer ABAP CodeRetreat: Herauszukommen aus unserer ABAP Komfortzone.

Eine ABAP CodeRetreat kann jeder ausrichten. Alles was man dazu wissen muss, findet man unter https://wiki.scn.sap.com/wiki/display/events/ABAP+CodeRetreat

SAP CodeJams 24. Juni und 23. November

Dieses Jahr haben wir 2 SAP CodeJams organisiert. Am 24. Juni fand eine CodeJam zum Thema „Custom Code Migration to S/4 HANA“ statt. Ingo Bräuninger hat uns wie gewohnt mit hohem Expertenwissen viel Engagement beeindruckt. Es war erneut eine gemeinsame Veranstaltung mit der SCC.

Eine für uns ungewohnte CodeJam fand am 23. November statt. Ein Tag komplett ohne ABAP bzw. SAP Gui. An dem Tag stand das SAP Cloud Programming Model (CAP) am Programm. Mit Marius Obert hat uns SAP einen ausgewiesenen Experten zu dem Thema nach Wien geschickt. Dies war eine Co-Produktion von SCC, Ecosio und Cadaxo.

 

Webinar – ABAP® Development Tools vom 27. September 2019

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Unterlagen/Links zum Webinar „ABAP Development Tools

Umfrageergebnisse

Interessante Social Media Accounts

Wenn man sich für aktuelle Informationen rund um ADT interessiert, sollte man unbedingt diesen beiden Kollegen der SAP folgen.

Bücher

  • ABAP-Entwicklung in Eclipse, SAPPress, 2015, ISBN 978-3-8362-3040-7, Daniel Schön
  • ABAP to the Future, SAPPress 2019, ISBN 978-1-4932-1161-6, Paul Hardy
  • SAP-Schnelleinstieg: ABAP-Entwicklung in Eclipse, Espresso Tutorials, ISBN 9783960126652, Christoph Lordieck
  • Refactoring: Improving the Design of Existing Code, ISBN 978-0-13-475759-9, 2019, Martin Fowler

Andere Blogs zu dem Thema

Unser nächtes Webinar

Aufgrund der vielen anderen Termine im Herbst, findet unser nächstes Webinar erst im Jänner 2020 statt. Das Thema wird noch vor Weihnachten fixiert, aber natürlich kann man sich jederzeit registrieren.

Cadaxo SQL Cockpit 3.5 – Releaseinfos

Auch für die Version 3.5 unseres SQL Cockpits haben wir neben ein paar Verbesserungen und Korrekturen wieder einige interessante Erweiterungen vorgenommen.

CSV Attachments in Job Mailbenachrichtigung

Email-Benachrichtigungen von beendeten Hintergrundjobs können nun die Ergebnisse als CSV Dateien enthalten. Im Wizard für die Jobeinplanung kann dies durch markieren von „Ergebnis als Attachment versenden“ aktiviert werden. Die Listen werden in Form eines ZIP Files an das Email angehängt. Das verwendete CSV Format entsprecht dem seit Release 3.4 verfügbarem „Performanten CSV“, welches beim Export von Listen zur Verfügung steht.

Werte größer als 128 Zeichen vollständig anzeigen

Ergebniswerte welche länger als 128 Zeichen sind, können in einer ALV Tabelle nur bis zu 128 Stelle angezeigt werden. Sollten mehr als 128 Zeichen vorhanden sein, kann mit der Kontext-Funktion „vollen Wert anzeigen“ der gesamte Wert in einem eigenen Popup angezeigt werden. Wenn der Wert z.B. per Drag/Drop oder Doppelklick weiterverwendet wird, wurde bereits bisher immer der volle Wert verwendet. Auch in der Premium-Version, in der das Ändern von Inhalten möglich ist, wurden bereits Felder mit einer größeren Länge als 128 Zeichen unterstützt.

 

Teilen von Varianten

Ergänzend zum Teilen vom Editor und Symbolen, können nun auch Varianten mit anderen Benutzern geteilt werden. Die Funktion kann über das Kontextmenü der Veriantenpflege aufgerufen werden.

Mehrwertige Symbole – Uneingeschränkte Select-Options Funktionalität

Mehrwertige Symbole unterstützen nun die vollständige Select-Options Funktionalität. Es können Werte ein- oder ausgeschlossen werden, es können Bereiche angegeben werden und es besteht die Möglichkeit Werte per Upload oder aus der Zwischenablage zu ergänzen.

SE80 Debugger – SQL Cockpit Script Integration – BETA

Mit den Debugger Scripts, kann der SE80 Debugger um individuelle Logik ergänzt werden. Wir haben mit diesem Release eine erste Version unsere SQL Cockpit Debugger Scripts als BETA zur Verfügung gestellt.

Mit dem SQL Cockpit Debugger Script /CADAXO/DBG_SEND_2_COCKPIT können SQL Statements, in denen man aktuell in einer Debugging Session steht, in das SQL Cockpit übertragen werden. Variable Inhalte in der WHERE Bedingung werden als Symbole angelegt.

Hier eine Abfolge der notwendigen Schritte:

Webinar – Entwurfsmuster in ABAP®

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Unterlagen/Links zum Webinar „Entwurfsmuster in ABAP

Links

Interessante Twitter Accounts

Bücher

Unsere nächtes Webinar