Application Development and Automation 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: 
Read only

submitting background jobs using an excecutable program

Former Member
0 Likes
4,534

Hi all

Would anyone give an example program to submit jobs in background using job_open, job_submit, job_close F.M's,

please dont give complex coded program, easily understandable code with some useful comments will be apprecieated.

Thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
942

Create a job using job_open

  • Create your job with JOB_OPEN. The module returns a unique job

  • number. Together with the jobname, this number identifies the

  • job. Other parameters are available, but are not required.

JOBNAME = 'Freely selectable name for the job(s) you create'.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

JOBNAME = JOBNAME

IMPORTING

JOBCOUNT = JOBNUMBER

EXCEPTIONS

CANT_CREATE_JOB = 01

INVALID_JOB_DATA = 02

JOBNAME_MISSING = 03

OTHERS = 99.

IF SY-SUBRC > 0.

<Error processing>

ENDIF.

Adding job step

  • Add a job step: ABAP program

CALL FUNCTION 'JOB_SUBMIT'

EXPORTING

AUTHCKNAM = SY-UNAME " Runtime authorizations

" user

JOBCOUNT = JOBNUMBER " Value from JOB_OPEN

JOBNAME = JOBNAME " Value from JOB_OPEN

REPORT = 'REPORT' " Report to be run

VARIANT = 'VARIANT' " Variant to use with

" report

PRIPARAMS = USER_PRINT_PARAMS " User printing options

ARCPARAMS = USER_ARC_PARAMS " User archiving options

" Both sets of options

" come from

" GET_PRINT_PARAMETERS

EXCEPTIONS

BAD_PRIPARAMS = 01

INVALID_JOBDATA = 02

JOBNAME_MISSING = 03

JOB_NOTEX = 04

JOB_SUBMIT_FAILED = 05

LOCK_FAILED = 06

PROGRAM_MISSING = 07

PROG_ABAP_AND_EXTPG_SET = 08

OTHERS = 99.

IF SY-SUBRC > 0.

<Error processing>

ENDIF.

**Closing job

  • Submit job for processing: immediate start

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

JOBCOUNT = JOBNUMBER " Job identification: number

JOBNAME = JOBNAME " and name.

STRTIMMED = 'X' " Schedules the job for

" immediate start. The job

" is started immediately

" only if the user has the

" RELE authorization to

" release a job to run.

IMPORTING

JOB_WAS_RELEASED = JOB_RELEASED " If user has authorization

" to release jobs to run, job

" is automatically released

" when it is scheduled. This

" field is set to 'x' if the

" job has been released.

" Otherwise, the job is sche-

" duled but must be released

" by an administrator before

" it can be started.

EXCEPTIONS

  • CANT_START_IMMEDIATE No longer used. Replaced by IMPORTING

  • parameter JOB_WAS_RELEASED.

INVALID_STARTDATE = 01

JOBNAME_MISSING = 02

JOB_CLOSE_FAILED = 03

JOB_NOSTEPS = 04

JOB_NOTEX = 05

LOCK_FAILED = 06

OTHERS = 99.

IF SY-SUBRC > 0.

<Error processing>

ENDIF.

*Please note it's not my original code..I have done what you could do!! Just visited help.sap.com and typed Background jobs and got sample codes..

Hi all

Would anyone give an example program to submit jobs in background using job_open, job_submit, job_close F.M's,

please dont give complex coded program, easily understandable code with some useful comments will be apprecieated.

Thanks

2 REPLIES 2
Read only

Former Member
0 Likes
943

Create a job using job_open

  • Create your job with JOB_OPEN. The module returns a unique job

  • number. Together with the jobname, this number identifies the

  • job. Other parameters are available, but are not required.

JOBNAME = 'Freely selectable name for the job(s) you create'.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

JOBNAME = JOBNAME

IMPORTING

JOBCOUNT = JOBNUMBER

EXCEPTIONS

CANT_CREATE_JOB = 01

INVALID_JOB_DATA = 02

JOBNAME_MISSING = 03

OTHERS = 99.

IF SY-SUBRC > 0.

<Error processing>

ENDIF.

Adding job step

  • Add a job step: ABAP program

CALL FUNCTION 'JOB_SUBMIT'

EXPORTING

AUTHCKNAM = SY-UNAME " Runtime authorizations

" user

JOBCOUNT = JOBNUMBER " Value from JOB_OPEN

JOBNAME = JOBNAME " Value from JOB_OPEN

REPORT = 'REPORT' " Report to be run

VARIANT = 'VARIANT' " Variant to use with

" report

PRIPARAMS = USER_PRINT_PARAMS " User printing options

ARCPARAMS = USER_ARC_PARAMS " User archiving options

" Both sets of options

" come from

" GET_PRINT_PARAMETERS

EXCEPTIONS

BAD_PRIPARAMS = 01

INVALID_JOBDATA = 02

JOBNAME_MISSING = 03

JOB_NOTEX = 04

JOB_SUBMIT_FAILED = 05

LOCK_FAILED = 06

PROGRAM_MISSING = 07

PROG_ABAP_AND_EXTPG_SET = 08

OTHERS = 99.

IF SY-SUBRC > 0.

<Error processing>

ENDIF.

**Closing job

  • Submit job for processing: immediate start

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

JOBCOUNT = JOBNUMBER " Job identification: number

JOBNAME = JOBNAME " and name.

STRTIMMED = 'X' " Schedules the job for

" immediate start. The job

" is started immediately

" only if the user has the

" RELE authorization to

" release a job to run.

IMPORTING

JOB_WAS_RELEASED = JOB_RELEASED " If user has authorization

" to release jobs to run, job

" is automatically released

" when it is scheduled. This

" field is set to 'x' if the

" job has been released.

" Otherwise, the job is sche-

" duled but must be released

" by an administrator before

" it can be started.

EXCEPTIONS

  • CANT_START_IMMEDIATE No longer used. Replaced by IMPORTING

  • parameter JOB_WAS_RELEASED.

INVALID_STARTDATE = 01

JOBNAME_MISSING = 02

JOB_CLOSE_FAILED = 03

JOB_NOSTEPS = 04

JOB_NOTEX = 05

LOCK_FAILED = 06

OTHERS = 99.

IF SY-SUBRC > 0.

<Error processing>

ENDIF.

*Please note it's not my original code..I have done what you could do!! Just visited help.sap.com and typed Background jobs and got sample codes..

Read only

Former Member
0 Likes
942

Hi,

Please refer the code below:


*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.

Thanks,

Sriram Ponna.