Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SUBMIT REPORT AS A BACKGROUND JOB

deepak_kumar11
Participant
0 Kudos

Hi all,

I am executing one report in foreground in that report i want to submit one report which should be executed in background only. how it is possible to execute 2nd report in <b>background mode</b> only.

Regards

deepak

1 ACCEPTED SOLUTION

Former Member
0 Kudos

If you want to create a job to run in the background from an ABAP, look at function group BTCH , particularly FM simple_batch_job_submit.

***************************************

Check this code -

*Submit report as job(i.e. in background)

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'

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 ne 0.

"error processing

endif.

  • Insert process into job

SUBMIT zreport and return

with p_param1 = 'value'

with p_param2 = 'value'

user sy-uname

via job jobname

number jobcount.

if sy-subrc > 0.

"error processing

endif.

  • Close job

starttime-sdlstrtdt = sy-datum + 1.

starttime-sdlstrttm = '220000'.

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

prddays = 1

prdhours = 0

prdmins = 0

prdmonths = 0

prdweeks = 0

sdlstrtdt = starttime-sdlstrtdt

sdlstrttm = starttime-sdlstrttm

strtimmed = starttimeimmediate

targetsystem = host

exceptions

cant_start_immediate = 01

invalid_startdate = 02

jobname_missing = 03

job_close_failed = 04

job_nosteps = 05

job_notex = 06

lock_failed = 07

others = 99.

if sy-subrc eq 0.

"error processing

endif.

URL: http://www.sapdevelopment.co.uk/reporting/rep_submit.htm

4 REPLIES 4

Former Member
0 Kudos

If you want to create a job to run in the background from an ABAP, look at function group BTCH , particularly FM simple_batch_job_submit.

***************************************

Check this code -

*Submit report as job(i.e. in background)

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'

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 ne 0.

"error processing

endif.

  • Insert process into job

SUBMIT zreport and return

with p_param1 = 'value'

with p_param2 = 'value'

user sy-uname

via job jobname

number jobcount.

if sy-subrc > 0.

"error processing

endif.

  • Close job

starttime-sdlstrtdt = sy-datum + 1.

starttime-sdlstrttm = '220000'.

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

prddays = 1

prdhours = 0

prdmins = 0

prdmonths = 0

prdweeks = 0

sdlstrtdt = starttime-sdlstrtdt

sdlstrttm = starttime-sdlstrttm

strtimmed = starttimeimmediate

targetsystem = host

exceptions

cant_start_immediate = 01

invalid_startdate = 02

jobname_missing = 03

job_close_failed = 04

job_nosteps = 05

job_notex = 06

lock_failed = 07

others = 99.

if sy-subrc eq 0.

"error processing

endif.

URL: http://www.sapdevelopment.co.uk/reporting/rep_submit.htm

Former Member
0 Kudos

This is the Basic code to Achieve that.

Call Function 'JOB_OPEN'

SUBMIT RSBDCBTC

via background Job <Job info>

With QIE = <QID Returned by BDC_OPEN_Group FM>

AND RETURN.

Call Function 'JOB_CLOSE'

**********************

2) Also go through this

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.

lv_job_name = 'Z_BGPROGRAM'.

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.

" submit job with all the selection screen params...

SUBMIT (lv_job_name)

WITH applfile = applfile " these are the parameters of the background program

WITH p_lines = p_lines

USER syst-uname " you must use this

VIA JOB lv_job_name NUMBER lv_job_nr AND RETURN.

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 i162(00) WITH

'An error occured while closing the background job.'.

STOP.

ENDIF.

ENDIF.

ENDIF.

SKIP 1.

WRITE: / 'Background process', lv_job_name , 'called successfully' NO-GAP.

WRITE: / 'You can check the job in transaction SM37'.

Thanks

0 Kudos

Hi,

Thanx

will this job will be executed immediately .

regards

deepak

Former Member
0 Kudos

strtimmed = 'X' in function module JOB_CLOSE will do for immmediate start