This is a test message to test the length of the message box.
Login
|
ABAP Class Runner Console Application
Erstellt von Software-Heroes

ABAP - Class Runner (Console Application)

1242

Egal ob Applikationen in der Cloud oder ein leichtes Mittel um schnell ein paar Tests zu machen und eine Ausgabe zu erzeugen, eine Console Application wird dich dabei unterstützen.

Werbung


Um was geht es bei einer Consolen Applikation und wie kann sie dir beim Entwickeln helfen? Das wollen wir dir heute in dem Artikel etwas näher bringen und dir die Vorteile so einer Applikation zeigen.

 

Reports im ADT

Du kennst sicherlich auch das Problem, dass du mal schnell etwas probieren möchtest, um einen debugbaren Output zu bekommen. In SE80 würdest du dafür einen Report schreiben und diesen ausführen. Hier hast du sogar noch die Möglichkeit mit einem Selektionsbild noch die Eingaben zu steuern. Mit den ADTs ist dies leider nicht so einfach und stellt dich vor gewisse Herausforderungen.

So wird jedes Mal beim Ausführen eines Reports die SAP GUI geladen, auch wenn vielleicht nicht einmal ein Selektionsbild benötigt wird. Dies kostet Zeit und unnötige Ressourcen, da wir ja eigentlich nur an die Ausgabe wollen. Ebenfalls springt die GUI dann zum internen Debugger in ADT und muss wieder den Status wechseln, wenn wir auch noch die Applikation debuggen wollen.

 

Class Runner

Zu diesem Zweck führte die SAP den Class Runner ein, um direkt über eine Klasse die Verarbeitung zu starten und trotzdem noch einen Output zu generieren. Gelöst wird das Ganze über ein globales Interface, dass das System zur Verfügung stellt und wir in unsere Klassen implementieren können. Zu diesem Zweck legen wir eine neue globale Klasse an und können direkt über den ADT Wizard das Interface mit übergeben.

 

Nach der Implementierung müssen wir nur noch die Main-Methode des Interaces ausprägen und können direkt mit der Implementierung beginnen. Der Grundzustand der Klasse sieht dann wie folgt aus:

CLASS zcl_bs_demo_class_runner DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    INTERFACES if_oo_adt_classrun.

  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.


CLASS zcl_bs_demo_class_runner IMPLEMENTATION.
  METHOD if_oo_adt_classrun~main.
    " Implementation
  ENDMETHOD.
ENDCLASS.

 

Wenn wir uns die Methode einmal im Detail anschauen (über F2), dann sehen wir, dass wir noch einen Importparameter zur Verfügung gestellt bekommen. Diese Objekt bietet uns eine Methode zum Schreiben in die Console.

 

Wenn du eine Consolen Applikation ausführen möchtest, kannst du diese über F9 oder das "Run" Menü machen. Hier hast du auch die Möglichkeit zu sehen, ob das aktuelle Release des Systems die neue Funktion unterstützt.

 

Beispiel

Dazu haben wir das Beispiel etwas weiter ausgebaut und einige Ausgaben in die Console ausgegeben. Zusätzlich kannst du das Objekt auch in weitere Methoden übergeben, wenn du die Ausgabe dort nutzen willst oder die Hauptmethode einmal zu groß wird.

CLASS zcl_bs_demo_class_runner DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
    INTERFACES if_oo_adt_classrun .

  PROTECTED SECTION.
  PRIVATE SECTION.
    METHODS:
      sub_methods_with_output
        IMPORTING
          io_out TYPE REF TO if_oo_adt_classrun_out.
ENDCLASS.


CLASS zcl_bs_demo_class_runner IMPLEMENTATION.
  METHOD if_oo_adt_classrun~main.
    DATA(ld_text) = `Output with a string`.
    out->write( ld_text ).

    DATA(ld_integer) = 12.
    out->write( ld_integer ).

    SELECT *
      FROM zdemo_tr_table
      INTO TABLE @DATA(lt_table).
    out->write( lt_table ).

    sub_methods_with_output( out ).
  ENDMETHOD.


  METHOD sub_methods_with_output.
    io_out->write( 'Call from submethod' ).
  ENDMETHOD.
ENDCLASS.

 

Als Ausgabe erhältst du die entsprechenden Texte in der Console (eine View in ADT).

 

Funktion

Wie funktioniert die Verarbeitung mit der Klasse nun genau? Hierbei schaut das System, ob die aktuelle Klasse auch das Interface IF_OO_ADT_CLASSRUN implementiert, ansonsten wird eine Fehlermeldung ausgegeben. Im nächsten Schritt wird eine Instanz der Klasse erzeugt und die Main Methode aufgerufen. Dann erfolgt die normale Ausführung der Klasse und die Anzeige der Console.

Hinweis: Wenn du einen Konstruktor verwenden möchtest, darf dieser keine Importparameter haben oder diese sollten optional sein, sonst kommt es zu einem Dump beim Ausführen der Klasse.

 

Reportausgabe

Reports können aktuell auch mit F9 ausgeführt werden und geben alle WRITE Ausgaben in die Console aus. Statt Write kannst du natürlich auch die Klasse CL_DEMO_OUTPUT verwenden, die die Funktion ebenfalls unterstützt. Solange der Report kein Selektionsbild hat, funktioniert diese Variante sehr gut.

 

Fazit

Mit dem Class Runner stellt die SAP ein starkes Tool zum Testen und Probieren zur Verfügung. Auf der anderen Seite benötigst du das Interface ebenso in der Cloud Umgebung, da es dort keine Reports gibt. Viel Spaß beim Bauen deiner ersten Consolen Applikation.


Enthaltene Themen:
Modernes ABAPClass RunnerConsole ApplicationIF_OO_ADT_CLASSRUN
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP - XCO Logging

Kategorie - ABAP

Die XCO Klassen sind Bestandteil der ABAP Cloud APIs und verfügen über zahlreiche Funktionen, die nicht immer so einfach zu verstehen sind. In diesem Artikel schauen wir uns das Logging Objekt im Detail an.

16.12.2025

ABAP - Der richtige Schlüssel

Kategorie - ABAP

Wie sieht es eigentlich bei der Nutzung von internen Tabellen aus? Immer noch TYPE TABLE in ABAP und die Tabelle ist fertig definiert?

14.11.2025

ABAP - XCO Reguläre Ausdrücke

Kategorie - ABAP

Schauen wir uns einmal die XCO Klassen für die regulären Ausdrücke an und wie damit recht einfach REGEX gegen Texte und Eingaben in ABAP Cloud absetzen kannst. Dabei vergleichen wir auch mit klassischem ABAP.

07.11.2025

ABAP - Escape

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal im Detail verschiedene Escape Varianten an, die du für die ABAP Entwicklung und Sicherheit im System benötigst.

07.10.2025

ABAP - Datum und Uhrzeit

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal die Datentypen für das Datum und die Uhrzeit in ABAP etwas genauer an. Hat sich zwischen den verschiedenen Releases etwas geändert und was solltest du heute noch nutzen?

03.10.2025