This is a test message to test the length of the message box.
Login
ABAP Cloud Jobs
Erstellt von Software-Heroes

ABAP Cloud - Jobs

156

Wie sieht es eigentlich bei ABAP Cloud mit den Jobs aus und wie werden sie in der neuen Welt erstellt und verwendet? Mehr dazu erfährst du in diesem Artikel.

Werbung


Fast jeder User in SAP sollte Batch-Jobs kennen oder zumindest einmal einen verwendet haben. Sie sind wichtig für die Nacht und verteilen Arbeitslast im System auf die Nachtzeiten. In diesem Artikel schauen wir uns einmal die Änderungen im Bereich der Jobs an und was ABAP Cloud für Auswirkungen darauf hat.

 

Einleitung

Jobs sind ein zentraler Bestandteil des ABAP Systems, da sie die Last der Verarbeitung auf die Nacht übertragen und verschiedene Aufgaben ohne den Eingriff des Users übernehmen. Ob es der Aufbau von Statistiken ist, die Verarbeitung neuer Daten oder einfach nur das System bereinigen. Das Konzept der Jobs gibt es seit Ewigkeiten im System und bisher hatte diese immer gleich funktioniert. Mit ABAP Cloud wird dieses Konzept einmal über den Haufen geworfen und mit etwas Neuem angereichert.

 

Klassisches ABAP

Im ABAP basierten Jobs vor allem auf Reports, über die Transaktion SM36 konnte man neue Jobs im System erstellen und einplanen oder direkt über den betreffenden Report die Funktionalität ausführen. Über die Transaktion SM37 konnte man die Jobläufe auswerten, sich die Logs anschauen oder die Ausgaben überprüfen. Die Grundfunktionalität wurde über die GUI zur Verfügung gestellt und jeder konnte sich individuell seine Jobs anschauen.

 

Application Job

Der Nachfolger der klassischen Batch-Jobs ist nun der Application Job. Dieser basiert nicht mehr auf einem Report, da Reports kein ABAP Cloud sind, sondern auf Klassen. Diese Klassen werden durch den Application Job zur Verarbeitung aufgerufen und bilden die eigentliche Logik ab.

 

Die verschiedenen Artikel zum Thema findest du hier:

 

Vergleich

Halten wir nun einmal die beiden Techniken gegenüber und vergleichen sie miteinander, um einen besseren Überblick über die Funktionen zu erhalten.

 

Einplanung (User)

Die Einplanung durch den User findet in der klassischen Welt über die Transaktion SM36 oder den Report selbst statt. Dabei besteht die Möglichkeit einen wiederkehrenden Job zu erstellen, der dann regelmäßig im System läuft.

 

In ABAP Cloud verwendest du die Fiori App "Application Jobs" (F1240), um einen neuen Job zu erstellen oder ein wiederkehrendes Pattern einzurichten.

 

User-Eingabe

Wie sieht es im Bereich user-Input aus? im klassischen ABAP kann der User von außen eine Variante setzen oder Variablen mitgeben, um die Verarbeitung zu beeinflussen.

 

In ABAP Cloud gibt es dafür die Parameter, diese werden bei der Einplanung des Jobs in Schritt 3 der App "Application Jobs" abgefragt.

 

Job mit Schritten

Weiterhin gibt es die Möglichkeit einen Job mit mehreren Schritten zu definieren, wenn zum Beispiel mehrere Reports in einer bestimmten Reihenfolge ausgeführt werden sollen oder man den gleichen Report mit unterschiedlichen Abgrenzungen starten möchte.

 

In ABAP Cloud gibt es die Möglichkeit weitere Templates über die App "Application Job Templates" (F2058) zu erstellen. Dabei kannst du Templates erstellen, die mehrere Schritte enthalten und so später in der "Application Jobs" App das Template für die Einplanung verwenden.

 

Einplanung (API)

Im klassischen ABAP System stehen verschiedene Funktionsbausteine (JOB_*) zur Verfügung, um Jobs maschinell bzw. aus der Verarbeitung im System einzuplanen.

CALL FUNCTION 'JOB_OPEN'
  EXPORTING
    jobname          = ld_jobname
  IMPORTING
    jobcount         = ld_jobcount
  EXCEPTIONS
    cant_create_job  = 1
    invalid_job_data = 2
    jobname_missing  = 3
    OTHERS           = 4.

SUBMIT rs_aucv_runner
  USING SELECTION-SET 'TEST'
  USER sy-uname
  VIA JOB ld_jobname NUMBER ld_jobcount
  AND RETURN.

CALL FUNCTION 'JOB_CLOSE'
  EXPORTING
    jobcount             = ld_jobcount
    jobname              = ld_jobname
    strtimmed            = abap_true
  EXCEPTIONS
    cant_start_immediate = 1
    invalid_startdate    = 2
    jobname_missing      = 3
    job_close_failed     = 4
    job_nosteps          = 5
    job_notex            = 6
    lock_failed          = 7
    OTHERS               = 8.

 

ABAP Cloud stellt eine interne ABAP API zur Verfügung (CL_APJ_RT_API), aber auch eine externe OData API (BC_EXT_APPJOB_MANAGEMENT), um Jobs im System zu planen. Weitere Details zu den APIs kannst du den oben verlinkten Artikeln entnehmen.

DATA(ls_start) = VALUE cl_apj_rt_api=>ty_start_info( start_immediately = abap_true ).

cl_apj_rt_api=>schedule_job( EXPORTING iv_job_template_name   = 'ZBS_DEMO_JOB_ADT_TEMPLATE'
                                       iv_job_text            = 'Single run from Code (Immediately)'
                                       is_start_info          = ls_start
                                       it_job_parameter_value = mt_parameter
                             IMPORTING ev_jobname             = DATA(ld_jobname)
                                       ev_jobcount            = DATA(ld_jobcount) ).

 

Auswertung

Ausgaben im Batch-Job finden zum einen in das Joblog statt, dazu werden erzeugte Meldungen (per MESSAGE) an den Job gehangen. Zum anderen werden alle WRITE Ausgaben in den Spool übernommen. So können unterschiedliche Arten von Protokollen und Ausgaben erzeugt werden, die später auch exportiert oder gedruckt werden können.

 

In ABAP Cloud können mehrere Application Logs an einen Job gehangen werden, um so alle Meldungen an den User zu übergeben. Eine Spool-Ausgabe gibt es nicht mehr Out-of-the-Box und muss manuell als Formular oder E-Mail (Beispiele) implementiert werden.

 

Hinweis: Je nach dem Stand deines Systems, werden mehr oder weniger Funktionen der Application Jobs im ABAP Cloud Umfeld zur Verfügung stehen. Ab S/4 HANA 2022 stehen so weit die meisten Funktionalitäten zur Verfügung.

 

Unterschied

Einen Unterschied kann es auf deinem System allerdings geben. Wenn ihr den Business Partner noch nicht verwendet, also auf den klassischen SU01 User setzt, dann wir die Berechtigung über die klassische PFCG Rolle zugewiesen. Damit sind keine Business Kataloge nötig und können auch nicht verwendet werden. Die Zukunft ist allerdings das Konzept des Business Partners im System (Employee/Business User).

 

Fazit

Das Konzept der Jobs ändert sich mit ABAP Cloud am umfassendsten, erlaubt damit aber eine saubere Abgrenzung von Job und Anwendung für den User und mischt die beiden Konzepte nicht mehr. Bei der Erstellung von Jobs sollte man einige Dinge beachten, vor allem aber auf eine robuste Entwicklung setzen, da sonst ein Finden der Fehler recht schwer wird.


Enthaltene Themen:
ABAP CloudABAPApplication JobJobGuide
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 Cloud - Clean Core (Szenarien)

Kategorie - ABAP

Lass uns in diesem Artikel noch einmal die Clean Core Architektur mit ABAP Cloud anschauen, wo diese eingesetzt wird und wo du deine Anwendungen bauen kannst.

10.01.2025

ABAP Cloud - Programmiermodell

Kategorie - ABAP

Welches Programmiermodell kommt mit ABAP Cloud zum Einsatz und was können wir aus dem Vorgänger lernen? Mehr Details im Artikel.

03.01.2025

ABAP Cloud - ADT Bäume (Übersicht)

Kategorie - ABAP

Welchen Hilfen und Übersichten stehen dir in den ABAP Development Tools zur Verfügung, um dein Leben mit ABAP Cloud zu vereinfachen?

17.12.2024

ABAP Cloud - Relevante Objekte

Kategorie - ABAP

Welche Objekte sind in der ABAP Entwicklung eigentlich noch relevant und welche kannst du so langsam in die Mottenkiste packen? Hier erfährst du mehr.

19.11.2024

ABAP Cloud - Sperren

Kategorie - ABAP

Für was musst du Sperren setzen und wie kannst du das leicht in ABAP Cloud machen? In diesem Artikel schauen wir uns den Prozess im Detail an.

08.11.2024