Kontakt & Service
Jetzt Beratung vereinbaren

In wenigen Schritten einen Beratungs­termin mit unseren Experten buchen.

Anwender Helpdesk

Hilfestellung bei Problemen in Ihren SAP-Systemen.

Webinare

Unser Webinarangebot. Jetzt informieren!

Newsletter

Jetzt Newsletter abonnieren!

News & Wissen ABAP Job-Automatisierung in der SAP S/4HANA Public Cloud

Das Einplanen von Hintergrundjobs ist eine beliebte Methode, um Prozesse zu automatisieren, wiederkehrende Aufgaben auszuführen oder Programme mit langen Laufzeiten in betriebsarme Zeiten zu verschieben. In klassischen On-Premise- oder Private Cloud-Systemen wurden Hintergrundjobs über die Transaktion SM37 verwaltet, die Jobs selbst aber bisher als ABAP Reports implementiert. Diese Vorgehensweise hat sich mit der SAP BTP oder SAP S/4HANA Public Cloud geändert. Grundsätzlich ist es aber weiterhin möglich, Jobs einzuplanen.

Beispielszenario

In diesem Testbeispiel soll ein Job regelmäßig prüfen, ob neue Kundenaufträge erstellt worden sind. Für alle gefundenen Aufträge wird ein Eintrag in einer Z-Tabelle erstellt, die später für den Abruf von Bonus-Codes genutzt werden soll.

Entwicklung des Hintergrundjobs

Im Gegensatz zur bisherigen Herangehensweise werden die Jobs nicht mehr als ABAP-Report, sondern als Klasse implementiert. Das „Hauptproblem", was es dabei zu lösen gilt, ist der fehlende Selektionsbildschirm, um dem Programm Daten mitzugeben. Dadurch können natürlich auch die bisher im Job verwendeten Varianten nicht mehr genutzt werden.

Um diese Probleme zu umgehen, muss die Klasse zwei Interfaces implementieren. Die Entwicklung findet in Eclipse (ADT) statt.:

IF_APJ_DT_EXEC_OBJECT

Dieses Interface enthält die Methode „get_parameters", mit der die Parameter des Jobs definiert werden, und ersetzt somit die Entwicklung eines klassischen Selektionsbildschirms.

In diesem Beispiel werden drei Parameter definiert: Datum, Belegnummer und eine Checkbox für unbearbeitete Belege. Im Anschluss werden Default-Werte vorgegeben.

IF_APJ_RT_EXEC_OBJECT

In der hier enthaltenen Methode „execute" wird die eigentliche Business-Logik implementiert.

Im ersten Schritt werden die Parameterwerte des Job-Aufrufs gelesen.

Danach werden alle Kundenaufträge selektiert, für die noch kein Eintrag in der Tabelle „Bonus-Code" existiert. Die Logik zur Datenselektion ist als CDS-View implementiert.

Zum Schluss werden fehlende Einträge in die „Z-Tabelle" geschrieben.

Anwendungsjobkatalogeintrag erstellen

Damit die Klasse als Job verwendet werden kann, muss sie in einem Anwendungsjobkatalogeintrag registriert werden.

Für den Katalogeintrag werden ein Name und eine Beschreibung vergeben. Zudem muss die oben implementierte Klasse angegeben werden.

Nach dem Sichern besteht die Möglichkeit, weitere Klassen mit definierten Interfaces anzugeben, welche die Eingaben prüfen oder Suchhilfen bereitstellen.

Anwendungsjobvorlage erstellen

Anschließend muss mindestens eine Anwendungsjobvorlage mit Default-Parametern erstellt werden. Die in der Methode „get_parameters" hinterlegten Defaults werden vorgeschlagen und können angepasst werden.

Das Template bekommt einen Namen, eine Beschreibung und bezieht sich auf den vorher angelegten Jobkatalogeintrag.

Nun können die ursprünglichen Defaults verfeinert und auf den spezifischen Anwendungsfall angepasst werden.

Mit diesem Schritt sind die Arbeiten in Eclipse beendet und die Job-Einplanung wird über die entsprechenden Fiori Apps fortgeführt.

Fiori App „Anwendungsjobvorlagen pflegen"

In dieser Fiori App kann eine vollständige Jobvorlage mit mehreren Schritten gepflegt werden. Die Namensähnlichkeit zur vorab angelegten Vorlage kann verwirren. Dort wurde allerdings nur ein einzelner Schritt definiert, der hier nun hinzugefügt werden kann.

Die Vorlage bekommt einen Namen und einen Laufzeitintervall. Anschließend können die Schritte gepflegt werden.

Zu Beginn sind die Schritte leer und können hinzugefügt werden.

In der Auswahl findet sich die vorab in Eclipse definierte Jobvorlage.

Insofern keine weiteren Job-Schritte notwendig sind, kann jetzt gesichert werden.

Im Parameterbereich werden nun noch einmal alle Eingabewerte angezeigt, die angepasst werden können.

Nun noch einmal final sichern.

Fiori App „Anwendungsjobs"

Die eigentliche Einplanung des Jobs erfolgt in der App „Anwendungsjobs".

Die erstellte Jobvorlage steht hier nun zur Verfügung. Zudem muss ein Jobname vergeben werden.

Das Laufzeitintervall wird aus der Vorlage übernommen, kann aber bei Bedarf angepasst werden.

Auch die Parameter können noch einmal geprüft und ggf. geändert werden. Die Funktion „Einplanen" schließt den Vorgang ab.

Selektiert man in der Liste nach beendeten Jobs, so findet sich bereits der initiale Lauf mit der Möglichkeit zum Absprung auf die Ausführungsdetails.

 

Stand: 8. Dezember 2023
Newsletter Setzen Sie auf fundiertes Wissen aus allen Bereichen unserer Branche. Regelmäßig und stets aktuell.
Beratende Person
Kontakt Haben Sie Fragen oder wünschen weitere Informationen? Unsere Experten beraten Sie gerne.