data
: lv_job_name
like
tbtco
-jobname
, "作業名
lv_job_nr
like
tbtco
-jobcount
, "作業號
lv_job_released
type c,
lv_job_start_sofort
type c,
lv_print_parameters
type
pri_params.
data
:lt_rspar
type
table
of rsparams,
lw_line
like
line
of lt_rspar.
"如果是要傳給parameter 根據需求設定螢幕引數
lw_line-selname
= 'p_monat'
.lw_line-kind
= 'p'
.lw_line-
sign
= 'i'
.lw_line-option
= 'eq'
.lw_line-low
= p_monat.
lw_line
to lt_rspar.
"傳值給 select-option
lw_line-selname
= 's_werks'
.lw_line-kind
= 's'
.lw_line-
sign
= 'i'
.lw_line-option
= 'eq'
.lw_line-low
= '1000'.
lw_line
to lt_rspar.
lw_line
to lt_rspar.
"job 名稱
lv_job_name
= job_name
."開啟job 通過job name 獲得job號
call
function
'job_open'
exporting
jobname
= lv_job_name
importing
jobcount
= lv_job_nr
exceptions
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
others = 4
.if
syst-subrc = 0
."呼叫需要跑job的程式
submit
(lv_job_name)
with
selection-table
lt_rspar
user syst-uname
" mandatory
via job lv_job_name
number
lv_job_nr
and
return
."執行結束
關閉job
if sy-subrc = 0
.call
function
'job_close'
exporting
jobcount
= lv_job_nr
jobname
= lv_job_name
strtimmed
= 'x'
importing
job_was_released
= lv_job_released
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
syst-subrc
<> 0.
message
'關閉後台作業出錯'
type
'i'.
else
.message
'後台job開始執行'
type
'i'.
endif
.endif
.endif.
附: job相關系統表:tbtc*
job的狀態: 可以使用系統函式檢視
bdl_read_job_status 或者是自己去表 tbtco 中查詢根據status 字段判斷是否完成 f 就是結束 a 出錯終止 r 是執行中
job日誌檢視:系統中的日誌好像是沒有存放在系統表而是檔案中,可以通過函式 bp_joblog_read 獲取,傳入job名和job編號就可以獲得日誌資訊。
"獲取失敗日誌
data
:lt_log
type
table
of tbtc5
with
header
line.
call
function
'bp_joblog_read'
exporting
client
= sy-mandt
jobcount
= lw_job-jobcount
jobname
= lw_job-jobname
tables
joblogtbl
= lt_log
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.
message
id sy-msgid
type
sy-msgty
number
sy-msgno
with
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
在Linux中後台執行程式
由於網路等原因,當ssh鏈結斷開後,該會話中的程序會收到核心發出的sig hup 掛機 訊號,預設情況下程式會結束執行。所以想要長期穩定地執行乙個程序,可以將其放入後台。一種簡單方法是用shell的作業控制機制來實現。執行python test.py時,只需在shell中輸入以下命令 nohup p...
在iOS中後台執行程式
ios預設是不支援程式的後台執行的,但是也提供了一些途徑來使得程式能後在切入後台時也正常工作。其中拋開常見的後台 等擦邊球手段,比較正規的就是聲請乙個後台任務,但是任務的執行時間被限制為10分鐘,並且在10分鐘之後再次聲請也不會成功。本文採用的手段就是在聲請10分鐘的任務時間到達時利用乙個while...
Python 後台啟動程式
在python開發工作中我們會遇上乙個程式或者指令碼執行時間過長的問題,在linux程式下操作時間超過180分鐘會自動退出,這樣就會中斷我們的程式,前功盡棄的感覺真的難受 那有什麼好的解決方案呢?我們可以 方案1,將程式或者介面部署到nginx伺服器上,這樣程式進入listening 持續監聽 狀態...