Transaktion SM36 und SM37 (Hintergrundjob)

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Kategorie: Jobs.

Im Produktivbetrieb werden bei fast jedem Kunden eine Reihe von Jobs eingeplant, die periodisch z. B. stündlich, täglich oder wöchentlich laufen.

Die Jobs werden meist von den Basis-Leuten oder den Beratern eingeplant, aber es ist auch für die Entwickler nützlich Kenntnisse über die Jobplanung zu haben.

Warum werden Jobs angelegt

  • Diese Jobs laufen z. B. ziemlich lang und werden dann in einer lastarmen Zeit (abends oder nachts) eingeplant, um die Performance vom Produktivbetrieb am Tag nicht zu beeinträchtigen -
  • es können auch Jobs sein, die sehr häufig laufen, aber eine kurze Laufzeit haben, wie z. B. die freigegebenen Transportaufträge vom Entwicklungssystem zum Qualitätssystem zu importieren.

Job per Programm einplanen

  • Jobs können auch per Programm angelegt werden.
  • Das kann z. B. Sinn machen, wenn man aus einem Programm heraus einen Report starten möchte, aber der Report braucht eine bestimmte Zeit um auf einen angelegten Beleg zu warten. Hier könnte man in einem Programm einen Job anlegen, der eine Minute später startet und einen Report ausführt, um z. B. einen gerade angelegten Kundenauftrag zu ändern.
  • Ein angelegter Job hat zudem den Vorteil, das der Job in einem separaten Workprozeß läuft und das aktuelle Programm (oder User-Exit) ohne Verzögerung weiter laufen kann.

Job einplanen in Transaktion SM36

  • In der Transaktion SM36 wird ein Job angelegt
    • Name Job
    • Steps
    • Startbedingung
    • Jobklasse

Startbedingung

  • Zeitpunkt (Datum/Uhrzeit). Es kann hier auch der Fabrikkalender hinterlegt werden, wodurch der Job z. B. nur an Arbeitstagen gestartet wird.
  • Periodisch (Monatlich, Wöchentlich, Täglich, Stündlich, ...)
  • Nach einem (anderen) Job. Es werden Jobketten gebildet. Es kann auch "Status abhängig" gewählt werden, sodass nur nach erfolgreicher Ausführung des vorigen Jobs der eigene Job ausgeführt wird.
  • Nach Ereignis
  • Bei Betriebsart: Wenn das SAP-System einen Betriebsartenwechsel vornimmt, wird ein Ereignis SAP_OPMODE_SWITCH ausgelöst mit einem Parameter dem Namen der neuen Betriebsart. So könnten Sie z.B. einen Job ausführen lassen, sobald das System zur Betriebsart Nacht wechselt.
  • Bei Ereignis: Über die Transaktion SM62 (Event History) können Events definiert werden. Wird dieses Event dann im Job als Start ausgewählt, kann der Job in einem Programm ausgelöst werden mit dem Funktionsbaustein "BP_EVENT_RAISE".
CALL FUNCTION 'BP_EVENT_RAISE' 
 EXPORTING eventid = 'TESTEVENT' 
           eventparam = '1'
 EXCEPTION 
           others = 1.
           
 if sy-subrc <> 0.
  ...
 endif.

Jobklasse

Gleichzeitig eingeplante Jobs werden entsprechend ihrer Priorität gestartet.

  • Jobklasse A = Hohe Priorität
  • Jobklasse B = Mittleere Priorität
  • Jobklasse C = Geringste Priorität

Steps

  • Meist werden in einem Job ein oder mehrere ausführbare Programme über das Feld "ABAP-Programm" ausgeführt. Dabei werden einem Programm in aller Regel eine Startvariante und Sprache mitgegeben.

Jobauswahl in Transaktion SM37

  • Manchmal weiß man, dass ein Report als Job eingeplant ist, aber nicht in welchem Job. Das lässt sich herausfinden.

Transaktion SM37

  • Start der Transaktion SM37
  • Der Benutzername wird durch "*" ersetzt, wenn nicht bekannt ist, wer den Job aufgesetzt hat

SM37 1.jpg

Einfache Jobauswahl

  • Klick auf "Erweiterte Jobauswahl"

Steps

  • Klick auf den Reiter "Steps"
  • Eintragen des Reports, der gesucht wird (hier Report "ZSD_RETOUREN_ABSAGEN")
  • Klick auf "Ausführen"

SM37 2.jpg

Doppelklick Jobnamen

  • Es wird hier der Job "Z_BELEGE_ABSAGEN" gefunden
  • Doppelklick auf den Jobnamen

SM37 3.jpg

Startbedingung

  • In aller Regel wird bei einem Job ein Datum/Uhrzeit eingetragen oder wenn man eine Job spontan starten will "sofort"
  • Nächste Ausführung ist hier am 26.10.2021 um 20:00.

SM37 4.jpg


  • Klick auf die Schaltfläche SM37 5.jpg.
  • Klick auf "Periodenwerte"

SM37 6.jpg

  • Man sieht der Job wurde täglich eingeplant

SM37 7.jpg

Freigabestatus Ein kann diverse Freigabestatus haben

  • Geplant (Er ist eingeplant)
  • Aktiv (Der Job wird gerade ausgeführt)
  • Fertig (Er ist bereits erfolgreich gelaufen)
  • Abgebrochen (Er wurde gestartet, aber ist mit einem Fehler abgebrochen)


Button Spool

  • Beim Klick auf den Button "Spool" sieht man bei fertigen Job den Spoolinhalt, sofern einer existiert

Einplanung Job wiederholen

  • Über das Menü "Job - Einplanung wiederholen" kann man einen fertigen oder abgebrochenen Job wiederholen, bzw. neu aufsetzen.

Jobs debuggen

Tabellen / Tabellenbeziehungen

Web-Links

Literatur