✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
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 Franco Alfieri Maringota Alvarado, en su ámbito de estudios para la Carrera Consultor ABAP.
Franco Alfieri Maringota Alvarado
Peru - Legajo: GF44M
✒️Autor de: 288 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP FI Nivel Inicial
- Carrera Consultor en SAP BI / BW BO Nivel Avanzado
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP BI / BW BO Nivel Inicial