BeispieldokumentationAngaben 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.

Programmbeispiel

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

Syntax Syntax

  1. * 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.
    
Ende des Codes