SAP Batch Jobs

Über Jobs lassen sich viele Prozesse und regelmäßige Tätigkeiten automatisieren. Einerseits können die vielen von SAP bereitgestellten Programme und andererseits auch speziell entwickelte Kundeneigenentwicklungen ausgeführt werden. Über Jobs lassen sich widerkehrende Tätigkeiten, die immer nach dem gleichen Muster ablaufen, vollständig automatisieren. Beispielsweise Idocs erneut verbuchen, fehlerhafte Stammdaten prüfen und ggf. eine E-Mail an zuständige Mitarbeiter senden, SE16N-Selektionen nachts im Hintergrund durchführen, Kundenaufträge beliefern oder den Periodenverschieber einplanen.  

Joberstellung und -pflege

Voraussetzung sind die entsprechenden Berechtigungen, mindestens ein Programm und eine Selektionsvariante, mit dessen konkreten Parametern das Programm ablaufen kann. Die Varianten können Sie teilweise über die zum Programm zugehörige Transaktion anlegen bzw. über die SE38 beim Ausführen des Programms. Bei der Variantenerstellung sollten einige Besonderheiten berücksichtigt werden, so z.B. die Auswahl „Im Dunkeln einspielen“ oder dynamische Zeit- und Datumsangaben; siehe dazu die Website.

Ablauf: SM36 aufrufen, einen Jobnamen eingeben und auf [Startbedingung] klicken. Im Popup-Fenster kann die Ausführungszeit bzw. -periode eigegeben werden. So z.B. „Sofort“ oder „Andere Periodenwerte/Stunde 2“, um den Job z.B. alle 2 Stunden auszuführen. Auch die Ausführung nach einem Ereignis, nach Beendigung eines anderen Jobs (Jobkette) usw. kann festgelegt werden. Nachdem Speichern muss festgelegt werden, was der Job tun soll. Dazu auf den Button [Steps] klicken und insbesondere den Programmnamen und dessen Variante eintragen. Auch ein alternativer Nutzer kann angegeben werden; wichtig ist das dieser User die entsprechenden Berechtigungen für die Ausführung des Programms hat. Nach der Speicherung finden Sie das Programm in der Stepliste zum Job. Dort können optional weitere Steps (Programmeausführungen mit Variante) aufgenommen werden. Somit lasen sich mehrere Programme hintereinander einplanen. Zudem können Sie zwischen der Jobausführung Wartezeiten einplanen oder z.B. ein Ende der regelmäßigen Jobausführung pflegen, dazu dienen die weiter unten aufgeführten Hilfsprogramme.  

Jobmonitoring und Fehleranalyse

In der SM37 können je nach Selektion z.B. geplante, aktive oder beendee Jobs eingesehen werden. Die Jobselektion kann weiter nach Jobnamen, User, Programmnamen usw. eingeschränkt werden. Innerhalb der Transaktion bekommen Sie Informationen zur Laufzeit, könne Job-Logs analysieren und ggf. aufgetretene Fehler korrigieren, Jobs umplanen bzw. erneut einplanen usw.

Job-Debugging

Möchte man einen Job debuggen, so ruft man diesen zunächst über die SM37 auf. Der jeweilige Job muss dazu selektiert und markiert werden. Anschließend kann der Job-Debugger über die Eingabe JDBG in der Transaktionsleiste mit einem Klick auf [Enter] geöffnet werden.

Ermittlung mit welchen Parametern ein Job gelaufen ist

Via SE38 und dem Report RSVADISP, können die Parameter ermittelt werden. Die Variante liefert die SM37. Dazu den Job dort suche und dessen Variante(n) über den Button [Step] anzeigen lassen.

Hilfsprogramme zu Jobs

  • BTCAUX10 – Job bis zum Datum NN.NN.NNNN und der Urzeit NN:NN einplanen
  • RSWAITSEC – Zwischen zwei Jobs eine Wartezeit einplanen. Via SE38 RSWAITSEC Wartezeit in Sekunden angeben, als Selektionsvariante abspeichern und dann den Job mit der Selektionsvariante als Step einplanen.
  • BTCAUX01 – Jobs mit fehlenden Druckparametern anzeigen/reparieren
  • BTCAUX02 – Jobs mit gelöschtem Drucker anzeigen
  • BTCAUX03 – Programm zum Archivieren von Joblogs
  • BTCAUX04 – Mehrfach eingeplante periodische Jobs identifizieren
  • BTCAUX05 – Jobs zu Spoolaufträgen selektieren
  • BTCAUX06 – Protokollierung für Joblöschung einschalten
  • BTCAUX07 – Status von aktiven Jobs überprüfen
  • BTCAUX08 – Anfang /Ende eines Joblogs anzeigen
  • BTCAUX09 – Jobs mit gelöschten Benutzern identifizieren
  • BTCAUX10 – Job mit letztem Ausführungstermin/mit Zeitfenster einplanen
  • BTCAUX11 – Beispielprogramm zum Erzeugen eines Jobs mit Spoollistenempfänger
  • BTCAUX14 – Hintergrundjobs nach ihrer Häufigkeit auflisten
  • BTCAUX18 – verschiedene Überprüfungen von Jobs und ihren Protokollen
  • BTCAUX20 – Löschen obsoluter Einträge aus BTCOPTIONS

Relevante Job-Tabellen

  • TBTCA – Nachfolgerrelation bei Batch-Job Einplanungen
  • TBTCB – Vorgängerrelation bei Batch-Job Einplanungen
  • TBTCO – Job-Zustandsübersichtstabelle
  • TBTCP – Step-Übersicht eines Batch Jobs
  • TBTCY – Tabelle für Jobs im Status ‚bereit‘

Sequenzielle und parallele Jobketten

Möchte man Programmabläufe nicht nur nacheinander, sondern auch parallel einplanen, kann die Transaktion RSPC hilfreich sein. Mit dieser Transaktion lassen sich nämlich im Gegensatz zu den sequentiell ablaufenden Steps mehrere Programme parallel einplanen. Ist das letzte parallellaufende Programm abgeschlossen, kann z.B. ein sequenziell nachfolgender Programmdurchlauf eingeplant werden. So lässt sich genau definieren, was parallel ablaufen darf und welche Steps (ggf. mehrere parallele Programmdurchläufe) als Vorbedingung zunächst abgeschlossen sein müssen.