* JOB_OPEN
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = jobname
IMPORTING
jobcount = jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
check sy-subrc = 0.
* JOB_SUBMIT
SUBMIT (projectId) " JOB执行的工程名
WITH p_keino EQ lw_zkeiyakuno " PARAM 名
WITH p_rireno EQ lw_rirekcunt " PARAM 名
VIA JOB jobname
NUMBER jobcount
AND RETURN.
* JOB_CLOSE
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = jobcount
jobname = jobname
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9.
*---------- JOB处理的一些后续处理--------------------*
* JOB执行后的状态确认
DO 10 TIMES.
WAIT UP TO 2 SECONDS.
CALL FUNCTION 'BP_JOB_CHECKSTATE'
EXPORTING
dialog = 'N'
jobcount = jobcount
jobname = jobname
IMPORTING
actual_status = actual_status
EXCEPTIONS
checking_of_job_has_failed = 1
correcting_job_status_failed = 2
invalid_dialog_type = 3
job_does_not_exist = 4
no_check_privilege_given = 5
ready_switch_too_dangerous = 6
OTHERS = 7.
IF sy-subrc <> 0.
e_return = 8. "JOBSTATUS取得失敗
e_message = text-008.
EXIT.
ENDIF.
IF ( actual_status = 'F' )
OR ( actual_status = 'A' ).
EXIT.
ENDIF.
ENDDO.
* JOB LOG的取得
CALL FUNCTION 'BP_JOBLOG_READ'
EXPORTING
client = sy-mandt
jobcount = jobcount
jobname = jobname
TABLES
joblogtbl = joblogtbl
EXCEPTIONS
cant_read_joblog = 1
jobcount_missing = 2
joblog_does_not_exist = 3
joblog_is_empty = 4
joblog_name_missing = 5
jobname_missing = 6
job_does_not_exist = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.