DATA:gv_timestamp TYPE timestampl.
DATA:gc_timestamp TYPE char27.
DATA:gv_dat TYPE d,
gv_tim TYPE t,
gv_tz TYPE ttzz-tzone,
gv_dst TYPE c LENGTH 1.
DATA:gv_user TYPE char12 VALUE 'DDIC'.
DATA:jobname TYPE tbtcjob-jobname,
jobcount TYPE tbtcjob-jobcount.
DATA: lv_line TYPE sy-tabix.
DATA: gv_line_c TYPE c LENGTH 3.
DATA: lt_tbtco TYPE TABLE OF tbtco.
DATA: lv_btcjob TYPE btcjob.
RANGES: r_vbeln FOR gs_out-vbeln ,
r_route FOR gs_out-route,
r_kunnr FOR gs_out-kunnr,
r_street FOR gs_out-street,
r_city FOR gs_out-city,
r_remark FOR gs_out-remark,
r_number FOR gs_out-tel_number,
r_name1 FOR gs_out-name_a.
LOOP AT pt_out INTO ls_addr.
r_vbeln-low = ls_addr-vbeln_dn.
r_vbeln-sign = 'I'.
r_vbeln-option = 'EQ'.
APPEND r_vbeln.
r_route-low = ls_addr-route.
r_route-sign = 'I'.
r_route-option = 'EQ'.
APPEND r_route.
r_kunnr-low = ls_addr-kunnr.
r_kunnr-sign = 'I'.
r_kunnr-option = 'EQ'.
APPEND r_kunnr.
r_street-low = ls_addr-street.
r_street-sign = 'I'.
r_street-option = 'EQ'.
APPEND r_street.
r_city-low = ls_addr-city.
r_city-sign = 'I'.
r_city-option = 'EQ'.
APPEND r_city.
r_remark-low = ls_addr-remark.
r_remark-sign = 'I'.
r_remark-option = 'EQ'.
APPEND r_remark.
r_number-low = ls_addr-tel_number.
r_number-sign = 'I'.
r_number-option = 'EQ'.
APPEND r_number.
r_name1-low = ls_addr-name1.
r_name1-sign = 'I'.
r_name1-option = 'EQ'.
APPEND r_name1.
ENDLOOP.
CONCATENATE 'ZSD1035_' sy-uname '_' '%' INTO lv_btcjob.
DO 200 TIMES.
CLEAR lt_tbtco.
SELECT * INTO TABLE lt_tbtco FROM tbtco WHERE jobname LIKE lv_btcjob
AND ( status = 'R' OR status = 'S' ).
DESCRIBE TABLE lt_tbtco LINES lv_line.
IF lv_line < 25.
EXIT.
ELSE.
WAIT UP TO 3 SECONDS.
ENDIF.
ENDDO.
gv_line = gv_line + 1.
gv_line_c = gv_line.
* gv_tz = 'UTC+8'.
* GET TIME STAMP FIELD gv_timestamp.
* gc_timestamp = gv_timestamp.
* CONVERT TIME STAMP gv_timestamp TIME ZONE gv_tz
* INTO DATE gv_dat TIME gv_tim DAYLIGHT SAVING TIME gv_dst.
* CONDENSE gc_timestamp.
CONCATENATE 'ZSD1035_' sy-uname '_' sy-datum sy-uzeit INTO jobname.
CONDENSE jobname.
* jobname+15(6) = gv_tim.
* Job open
CALL FUNCTION 'JOB_OPEN'
EXPORTING
delanfrep = ' '
jobgroup = ' '
jobname = jobname
* sdlstrtdt = sy-datum
* sdlstrttm = sy-uzeit
IMPORTING
jobcount = jobcount
EXCEPTIONS
cant_create_job = 01
invalid_job_data = 02
jobname_missing = 03.
IF sy-subrc = 0.
SUBMIT zsd_mass_change_dn_job
WITH s_vbeln IN r_vbeln[]
WITH s_route IN r_route[]
WITH s_kunnr IN r_kunnr[]
WITH s_street IN r_street[]
WITH s_city IN r_city[]
WITH s_remark IN r_remark[]
WITH s_number IN r_number[]
WITH s_name1 IN r_name1[]
AND RETURN
USER gv_user
VIA JOB jobname
NUMBER jobcount.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = jobcount
jobname = jobname
*下面两个字段可以设置后台作业的执行时间
* sdlstrtdt = sy-datum
* sdlstrttm = sy-uzeit
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 = 0.
ENDIF.
ENDIF.
ENDIF.