wenn Sie ABAP-Entwickler sind und eine IDE suchen, die Ihren Code verschönert, farblich hervorhebt und das Programmieren angenehm macht, dann sollten Sie ABAP unbedingt einmal in VS Code schreiben.
Aus dem Titel dieses Blogbeitrags haben Sie sicher schon entnommen, dass es um ABAP in VS Code geht. Deshalb ist es wichtig, zuerst zu wissen, was VS Code überhaupt ist. VS Code ist die Kurzform von Visual Studio Code, einem quelloffenen Code-Editor von Microsoft. Er lässt sich einsetzen, um die Funktionalität beliebigen Codes zu erweitern. Im Kern erlaubt er Programmierern, Code zu schreiben, zu debuggen und auszuführen, und unterstützt dabei viele Sprachen.
In diesem Blogbeitrag geht es darum, wie sich ABAP in VS Code schreiben lässt und ob VS Code die klassische SAP GUI ersetzen kann.
Beachten Sie, dass das SAP-Plugin nach erfolgreichem Verbindungsaufbau zwischen SAP GUI und VS Code links unten unter dem Plugin ‘Extensions’ sichtbar wird.
Erste Schritte – ABAP in VS Code einrichten
Aktivierung des SICF-Service in SAP HCM
Rufen Sie die Transaktion SICF auf und suchen Sie unter Service Name nach ADT_SRV.
Was ist SICF?
SICF ist eine von SAP bereitgestellte Transaktion, die Services für die HTTP-Kommunikation unterstützt. Dafür nutzt sie den Internet Communication **Manag****er (**ICM) und das Internet Communication Framework (ICF).
Um mehr über den SICF-Service zu erfahren und wie man einen schreibt, folgen Sie diesem Link.
Klicken Sie mit der rechten Maustaste auf ‘adt_srv’ und wählen Sie Activate Service. Ist der Service bereits aktiv, wird nur die Option Deactivate angezeigt.
Damit wird der Service aktiviert, über den sich Code-Editoren und IDEs mit Ihrem SAP-System verbinden können.
Klicken Sie nach Schritt 2 erneut mit der rechten Maustaste und wählen Sie ‘Test Service’. Im Browser sollten Sie dann Folgendes sehen.
VS Code konfigurieren
Nachdem Sie den Service in der SAP GUI aktiviert haben, geht es im nächsten Schritt darum, Extensions in VS Code herunterzuladen und zu aktivieren. Legen wir los.
Öffnen Sie VS Code und klicken Sie auf ‘Extensions’ oder drücken Sie ‘Strg+Umschalt+X’. Suchen Sie nach ‘abap’ und installieren Sie ABAP remote filesystem. Damit wird Visual Studio Code zu einer IDE, in der ABAP-Entwicklung direkt auf dem SAP-Server stattfinden kann.
Nach der Installation klicken Sie auf die Einstellungen-Schaltfläche direkt neben ‘ABAP remote filesystem’ und gehen zu Extension Settings.
Klicken Sie auf ‘Edit in settings.json’.
Fügen Sie den folgenden Code ein. Tragen Sie das Label, den Benutzernamen und das Passwort des SAP-Systems ein, mit dem Sie VS Code verbinden.
💡 Damit wird ein Profil für Ihr System angelegt, über das Sie sich in VS Code verbinden können. Verbinden Sie sich zum Beispiel mit Mandant 100, dann sind Benutzername und Passwort die des genannten Mandanten. So schaffen Sie die Voraussetzung, um eine Verbindung zu Ihrem SAP-System herzustellen.
💡 Bitte beachten Sie, dass Sie im obigen Code Benutzernamen, Passwort, Mandanten und System-Label des SAP-Systems ergänzen müssen, das Sie mit VS Code verbinden.
Hurra! Alle Schritte sind abgeschlossen.
Das SAP-GUI-Symbol ist noch nicht da, denn wir haben den Service angelegt und die Extension heruntergeladen, aber noch keine Verbindung zwischen beiden hergestellt.
Der letzte Schritt besteht deshalb darin, F1 zu drücken und ‘AbapFs Connect to an ABAP System’ auszuwählen. Sie sehen dann links das SAP-GUI-Symbol mit all Ihren Transporten. Jetzt können Sie in VS Code loslegen. Dieser Schritt ist nötig, weil zwar Ihr Systemprofil angelegt ist, die Verbindung zwischen beiden (also VS Code und SAP GUI) aber noch nicht besteht. Genau dafür wird ‘ABAPFs Connect to an ABAP System’ verwendet.
ABAP mit VS Code verstehen
Da Ihr Setup nun steht, können Sie in VS Code Reports, Klassen, Datenelemente, Pakete und mehr anlegen.
Transportaufträge
Ein Transportauftrag lässt sich über das SAP-Plugin in der Seitenleiste öffnen.
💡 Wenn Sie ABAP in VS Code schreiben, sollten Sie eines im Blick behalten: Für Ihren Benutzer muss bereits ein Transportauftrag existieren, denn TRs lassen sich aus VS Code heraus nicht anlegen.
ABAP-Objekt (Datenelement und Klasse)
Um einen Eindruck davon zu geben, wie sich ABAP-Objekte mit VS Code anlegen lassen, nehme ich das Beispiel eines Datenelements, einer Klasse und eines Reports.
Also, los geht’s!!
Wann immer ein ABAP-Objekt in VS Code angelegt werden soll, klicken Sie einfach mit der rechten Maustaste in den Workspace und wählen ‘ABAPfs Create Object’, wie unten gezeigt.
Daraufhin erhalten Sie eine Liste der Objekte, die sich anlegen lassen. Wählen Sie das passende aus oder suchen Sie nach dem gewünschten Objekt.
Ein Datenelement anlegen
Was ist ein Datenelement? Ein Datenelement ist ein Objekt des Data Dictionary in ABAP, mit dem Felder einer Tabelle definiert werden. Es legt die Typen der Spalten in Datenbanken fest.
Wählen Sie im oben gezeigten Dropdown ‘Data Element’ und vergeben Sie Name, Beschreibung und Paket für das Datenelement. Sie sehen dann, dass ein Datenelement mit dem von Ihnen vergebenen Namen und der Endung ‘.dtel.xml‘ angelegt wurde. Hier lautet der Name des Datenelements ZT_TEST_DATA_ELEMENT
💡 Wenn Sie prüfen möchten, ob dieses Datenelement in der SAP GUI vorhanden ist, rufen Sie die Transaktion SE11 auf und geben den Namen des soeben angelegten Datenelements ein. Sie werden das Datenelement sehen.
Einen ABAP-Report anlegen
Genau wie beim Datenelement legen Sie einen Report oder ein Programm über dieselben Schritte an, wählen dabei aber statt Data Element den Eintrag ‘program’. Das Layout entspricht dem beim Anlegen eines neuen Reports in der SAP GUI.
Nun können Sie mit dem Coden beginnen. Ich habe zum Beispiel einen einfachen Code ergänzt, um die Funktionsweise von ABAP in VS Code zu testen.
TYPES: BEGIN OF lty_struct,
col1 TYPE string,
col2 TYPE string,
col3 TYPE string,
END OF lty_struct.
DATA: lt_table TYPE TABLE OF lty_struct,
ls_table TYPE lty_struct.
ls_table-col1 = 'ABC'.
ls_table-col2 = 'String 1 of column 1'.
ls_table-col3 = '1'.
APPEND ls_table TO lt_table.
ls_table-col1 = 'XYZ'.
ls_table-col2 = 'String 1 of column 2'.
ls_table-col3 = '2'.
APPEND ls_table TO lt_table.
ls_table-col1 = 'PQR'.
ls_table-col2 = 'String 1 of column 3'.
ls_table-col3 = '3'.
APPEND ls_table TO lt_table.
LOOP AT lt_table INTO ls_table.
IF ls_table-col1 EQ 'ABC' OR ls_table-col1 EQ 'PQR'.
WRITE: ls_table-col1.
SKIP.
ENDIF.
ENDLOOP.
Zum Aktivieren klicken Sie oben rechts auf die Aktivieren-Schaltfläche. Damit wird automatisch der Pretty Printer angestoßen.
Wenn Sie den angelegten Report zusätzlich in der SAP GUI sehen möchten, rufen Sie die Transaktion SE38 auf und geben den Namen des von Ihnen angelegten Reports ein.
Eine ABAP-Klasse anlegen
Eine Klasse legt die Form eines Objekts fest. Sie vereint die Darstellung von Daten und die Methoden zu deren Verarbeitung.
Sehen wir uns an, wie sich eine Klasse anlegen lässt.
Klicken Sie mit der rechten Maustaste in den Workspace und wählen Sie ‘ABAPfs Create Object’. Wählen Sie dann im erscheinenden Dropdown ‘Class’.
Nachdem Sie Name und Beschreibung der Klasse vergeben haben, erscheint die folgende Vorlage. Ich habe sie ZCLASS_DEMO genannt.
Jetzt können Sie nach Belieben Code ergänzen und ihn anschließend aktivieren.
Nachteile der Arbeit mit ABAP in VS Code
ABAP-Reports lassen sich in VS Code nicht ausführen. Dasselbe gilt für Funktionsbausteine, Klassen und so weiter.
VS Code erlaubt kein Debuggen von ABAP-Code. Das geht nur in der SAP GUI.
Ein Transportauftrag lässt sich in VS Code nicht anlegen. Sie können nur die aus der SAP GUI verwenden oder dort zuerst einen TR anlegen und ihn dann in VS Code nutzen.
Es gibt keine Möglichkeit, wie in der SAP GUI mit Transaktionen zu arbeiten.
Vorteile von ABAP in VS Code
ABAP-Objekte lassen sich einfach anlegen, bearbeiten und löschen.
Man gelangt schnell zur Definition und Implementierung von Strukturen, Methoden, Klassen, kundeneigenen Tabellen und mehr.
Sie können einen TR aus VS Code heraus in der SAP GUI öffnen. Klicken Sie dazu mit der rechten Maustaste auf den gewünschten TR und wählen Sie ‘Open transport in GUI’. Der TR wird dann in der SAP GUI geöffnet, wo Sie ihn bei Bedarf weiter ändern können.
Es verschönert Ihren Code, hebt ihn farblich hervor und sorgt für ein angenehmes Programmiererlebnis.
Damit sind wir am Ende dieses Blogbeitrags angelangt. Zusammengefasst würde ich sagen: Dieses Setup ist noch nicht vollständig. Wie bei den Nachteilen erwähnt, gibt es hier anders als in der SAP GUI keine Transaktionen, die Sie zu den verschiedenen SAP-Modulen führen. Das erschwert die Navigation und das Ablegen von Informationen und Daten an einem Ort. Außerdem lässt sich für ABAP in VS Code kein Testen oder Debuggen durchführen, was für jede Sprache eine Grundfunktion ist.
Davon abgesehen eignet es sich weiterhin gut, um sich hinzusetzen und einfach Code zu schreiben. Darüber hinaus hat ABAP mit VS Code aber noch einen Weg vor sich, bevor ein vollständiger Umstieg auf diese Plattform möglich ist.