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

ABAP Cloud - Jobs

84

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 JobJob
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 - Hintergrundverarbeitung

Kategorie - ABAP

Wie lagert man in ABAP Cloud eigentlich speicherintensive Prozesse in den Hintergrund aus und monitort diese? In diesem Artikel schauen wir uns das Framework einmal genauer an.

14.06.2024

ABAP Cloud - Tabellenpflege

Kategorie - ABAP

Was kommt eigentlich nach der SM30 und wie kannst du schon heute die Business Configuration als zentrale Pflege für deine Tabellen verwenden? Mehr dazu in diesem Artikel.

07.06.2024

ABAP Cloud - Parallelverarbeitung

Kategorie - ABAP

Die Klasse CL_ABAP_PARALLEL gibt es bereits eine Weile und wird auch in ABAP Cloud verwendet. In diesem Artikel erfährst du mehr über die Nutzung und Wirkung.

12.04.2024

ABAP Cloud - Migration (Beispiel)

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal im Beispiel eine Migration eines Reports von TIER-3 nach ABAP Cloud an.

29.03.2024

ABAP Cloud - 3-TIER Modell

Kategorie - ABAP

Das 3-TIER Modell ist wesentlicher Bestandteil der Übergangsarchitektur Richtung ABAP Cloud. In diesem Abschnitt werden wir näher auf den Aufbau eingehen.

22.03.2024