Plan Report / Job in background programmatically

There are cases, when you need to plan reports programatically to run in background in ABAP – providing some selection parameters – such as cleanup reports, generations, data retrieval and storage from external resources and so on. You can react on your application specific events, and plan a job to be processed by a batch work process. If your report is designed to run in background only, you can evaluate the content of system field sy-batch (structure syst).

DATA:
  lv_jobcount     TYPE btcjobcnt,
  lv_jobcnumc     TYPE crmcount,
  lt_jobcount     TYPE STANDARD TABLE OF btcjobcnt,
  lv_dummy        TYPE string.                            "#EC NEEDED

SELECT jobcount FROM tbtco INTO TABLE lt_jobcount
  WHERE jobname = gc_jobname.

IF lt_jobcount IS NOT INITIAL.
  SORT lt_jobcount DESCENDING BY table_line.
  READ TABLE lt_jobcount INTO lv_jobcount INDEX 1.
  lv_jobcnumc = lv_jobcount.
ENDIF.
ADD 1 TO lv_jobcnumc.
lv_jobcount = lv_jobcnumc.

* Setup Job
CALL FUNCTION 'JOB_OPEN'
  EXPORTING
    jobname          = gc_jobname
  IMPORTING
    jobcount         = lv_jobcount
  EXCEPTIONS
    cant_create_job  = 1
    invalid_job_data = 2
    jobname_missing  = 3
    OTHERS           = 4.

IF sy-subrc NE 0.
  "handle / propagate exception
  RETURN.
ENDIF.

SUBMIT cleanup_saacont "<-name of the report
  VIA JOB gc_jobname
  NUMBER lv_jobcount AND RETURN
  WITH testrun EQ abap_true. "<-selection screen parameter

"Release Job
CALL FUNCTION 'JOB_CLOSE'
  EXPORTING
    jobcount             = lv_jobcount
    jobname              = gc_jobname
    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 NE 0.
  "handle / propagate exception
  RETURN.
ENDIF.
SAPDEV.EU
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.