Anfang des Inhaltsbereichs

Angaben zur Startzeit von Benutzern ermitteln   Dokument im Navigationsbaum lokalisieren

Mit dem Funktionsbaustein BP_START_DATE_EDITOR können die Benutzer angeben, wann und wie ein Job gestartet werden soll. Dieser Funktionsbaustein bietet die gleichen Optionen wie die Standardeinplanungstransaktion: Sofort-Start, Startfenster, Vorgänger-Job, Ereignis usw.

Programmbeispiel

Dieser Abschnitt enthält Beispiele für die Funktionsbausteine BP_START_DATE_EDITOR und JOB_CLOSE.

* Von BP_START_DATE_EDITOR zurückgegebene Datenstruktur
*
DATA STARTSPECS LIKE TBTCSTRT.
DATA START_MODIFY_FLAG LIKE BTCH0000-INT4.
*
* BP_START_DATE_EDITOR: Fordert Benutzer in einem Dialogfenster
* auf, Angaben zum Job-Start zu machen. Der Benutzer hat folgende
* Optionen:
* - Sofort-Start
* - Startzeit und -datum sowie letzte Zeit und letztes Datum
* - Start nach Ereignis
* - Start nach Aktivierung einer neuen Betriebsart
* - Start nach Vorgänger-Job
* - Start an einem bestimmten Arbeitstag des Monats, ab
* Monatsanfang oder Monatsende
* - Vorgehensweise, falls Start auf einen Feiertag fällt
*
* Der Benutzer kann alle Optionen zum Starttermin wählen. Zur
* Auswahlbegrenzung sollten Sie Ihr eigenes Eingabefenster
* programmieren. Sie können auch TBTCSTRT-STRTDTTYP auswerten,
* um zu ermitteln, ob der Benutzer eine passende Startangabe
* gewählt hat (siehe unten).
*
* BP_START_DATE_EDITOR überprüft die Angaben des Benutzers auf
* mögliche Fehler oder Widersprüchlichkeiten und gibt eventuell
* eine Fehlermeldung aus.

* Nur die Felder TBTCSTRT im unten gezeigten Beispiel sollten
* verwendet werden, da andere Felder für den internen Gebrauch
* reserviert sind. Setzen Sie die Felder TBTCSTRT nicht direkt.

CALL FUNCTION 'BP_START_DATE_EDITOR'
EXPORTING
STDT_DIALOG = BTC_YES " Baustein im interaktiven
" Modus
STDT_OPCODE = BTC_EDIT_STARTDATE " Bearbeitungsmodus
STDT_INPUT = STARTSPECS " Tabelle für
" Benutzerauswahl
STDT_TITLE = 'Titel' " Titel für Dialogfenster
IMPORTING
STDT_OUTPUT = STARTSPECS " Benutzerauswahl
STDT_MODIFY_TYPE = START_MODIFY_FLAG
" Flag: Hat Benutzer Angaben
" geändert? Werte:
" - BTC_STDT_MODIFIED,
" Änderungen vorgenommen
" - BTC_STDT_NOT_MODIFIED,
" keine Änderungen
" vorgenommen
EXCEPTIONS
OTHERS = 99.
*
* Flag zur Angabe des Sofort-Starts in JOB_CLOSE: Für den
* Sofort-Start müssen Sie ein Flag setzen, um die Benutzerauswahl
* an JOB_CLOSE zu übermitteln. In allen anderen Fällen müssen
* Sie nur die von BP_START_DATE_EDITOR zurückgegebenen Werte an
* JOB_CLOSE übergeben.
* Die vom Benutzer nicht gesetzten Parameter haben den Wert SPACE
* und haben keine Auswirkung auf JOB_CLOSE.
*
* Alle JOB_CLOSE-Parameter können nur zusammen mit
* BP_START_DATE_EDITOR gesetzt werden. Andernfalls
* sollten Sie nur die erforderlichen * Parameter in
* Ihrem Aufruf von JOB_CLOSE setzen.
*
DATA: STARTIMMEDIATE LIKE BTCH0000-CHAR1.

CASE STARTSPECS-STARTDTTYP. " Optionen werden unten aufgelistet.
WHEN BTC_STDT_IMMEDIATE. " Benutzerwahl: Sofort-Start.
STARTIMMEDIATE = 'X'.
WHEN BTC_STDT_DATETIME. " Benutzerangabe: Startdatum und
" Startuhrzeit
WHEN BTC_STDT_EVENT. " Benutzer hat Ereignis und eventuell
" Argument angegeben, ODER Benutzer
" hat Start bei Aktivierung einer
" bestimmten Betriebsart gewählt
" (Job-Start auch in diesem Fall
" ereignisgesteuert).
<Optionale Fehlerverarbeitung, wenn Sie verhindern möchten,
daß der Benutzer einen Job ereignisabhängig einplant>
WHEN BTC_STDT_AFTERJOB. " Benutzerangabe: Vorgänger-Job.
< Optionale Fehlerverarbeitung, wenn Sie verhindern möchten,
daß der Benutzer einen Job nach Vorgänger einplant>
WHEN BTC_STDT_ONWORKDAY " Benutzerangabe: Job-Start an einem
" bestimmten Arbeitstag des Monats.
ENDCASE.
*
* Verwendung der vom Benutzer in JOB_CLOSE gemachten Startangaben.
*
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
JOBNAME = JOBNAME
JOBCOUNT = JOBNUMBER
STRTIMMED = STARTIMMEDIATE
SDLSTRTDT = STARTSPECS-SDLSTRTDT
SDLSTRTTM = STARTSPECS-SDLSTRTTM
LASTSTRTDT = STARTSPECS-LASTSTRTDT
LASTSTRTTM = STARTSPECS-LASTSTRTTM
PRDDAYS = STARTSPECS-PRDDAYS " Werte anders als Null
PRDHOURS = STARTSPECS-PRDHOURS " in PRD*-Feldern
PRDMINS = STARTSPECS-PRDMINS " bedeuten, daß ein
PRDMONTHS = STARTSPECS-PRDMONTHS " Startdatum/Startzeit-
PRDWEEKS = STARTSPECS-PRDWEEKS " Job periodisch wieder-
" holt werden soll.
TARGETSYSTEM = STARTSPECS-INSTNAME
* AT_OPMODE = Diesen Parameter weglassen, wenn der Benutzer
" Angaben zur Startzeit gemacht hat. Wird
" automatisch von BP_START_DATE_EDITOR gesetzt.
AT_OPMODE_PERIODIC = STARTSPECS-PERIODIC " Mit generischem
" Flag in Tabelle
" TBTCSTRT setzen.
PRED_JOBNAME = STARTSPECS-PREDJOB
PRED_JOBCOUNT = STARTSPECS-PREDJOBCNT
PREDJOB_CHECKSTAT = STARTSPECS-CHECKSTAT
EVENT_ID = STARTSPECS-EVENTID
EVENT_PARAM = STARTSPECS-EVENTPARM
EVENT_PERIODIC = STARTSPECS-PERIODIC " Mit generischem
" Flag in Tabelle
" TBTCSTRT setzen.
CALENDAR_ID = STARTSPECS-CALENDARID
STARTDATE_RESTRICTION = STARTSPECS-PRDBEHAV
START_ON_WORKDAY_NOT_BEFORE = STARTSPECS-NOTBEFORE
START_ON_WORKDAY_NR = STARTSPECS-WDAYNO
WORKDAY_COUNT_DIRECTION = STARTSPECS-WDAYCDIR
" START_ON_WORKDAY Jobs werden automatisch zur
" periodischen Ausführung eingeplant, wenn
" PRDMONTHS gesetzt wurde.
IMPORTING
JOB_WAS_RELEASED = JOB_RELEASED
EXCEPTIONS
OTHERS = 99.