
Batch o de Fondo
Mediante la transacción SM37 se `puede visualizar los job procesados.
De cada Job se puede visualizar el id, el usuario, el estado, la fecha y hora de inicio, la duración y el retraso
Primero se debe abrir el programa
FORM abrir_job .
* Asigamos un nombre al job
CONCATENATE 'ZPRUEBA_FONDO_' sy-datum
INTO v_jobname.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = v_jobname
IMPORTING
jobcount = v_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " abrir_job
Luego se debe lanzar o llamar el programa
form lanzar_job.
* Lanzo el Job
SUBMIT zprueba_fondo_b
USER sy-uname "usuario que ejecuta
VIA JOB v_jobname
NUMBER v_jobcount
AND RETURN.
endform. " lanzar_job
Mediante la palabra SUBMIT se envian parametros al programa
Mediante la palabra RETURN se indica al proceso que debe esperar a que finalice el otro trabajo y retorna al programa llamador
Finalmente se debe cerrar el job
FORM cerrar_job.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = v_jobcount
jobname = v_jobname
strtimmed = 'X' "Comienza de inmediato
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
WRITE 'Se lanzo el Job, para visualizarlo ir a la Trx SM37'.
ENDIF.
ENDFORM. " cerrar_job
En el caso de que se requiera ejecutar en proceso online y en batch, la mejor forma recomendada es solicitar al usuario por medio de un radio bottom la forma en que se va a ejecutar el programa