report z_test_submit.
*---1. Submit
submit ztest.
write: '本程序已执行'. "此句不会执行
*---2. Submit and return
submit ztest and return.
write: '本程序已执行'. "此句会执行
*---3. 带Parameter的
submit ztest with p_name = 'Value1'.
*---4. 带Select-options的
data: seltab type table of rsparams,
seltab_wa like line of seltab.
tables: makt.
select-options: s_name for makt-maktx .
seltab_wa-selname = 'S_NAME'.
seltab_wa-sign = 'I'.
seltab_wa-option = 'EQ'.
select maktx as low into corresponding fields of table s_name up to 5 rows from makt.
loop at s_name.
seltab_wa-low = s_name-low.
append seltab_wa to seltab.
endloop.
(或: seltab_wa-selname = 'S_BUKRS'.
seltab_wa-sign = 'I'.
seltab_wa-option = 'BT'."注意这里是BT,否则用high字段时会不正确
seltab_wa-low = '1000'.
seltab_wa-high = '3700'.
append seltab_wa to seltab. )
submit ztest with selection-table seltab via selection-screen.
(或: submit ztest with p_kunnr = i_kunnr
with selection-table seltab and return."VIA SELECTION-SCREEN,不显示被调用程序的选择屏幕 )
*---5. 带变式的
submit ztest using selection-set 'V1'. "该变式'V1'在被调用函数上定义
*---6. Submit为后台调用,执行过程看不见,就根没执行一样,但实际上执行了。
data: jobname like tbtcjob-jobname value 'TRANSFER TRANSLATION'.
data: jobcount like tbtcjob-jobcount,
host like msxxlist-host.
data: begin of starttime.
include structure tbtcstrt. "该结构中相关多种执行时间设置
data: end of starttime.
data: starttimeimmediate like btch0000-char1.
* Job open
call function 'JOB_OPEN' "从SM37中可以看到该作业
exporting
jobname = jobname
importing
jobcount = jobcount
exceptions
cant_create_job = 01
invalid_job_data = 02
jobname_missing = 03.
if sy-subrc = 0.
* Insert process into job
submit ztest via job jobname
number jobcount
and return.
endif.
* Close job
starttime-sdlstrtdt = sy-datum .
starttime-sdlstrttm = sy-uzeit + 300. "5分钟后执行,不准,会有时间延迟
call function 'JOB_CLOSE'
exporting
event_id = starttime-eventid
event_param = starttime-eventparm
event_periodic = starttime-periodic
jobcount = jobcount
jobname = jobname
* laststrtdt = starttime-laststrtdt
* laststrttm = starttime-laststrttm
sdlstrtdt = starttime-sdlstrtdt "开始日期
sdlstrttm = starttime-sdlstrttm "开始时间
* strtimmed = starttimeimmediate
* 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
others = 8.
if sy-subrc eq 0.
"error processing
endif.
write 'Pls Wait 300s'. *---以下是被调用程序
report ztest.
tables : makt.
parameters : p_name type string.
select-options: s_name for makt-maktx.
message '被调用程序执行!' type 'I'.
write: p_name.
loop at s_name.
write:/ s_name-low.
endloop.
*---以下为测试后台Submit所用
*tables: zstu.
*select single * from zstu where sno = '1'.
*zstu-sname = 'SXL'.
*modify zstu.
*commit work.
评论