Anfang des Inhaltsbereichs

Programmbeispiel: Mit JOB_CLOSE auf Vorgänger-Job warten  Dokument im Navigationsbaum lokalisieren

* Start bei erfolgreicher Beendigung des Vorgänger-Jobs. In
* diesem Beispiel wählt der Benutzer den Vorgänger-Job aus
* einer Job-Liste aus. Die Jobs werden mit BP_JOB_SELECT
* ausgewählt und mit BP_JOBLIST_PROCESSOR zur Auswahl
* angezeigt.
*
* Wichtig: Wenn Sie einen Vorgänger-Job direkt in Ihrem Programm
* angeben (nicht interaktiv gewählt), achten Sie darauf, daß
* der Vorgänger-Job den Status Eingeplant oder Freigegeben
* aufweist, wenn Sie den Nachfolger-Job einplanen. Anderenfalls
* schlägt die Einplanung des Nachfolger-Jobs fehl. Das heißt,
* ein Job, der aktiv oder bereits abgeschlossen ist, kann nicht
* als Vorgänger-Job angegeben werden.
*
* Datendeklarationen: BP_JOB_SELECT und BP_JOBLIST_PROCESSOR
*
DATA JSELECT LIKE BTCSELECT.
DATA SEL_JOBLIST LIKE TBTCJOB OCCURS 100 WITH HEADER LINE.
DATA SELECTED_JOB LIKE TBTCJOB

* Job-Liste wie mit Transaktion zur Hintergrundverwaltung
* (SM37) generieren.

* Beispielauswahlkriterien
*
JSELECT-JOBNAME = 'NAME OF JOB'.
JSELECT-JOBCOUNT = '<Job-Nummer>'.
JSELECT-USERNAME = SY-UNAME.

CALL FUNCTION 'BP_JOB_SELECT'
EXPORTING
JOBSELECT_DIALOG = BTC_YES " Benutzer Liste anzeigen
JOBSEL_PARAM_IN = JSELECT " Standardkriterien für
" Job-Auswahl
IMPORTING
JOBSEL_PARAM_OUT = JSELECT " Benutzerkriterien für
" Job-Auswahl
TABLES
JOBSELECT_JOBLIST = SEL_JOBLIST
EXCEPTIONS
INVALID_DIALOG_TYPE = 1
JOBNAME_MISSING = 2
NO_JOBS_FOUND = 3
SELECTION_CANCELED = 4
USERNAME_MISSING = 5
OTHERS = 99.

*
* Der Benutzer muß einen Job aus der Liste auswählen. Der
* ausgewählte Job wird als Vorgänger-Job verwendet.
*
call function 'BP_JOBLIST_PROCESSOR'
exporting
joblist_opcode = btc_joblist_select
" Start im Modus, in dem Benutzer
" einen Job aus der Liste auswählen
" kann. Der ausgewählte Job wird im
" Parameter joblist_sel_job
" zurückgegeben.
joblist_refr_param = jselect
" Parameter für Job-Auswahl des
" Benutzers für Refresh-Funktion.
importing
joblist_sel_job = selected_job
" Gibt den Job zurück, den der Benutzer
" aus der Liste ausgewählt hat.
tables
joblist = sel_joblist
" Eingabe von BP_JOBLIST_SELECT
exceptions
invalid_opcode = 1
joblist_is_empty = 2
joblist_processor_canceled = 3
others = 4.
*
* Job einplanen, dabei vom Benutzer gewählten Vorgänger verwenden.
*
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
JOBCOUNT = SELECTED_JOB-JOBCOUNT
" Job-ID aus BP_JOBLIST_PROCESSOR
JOBNAME = SELECTED_JOB-JOBNAME
" Job-ID aus BP_JOBLIST_PROCESSOR
PREDJOB_CHECKSTAT = 'X' " Job nur starten, wenn
" Vorgänger-Job
" erfolgreich beendet
" wurde.
PRED_JOBCOUNT = SEL_JOBLIST-JOBCOUNT
" ID des Vorgänger-Jobs,
" aus BP_JOB_SELECT.
PRED_JOBNAME = SEL_JOBLIST-JOBNAME
IMPORTING
JOB_WAS_RELEASED = JOB_RELEASED
" Prüfung: wurde Job
" freigegeben?
EXCEPTIONS
CANT_START_IMMEDIATE = 1
INVALID_STARTDATE = 2
JOBNAME_MISSING = 3
JOB_CLOSE_FAILED = 4
JOB_NOSTEPS = 5
JOB_NOTEX = 6
LOCK_FAILED = 7
OTHERS = 99.