*&---------------------------------------------------------------------*
*& Report Z_BARRY_SET_JOB *
*& *
*&---------------------------------------------------------------------*
*& 设置后台Job,更多功能请看函数组:BTCH *
*&---------------------------------------------------------------------*
REPORT z_barry_set_job .
DATA: jobcount LIKE tbtcjob-jobcount.
DATA: abort TYPE c,
finish TYPE c,
prelim TYPE c,
ready TYPE c,
run TYPE c,
sched TYPE c.
PARAMETERS: p_name LIKE tbtcjob-jobname OBLIGATORY DEFAULT 'Z_BARRY_TEST_JOB',
p_date LIKE sy-datum OBLIGATORY,
p_time LIKE sy-uzeit OBLIGATORY.
SELECT-OPTIONS s_rept FOR sy-repid NO INTERVALS OBLIGATORY .
START-OF-SELECTION.
CALL FUNCTION 'JOB_OPEN' "定义一个Job
EXPORTING
jobname = p_name
IMPORTING
jobcount = jobcount "Job id
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT s_rept .
CALL FUNCTION 'JOB_SUBMIT' "Scheduled 这个Job
EXPORTING
authcknam = sy-uname
jobcount = jobcount
jobname = p_name
report = s_rept-low
* VARIANT = 'TEST'
EXCEPTIONS
bad_priparams = 1
bad_xpgflags = 2
invalid_jobdata = 3
jobname_missing = 4
job_notex = 5
job_submit_failed = 6
lock_failed = 7
program_missing = 8
prog_abap_and_extpg_set = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'JOB_CLOSE' "Release 这个Job
EXPORTING
jobcount = jobcount
jobname = p_name
sdlstrtdt = p_date
sdlstrttm = p_time
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 = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'SHOW_JOBSTATE'
EXPORTING
jobcount = jobcount
jobname = p_name
IMPORTING
aborted = abort
finished = finish
preliminary = prelim
ready = ready
running = run
scheduled = sched
EXCEPTIONS
jobcount_missing = 1
jobname_missing = 2
job_notex = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
WRITE : / 'Canceled :' , abort ,
/ 'Finished :' , finish,
/ 'Scheduled Temporarily :' , prelim,
/ 'Ready for Execution :' , ready,
/ 'Active :' , run,
/ 'Scheduling Released :' , sched.