Jobs im SAP HCM sicher definieren
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:
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.
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).
Nachdem der Step gespeichert wurde, öffnet sich der Überblick über alle bereits angelegten Steps.
Die zwei weiteren Steps können über die Schaltfläche „“ dann genauso angelegt werden. Die Stepliste gestaltet sich abschließend wie folgt:
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:
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:
Wenn alle benötigten Angaben getroffen wurden, sollte der View „Job definieren“ wie folgt aussehen:
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.