Nützliches

Lesezeit ca. 7 Minuten

Insbesondere dann, wenn mehrere Reports hintereinander oder parallel ausgeführt werden müssen, stellt sich die Frage, ob das SAP HCM dies nicht auf Anweisung selbst vornehmen kann. Die Antwort ist „ja“, sofern dafür sogenannte Jobs definiert sind. Wie Sie selbst solche Jobs sicher definieren können, zeigen wir Ihnen im folgenden Artikel.

Auch wenn Sie selbst bisher keine Jobs definiert haben, so haben sie Ihnen vermutlich bereits häufiger Arbeit abgenommen. Bspw. in der Zeitwirtschaft, wo in fest definierten Zeitintervallen die Zeitereignisse von den Terminals zum SAP HCM geholt werden, daraufhin eine Verbuchung in die Infotypen erfolgt, die Zeitauswertung diese verarbeitet und die Zeitsalden dann wiederum an die Terminals zurückgemeldet werden. Oder im Rahmen der Entgeltabrechnung, wo innerhalb der Behördenkommunikation oftmals verschiedene Verfahren im Ein- und/oder Ausgangsprozess automatisiert ausgeführt werden, wie bspw. ELStAM oder EEL.

Was ist ein Job?

Sogenannte Jobs stellen Hintergrundverarbeitungen im SAP HCM dar. Sie dienen zur Automatisierung von routinierten Aufgaben, indem vom System diejenigen Programme automatisch ausgeführt werden, welche ansonsten Sachbearbeiter/innen regelmäßig manuell ausgeführt hätten.

Ein Vorteil bei der Nutzung von Jobs ist unter anderem, dass zeit- oder ressourcenintensive Programme in Zeiten mit geringer Systemlast ausgeführt werden können, bspw. in der Nachtzeit. Außerdem unterliegen die im Job ausgeführten Programme keiner Laufzeitbeschränkung, da die Programme im Hintergrund ausgeführt werden. Ggf. kennen Sie das Problem langer Laufzeit bereits und Ihnen ist ein im Vordergrund bzw. Dialog ausgeführtes Programm aufgrund einer Zeitüberschreitung schon einmal mit einem Laufzeitfehler abgebrochen.

Sind bei einmaliger Ausführung von Reports lange Laufzeiten zu erwarten, so führt man sie ja i.d.R. ebenfalls im Hintergrund aus. Diese Ausführung im Hintergrund ist dann quasi auch eine ad hoc-Definition eines Jobs mit lediglich einem Report und sofortigem Start:

Report im Hintergrund ausführen

Report im Hintergrund ausführen

Weitere Informationen zu den sogenannten Hintergrund- und Dialog-Workprozessen im SAP erhalten Sie hier.

Job-Definition am Beispiel der Automatisierung von ELStAM Ausgangsmeldungen

Wie bereits im Blogartikel „Die SAP-HCM-Behördenkommunikation sinnvoll automatisieren“ beschrieben, empfehlen wir u.a. die tägliche, automatisierte Ausführung des ELStAM-Ausgangsprozesses. Wie Sie diese Automatisierung nun selbst per Job definieren können, zeigen wir in diesem Abschnitt.

Job-Definition

Zunächst rufen Sie die Job-Definition über Transaktion SM36 auf. Hier sind Jobname, Jobklasse und Ausführungsziel anzugeben.

Jobname

Der Job ist frei wählbar. Es ist jedoch zu empfehlen eine Nomenklatur anzulegen, damit Jobs in der Suche (SM37) leichter gefunden werden können.

Jobklasse

Die Jobklasse steht hier für die Priorität des angelegten Job (A hoch, B – mittel, C- niedrig). Besitzt ein Job die Priorität B, so wird dieser vor Jobs der Klasse C, jedoch nach Jobs der Klasse A verarbeitet. Priorität C ist bei der Jobdefinition die Standardklasse, so dass sie bei Jobanlage als Standardwert vorgegeben wird. Priorität B ist laut SAP für Jobs reserviert, die regelmäßig ablaufen sollen; Priorität A für unternehmenskritische Jobs, deren sofortige Ausführung jederzeit gewährleistet sein muss. Für die Nutzung der Klassen A und B müssen Sie allerdings eine Berechtigung für das Berechtigungsobjekt „Batch-Verarbeitung: Batch-Administrator“ aufweisen.

Fazit: Wählen Sie für den Job des ELStAM-Ausgangsprozesses gemäß SAP Jobklasse „B“, da er einen regelmäßig ablaufenden Job darstellt.

Ausführungsziel

Das Ausführungsziel beschreibt hier die SAP-Instanz, auf der der Hintergrundjob ausgeführt wird. Dabei stellt sich der Name wie folgt zusammen: „Hostname“_“SAP-Systemname“_“SAP-Systemnummer“.

Da Sie Jobs jedoch im Allgemeinen nur lokal definieren werden, lassen Sie das Feld einfach leer.

Transaktion SM36: Einen Job definieren

Transaktion SM36: Einen Job definieren

Sind die Angaben erfolgt, kann ein Job-Step mithilfe des Icons „“ definiert werden:

Job-Steps

Um die Einplanung und Verwaltung von Jobs zu erleichtern, können die auszuführenden Programme innerhalb eines Jobs als Job-Steps – also wie einzelne Verarbeitungsschritte – hinterlegt werden.

In unserem Beispiel hinterlegen wir alle drei Programme des ELStAM-Ausgangsprozesess:

  • Generieren der ELStAM-Ausgangsmeldungen (RPCE2VD0_OUT)
  • Erstellen der entsprechenden Meldedatei (RPCE2SD0_OUT)
  • Versand der ELStAM-Meldedatei(en) via B2A-Manager (H99_B2AMANAGER; die Definition der Variante für den B2A-Manager können Sie hier einsehen)

Zwar gibt es drei Arten, einen Step zu definieren: über ABAP-Programme, ein externes Kommando oder ein externes Programm. Wir beschränken uns hier jedoch auf die mit Abstand am häufigsten hinterlegten ABAP-Programme, also Reports des SAP HCM.

Zunächst einmal muss der Name des Programms, die auszuführende Variante und die entsprechende Sprache ausgewählt werden. Der Benutzer wird vom System automatisch vorgegeben, kann aber nach Bedarf angepasst werden (bspw. durch einen extra eingerichteten Job-Benutzer).

Einen Step definieren

Job definieren: Einen Step definieren

Nachdem der Step gespeichert wurde, öffnet sich der Überblick über alle bereits angelegten Steps.

Job definieren: Steplistenüberblick

Job definieren: Steplistenüberblick

Die zwei weiteren Steps können über die Schaltfläche „“ dann genauso angelegt werden. Die Stepliste gestaltet sich abschließend wie folgt:

Job definieren: Steplistenüberblick

Job definieren: Steplistenüberblick

Attribute

In der Übersicht ist es möglich, einige Attribute der einzelnen Steps nochmals über das „ändern-Icon “ anzupassen.

Achtung: Attribute, wie u.a. die Startzeit, Wiederholperiode und Priorität beziehen sich hierbei auf den gesamten Job und somit auch auf alle dazugehörigen Steps. Aus diesem Grund können diese je nach Step nicht individuell angepasst werden.

Jedoch gibt es auch Attribute, die sich für jeden Step einzeln festlegen lassen. Beispielsweise kann jeder Step eigene Spool- oder Ausgabenangaben erhalten, unter den Berechtigungen eines separaten Benutzers laufen oder eine andere Sprache verwenden.

In der Regel werden den Steps jedoch keine unterschiedlichen Attribute mitgegeben.

Reihenfolge

Die Steps laufen in genau der Reihenfolge ab, in der sie in den Job eingegeben wurden. Ist der erste Step beendet, so startet automatisch der zweite Step usw.. In unserem Fall bedeutet das konkret, dass zuerst das Programm „RPCE2VD0_OUT“ gestartet wird. Ist der Durchlauf abgeschlossen, startet das Programm „RPCE2SD0_OUT“. Zum Schluss wird der Report „H99_B2AMANAGER“ ausgeführt.

Sollte die Reihenfolge der Steps nicht korrekt sein oder müssen Sie sie noch einmal verändern, so kann sie noch über die Schaltfläche „“ angepasst werden.

Wurden alle benötigten Steps in der richtigen Reihenfolge definiert, kann über das „zurück-Icon “ wieder zur „Job definieren“-Übersicht zurückgekehrt werden.

In unteren Teil des Fensters wird nun angezeigt, dass in dem Job bereits drei Steps erfolgreich definiert wurden:

Übersicht "Job definieren" mit bereits erfolgreich definierten Steps

Übersicht „Job definieren“ mit bereits erfolgreich definierten Steps

Starttermin bzw. Startbedingung

Als nächster Schritt wird der Starttermin bzw. die Startbedingung definiert. Hier gibt es mehrere Möglichkeiten:

Start
Bedeutung
sofort Der Job startet sofort nach dem Speichern der einzelnen Schritte. Dieses Vorgehen entspricht der Ausführung eines Reports im Hintergrund.
Datum/Uhrzeit Der Job startet zu einem angegebenen Startdatum und -uhrzeit.

Hierbei kann über „kein Start nach“ verhindert werden, dass der Job noch nach einem Zeitpunkt gestartet wird.

nach Job Der Job startet erst, wenn der Durchlauf des Vorgänger-Jobs beendet ist. Hier kann ggf. noch angegeben werden, ob der nachfolgende Job nur dann beginnen soll, wenn der Vorgänger-Job erfolgreich war.
nach Ereignis Der Job startet erst dann, wenn das hinterlegte Ereignis eintritt.

Ein Ereignis wird hier als eine Art Signal definiert, welches dem System angibt, dass ein vordefinierter Zustand erreicht ist.

Der Job wurde mit dem Ereignis eines Betriebsartenwechsel (Ereignis-ID SAP_OPMODE_SWITCH) und der neuen Betriebsart „NACHT“ (Argument des Ereignisses) eingeplant. Findet nun ein Betriebsartenwechsel mit dem neuen Namen „NACHT“ statt, so startet der definierte Job. Wird allerdings das Ereignis mit dem neuen Namen „NORMAL“ ausgelöst, so startet der Job nicht und „wartet“ auf das Auslösen des Arguments „NACHT“.

bei Betriebsart Bei Betriebsarten ist es möglich, diese per separaten Button einzuplanen, um nicht extra die Ereignis-ID anzugeben. Hier ist es möglich, nur das Argument der Betriebsart (im vorherigen Beispiel „NACHT“) anzugeben.

Dabei kann jeweils mithilfe eines Ankreuzfeldes entschieden werden, ob der Job nur einmalig oder periodisch ausgeführt werden soll. Bei periodischer Ausführung muss dann mittels der Schaltfläche „Periodenwerte“ noch die Periodizität ausgewählt werden. In unserem Beispiel wählen wir die Periodizität „täglich“, wobei der erste Start am 14.07.2018 um 03:00 erfolgt:

Job definieren: Startbedingung festlegen

Job definieren: Startbedingung festlegen

Wenn alle benötigten Angaben getroffen wurden, sollte der View „Job definieren“ wie folgt aussehen:

Sicht "Job definieren" nach Angabe aller Bedingungen

Sicht „Job definieren“ nach Angabe aller Bedingungen

Aktuell weist unser definierter Job noch den Status „geplant“ auf. Durch Speichern des Jobs via „“ wird er in den Status „freigegeben“ überführt, so dass die hinterlegte Startbedingung vom System geprüft, und der Job bei Erreichen der Startzeit dann aktiv ausgeführt wird.

Eine Übersicht über freigegebene, aktive oder bereits abgeschlossene Jobs erhalten Sie dann über die Job-Übersicht mittels Transaktion SM37. Ist ein Job beendet (Status „fertig“), so kann über die Job-Übersicht auch zu den zugehörigen Spool-Ausgabedateien navigiert werden. Natürlich ist ebenso der direkte Weg über Transaktion SP01 möglich.

Noch Fragen?

Benötigen Sie Unterstützung bei der Definition von Jobs?

Oder haben Sie weitere Fragen zur Job-Definition?

Dann sprechen Sie uns gerne an! Einen direkten Link zum Kontaktformular finden Sie hier.