ABAP: Crear JOB con un report

Para crear un JOB con un report utilizaremos las siguientes funciones JOB_OPEN (Abrir JOB), JOB_CLOSE (Cerrar JOB) y JOB_DELETE (Borra log del JOB en SM37 – Opcional), que utilizaremos de la siguiente forma.
 

JOB_OPEN

Creación del JOB donde indicaremos el nombre del JOB y devolverá el ID de JOB creado.

  • JOBNAME: Nombre del JOB
  • JOBCOUNT: ID del job
JOB_CLOSE

Cierra el JOB indicando el nombre e ID generado por JOB_OPEN, con el parámetro de entrada STRIMMED indicamos cuando empieza el JOB, en este caso utilizamos STGARTIMEIMMEDIATE para que se ejecute inmediatamente.

  • JOBCOUNT: ID del job (Generado por la función JOB_OPEN)
  • JOBNAME: Nombre del job (El mismo indicado en JOB_OPEN)
JOB_DELETE

Borrará el log del JOB de la SM37, este paso es opcional.

  • JOBCOUNT: ID del job (Generado por la función JOB_OPEN)
  • JOBNAME: Nombre del job (El mismo indicado en JOB_OPEN)


 

Ejemplo

DATA: jobname LIKE tbtcjob-jobname VALUE ‘NOMBRE_JOB’,
      jobcount LIKE tbtcjob-jobcount.        

* Creación del JOB

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


* Añadir paso al JOB mediante la llamada a un report utilizando la sentencia SUBMIT e indicando el nombre del JOB e ID generado por JOB_OPEN.
SUBMIT ZNOMBRE_PROGRAMA AND RETURN
                        WITH p_uname = sy-uname
                        WITH p_datum = sy-datum
                        VIA JOB jobname NUMBER jobcount.


* Cierra el JOB
CALL FUNCTION 'JOB_CLOSE'
          EXPORTING
            jobcount             = jobcount
            jobname              = jobname
            strtimmed            = starttimeimmediate
          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.

* Borra el lob del JOB en SM37
CALL FUNCTION 'BP_JOB_DELETE'
          EXPORTING
            jobcount                = jobcount
            jobname                 = jobname
          EXCEPTIONS
            cant_delete_event_entry = 1
            cant_delete_job         = 2
            cant_delete_joblog      = 3
            OTHERS                  = 18.

 
Para ver mas funciones de SAP pulse en el siguiente enlace: Listado de funciones

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *