Angaben zur Startzeit von Benutzern ermitteln
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.
Dieser Abschnitt enthält Beispiele für die Funktionsbausteine BP_START_DATE_EDITOR und JOB_CLOSE.
Syntax
* Data structure returned by BP_START_DATE_EDITOR
*
DATA STARTSPECS LIKE TBTCSTRT.
DATA START_MODIFY_FLAG LIKE BTCH0000-INT4.
*
* BP_START_DATE_EDITOR: Present user with pop-up window
* requesting specifications for the job start. The user can
* select from
* - immediate start,
* - start time and date and last time and date,
* - start after event,
* - start after activation of a new operating mode,
* - start after predecessor job
* - start on a certain workday of the month, counted from the
* start or end of the month
* - specify how a job is to be handled if the start date falls
* on a holiday.
*
* All start date options are selectable by the user. To limit the
* selection available to the user, you should program your own
* input window. Or, you can evaluate TBTCSTRT-STRTDTTYP to see
* if the user chose an appropriate start specification (see
* below).
*
* BP_START_DATE_EDITOR checks for plausibility and other errors in
* user specifications and issues an error if any problems exist.
* Use only the TBTCSTRT fields shown in the example below. Other
* fields are reserved for internal use only. Do not set TBTCSTRT
* fields directly.
*
CALL FUNCTION 'BP_START_DATE_EDITOR'
EXPORTING
STDT_DIALOG = BTC_YES " Module in interactive mode
STDT_OPCODE = BTC_EDIT_STARTDATE " Edit mode
STDT_INPUT = STARTSPECS " Table for user selections
STDT_TITLE = 'Title' " Title for pop-up screen
IMPORTING
STDT_OUTPUT = STARTSPECS " User selections
STDT_MODIFY_TYPE = START_MODIFY_FLAG
" Flag: did user change start
* " specifications? Values:
" - BTC_STDT_MODIFIED,
" user did change specs
" - BTC_STDT_NOT_MODIFIED,
" user did not change specs
EXCEPTIONS
OTHERS = 99.
*
* Flag for specifying immediate start in JOB_CLOSE: For the
* immediate-start case only, you must set a flag for communicating
* the user selection to JOB_CLOSE. In all other cases, simply
* pass the values returned by BP_START_DATE_EDITOR to JOB_CLOSE.
* Those that were not set by the user have the value SPACE and
* have no effect in JOB_CLOSE.
*
* Setting all JOB_CLOSE parameters is only permissible when you
* use BP_START_DATE_EDITOR. Otherwise, you should set only the
* required parameters in your call to JOB_CLOSE.
*
DATA: STARTIMMEDIATE LIKE BTCH0000-CHAR1.
CASE STARTSPECS-STARTDTTYP. " Possible types are listed below.
WHEN BTC_STDT_IMMEDIATE. " User selected immediate start.
STARTIMMEDIATE = 'X'.
WHEN BTC_STDT_DATETIME. " User entered start date and time
WHEN BTC_STDT_EVENT. " User entered event and possibly
" argument OR user selected start on
" activation of a particular operation
" mode (job start event driven in this
" case as well).
<Optional error processing, if you wish to prevent user from
scheduling a job dependent upon an event>
WHEN BTC_STDT_AFTERJOB. " User entered predecessor job.
<Optional error processing, if you wish to prevent user from
scheduling a job dependent upon a predecessor job>
WHEN BTC_STDT_ONWORKDAY " User selected a job start on a
" particular workday of the month.
ENDCASE.
*
* Use the start specifications provided by the user in JOB_CLOSE.
*
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 " Non-zero values in
PRDHOURS = STARTSPECS-PRDHOURS " any PRD* field mean
PRDMINS = STARTSPECS-PRDMINS " that a startdate,
PRDMONTHS = STARTSPECS-PRDMONTHS " starttime job is to
PRDWEEKS = STARTSPECS-PRDWEEKS " be repeated
" periodically.
TARGETSYSTEM = STARTSPECS-INSTNAME
* AT_OPMODE = Omit this parameter if you obtain user
" specifications. It’s set automatically by
" BP_START_DATE_EDITOR.
AT_OPMODE_PERIODIC = STARTSPECS-PERIODIC " Set with generic
" periodic flag in
" table TBTCSTRT.
PRED_JOBNAME = STARTSPECS-PREDJOB
PRED_JOBCOUNT = STARTSPECS-PREDJOBCNT
PREDJOB_CHECKSTAT = STARTSPECS-CHECKSTAT
EVENT_ID = STARTSPECS-EVENTID
EVENT_PARAM = STARTSPECS-EVENTPARM
EVENT_PERIODIC = STARTSPECS-PERIODIC " Set with generic
" periodic flag in
" table TBTCSTRT.
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 are scheduled
" automatically for periodic execution if
" PRDMONTHS is set.
IMPORTING
JOB_WAS_RELEASED = JOB_RELEASED
EXCEPTIONS
OTHERS = 99.