Anfang des Inhaltsbereichs

Prozessdokumentation Job-Status anzeigen: SHOW_JOBSTATE  Dokument im Navigationsbaum lokalisieren

Sie können den Status eines Jobs mit dem Funktionsbaustein SHOW_JOBSTATE feststellen. Sie geben diesem Funktionsbaustein einen Job-Namen und eine Job-Nummer an. Er gibt einen der sechs möglichen Status des Jobs zurück.

Im folgenden Beispiel wird nach Jobs gesucht, die einen bestimmten Report oder ein externes Programm enthalten. Hierfür wird BP_FIND_JOBS_WITH_PROGRAM verwendet. Anschließend wird SHOW_JOBSTATE verwendet, um den Status aller gefundenen Jobs zu prüfen. Das Programm prüft die vom Funktionsbaustein zurückgegebenen Status mit dem Schlüsselwort IF und listet sie auf. Zur Darstellung der verschiedenen Status werden Ikonen verwendet.

REPORT EXAMPLE.
INCLUDE LBTCHDEF. " Hintergrundverarbeitung der Definitionen.
INCLUDE <LIST>. " Ikonen, Zeilen u.a. Definitionen auflisten.

* Datendeklaration: BP_FIND_JOBS_WITH_PROGRAM
DATA SEL_JOBLIST LIKE TBTCJOB OCCURS 100 WITH HEADER LINE.
" Interne Tabelle für gefundene Jobs.

* Datendeklaration: SHOW_JOBSTATE
DATA: " Mögliche Jobstatus.
ABORTED TYPE C,
FINISHED TYPE C,
PRELIMINARY TYPE C,
READY TYPE C,
RUNNING TYPE C,
SCHEDULED TYPE C.

* Jobs suchen, die das ABAP-Programm RSCRIDX4 enthalten.
* Programm- und Variantenname in Großbuchstaben. Es können auch
* Jobs gesucht werden, die ein externes Programm ausführen.

CALL FUNCTION 'BP_FIND_JOBS_WITH_PROGRAM'
EXPORTING
ABAP_PROGRAM_NAME = 'RSCRIDX4'
ABAP_VARIANT_NAME = 'V_ALL'
EXTERNAL_PROGRAM_NAME = ' '

" Im nicht-interaktiven Modus kann mit einem
" Programmnamen und/oder einem Variantennamen
" gesucht werden. Nichtangabe dieser "Spezifikationen führt zu "PROGRAM_SPECIFICATION_MISSING.
DIALOG = BTC_NO
" BTC_NO: Nicht-interaktiver Modus. Mindestens
" einen Programmnamen im Aufruf angeben.
" BTC_YES: Benutzer gibt Programmnamen
" und Variante ein.
TABLES
JOBLIST = SEL_JOBLIST
" Interne Tabelle mit Format TBTCJOB, die alle
" gefundenen Jobs enthält.
EXCEPTIONS
NO_JOBS_FOUND = 1
PROGRAM_SPECIFICATION_MISSING = 2
INVALID_DIALOG_TYPE = 3
JOB_FIND_CANCELED = 4
OTHERS = 5.

IF SY-SUBRC <> 0.
<Error handling>
ENDIF.

* Listen-Header angeben.
WRITE: / 'Status', 9 'Job Name', 25 'Job Number'.
ULINE AT /1(85).

* Schleife durch von BP_FIND_JOBS_WITH_PROGRAM gefundene Jobs.
LOOP AT SEL_JOBLIST.

CALL FUNCTION 'SHOW_JOBSTATE'
EXPORTING
JOBCOUNT = SEL_JOBLIST-JOBCOUNT
JOBNAME = SEL_JOBLIST-JOBNAME
" Zu prüfenden Job kennzeichnen. Name
" und Nummer sind erforderlich.
IMPORTING
" Mögliche Status. Status des Jobs wird auf
" Wert ‘X’ festgelegt.
ABORTED = ABORTED
" Job abnormal beendet.
FINISHED = FINISHED
" Job erfolgreich abgeschlossen.
PRELIMINARY = PRELIMINARY
" Job kann nicht gestartet werden: Job
" eingeplant, jedoch noch nicht freigegeben
" oder Job ohne Startbedingung eingeplant.
READY = READY
" Job eingeplant, freigegeben, Startbedingung
" erfüllt, Job jedoch noch nicht gestartet.
RUNNING = RUNNING
" Job wird verarbeitet.
SCHEDULED = SCHEDULED
" Job eingeplant und freigegeben, wartet auf
" Erfüllung der Startbedingung.

EXCEPTIONS
JOBCOUNT_MISSING = 1
JOBNAME_MISSING = 2
JOB_NOTEX = 3
OTHERS = 4.

IF SY-SUBRC <> 0.
<Error handling>
ENDIF.

* Den Status des Jobs bestimmen, der gerade von
* SHOW_JOBSTATE geprüft wurde. Statusikone zuordnen und in
* Liste schreiben.

IF ABORTED = 'X'.
WRITE: /3 ICON_FAILURE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF FINISHED = 'X'.
WRITE: /3 ICON_CHECKED AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF PRELIMINARY = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF READY = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF RUNNING = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF SCHEDULED = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ENDIF.
ENDLOOP.