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)

582

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 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 Excel

Kategorie - ABAP

Was kann eigentlich die XCO Bibliothek für Excel in ABAP? Hier schauen wir uns den aktuellen Stand der API an.

29.11.2024

ABAP - XCO Strings

Kategorie - ABAP

In diesem Artikel schauen wir uns die XCO Klasse zur Erzeugung und Verarbeitung von Strings für ABAP Cloud an und vergleichen sie mit den klassischen Statements.

22.11.2024

ABAP - XCO Bibliotheken

Kategorie - ABAP

Was kannst du mit der Bibliothek in ABAP und ABAP Cloud machen und wie nutzt du die Objekte am besten? Hier erfährst du mehr.

12.11.2024

ABAP - Type Casting

Kategorie - ABAP

Wie kommst du eigentlich an den ursprünglichen Typ einer Klasse bzw. Instanz, wenn diese in einer generischen Tabelle übergeben wird? In diesem Artikel prüfen wir die Möglichkeiten.

16.04.2024

ABAP - RETURN value

Kategorie - ABAP

Nach all den Jahren ist nun endlich der "echte" Return in ABAP angekommen, in diesem Artikel zeigen wir dir, wie der funktioniert und was er kann.

13.02.2024