![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
![ABAP La ejecución de fondo ABAP La ejecución de fondo](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/343.jpg)
Batch
1. ejecucion de Fondo
Dos formas de ejecutar un programa ABAP
ONLINE el programa se ejecuta al momento de presionar F8 y los resultados de la ejecucion se producen de manera inmediata. Esta forma de ejecucion es conveniente para los programas que necesitan interaccion con el usuario o el tiempo de ejecucion es breve.
BATCH o Fondo programas de procesamiento muy alto, porque tiene muchos accesos a tablas de datos que tienen millones de registro por ejemplo, o tiene varias transacciones u otros motivos. las sentencias son distintas.
Pasos
a. Primero se crea el programa por ejemplo que imprime datos de la tabla usuarios.
ZPrueba_fondo_B.
b. Se crea el programa abap ZPrueba_fondo el cual cumplira el rol de padre del programa zprueba_fondo_b.
Lo primero es crear un JOB (conjunto de uno o mas programas que lanzan consecutivamente en proceso de fondo).
Asignamos un nombre a la variable V_JOBNAME y luego ejecutamos la funcion JOB_OPEN. Para modularizar vamos a crear la subrutina ABRIR_JOB.
FORM abrir_job.
* asignamos 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.
c. Lo que sigue es lanzar el JOB. Para esto crear la subrutina LANZAR_JOB, que se ejecutara con la sentencia SUBMIT. la cual se utiliza para eejcutar un programa dentro de otor programa y con el agregado de la clasusula VIA JOB NUMBER la ejecucion dle programa se hara de fondo.
Mediante la sentencia SubMit se pueden pasar patametros al programa llamado, los cuales deben existir en la pantalla de seleccion de este.
Form Lanzar_job.
*Lanzo el JOB
SUBMIT zprueba_fondo_b
VIA JOB v_jobname
Number v_jobcount
and return.
endform.
La clausula AND RETURN el programa llamador permanece en espera mientras se ejecuta el programa llamado. cuando el programa llamado termina, se devuelve el control al programa llamador.
Luego debemos Cerrar el JOB con la funcion JOB_CLOSE.
FORM cerrar_job.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = v_jobcount
jobname = V_jobname
Strtimmed = 'X' "comienza de inmediato
Exceptions
cant_start_inmediate = 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 visualizar ir a la trn SM37'.
endif.
endform.
transaccion SM37
Se usa para visualizar los jobs procesados en el sistema SAP.
De cada Job podremos visualizar distintos datos tales como el ID, el usuario SAP que lo ejecuto, el status (planeado, liberado, listo, activo, terminado o cancelado). la fecha y hora de inicio, la duracion y el retraso.
1. SM37.
2. F8 o ejecutamos
3. Presionamos SPOOL
y se ve el pedido JOB correspondiente a nuestro programa, luego presionamos visualizar y vemos el resulatdo del procesamiento.
 
 
 
Sobre el autor
Publicación académica de Silvia Marina Carrizo, en su ámbito de estudios para la Carrera Consultor ABAP.
Silvia Marina Carrizo
Profesión: Analista Senior Genexus - Argentina - Legajo: ER54O
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Silvia Carrizo