✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
-EJECUCIÓN DE FONDO
Hay 2 formas de ejecutar un programa en ABAP
-Online. Se ejecuta al presionar F8, los resultados son de forma inmediata, conviene cuando la interacción con el usuario es necesaria o tiempos de ejecución cortos.
-Batch. Ejecución de fondo, se usa cuando el procesamiento de un programa es alto, ya sea por accesos a bases de datos con millones de registros, ejecución de múltiples transacciones u otras varias razones.
*Es importante analizar el requerimiento de algún programa para saber si se requiere online o batch porque cambia totalmente la programación.
-Tenemos el programa ZPRUEBA_FONDO_B, el cual obtiene los registros de la tabla de usuarios y los despliega, usando tabla interna y luego loop.
*A continuación crearemos el programa Z_PRUEBA_FONDO, el cual será el programa padre
1.- Primero crear un Job con function 'JOB_OPEN' en la que enviamos <nombre_job>, obtendremos un <Job_ID>
FORM abrir_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-mgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-mgv4.
ENDIF.
ENDFORM.
2.- Lanzar Job, crear subrutina LANZAR_JOB, que ejecutará SUBMIT <nombre_programa_abap> (Ejecuta un programa dentro de otro programa) con la cláusula VIA JOB <nombre_job> NUMBER <job_ID>, el programa se ejecutará en el fondo.
*SUBMIT permite pasar parámetros al programa llamado
*AND RETURN cláusula para que el programa llamador permanezca en espera mientras se ejecuta el programa llamado
3.- Cerrar job. Crear subrutina cerrar_job que ejecutará JOB_CLOSE. (Close Background Request With COMMIT WORK)
***Si le agregamos como parámetro strtimmed = 'X', indica que el job tiene que iniciar de inmediato***
-Desplegar "Se lanzó el Job, para visualizarlo ir a la Trx SM37"
-Ejecutar online el programa zprueba_fondo con F8, se mostrará el mensaje de que se lanzó el job
*SM37 vamos a comprobar el resultado de todos los jobs procesados por SAP. De cada uno podremos visualizar datos como ID, usuario, estatus, fecha, hora, duración, retraso.
Al identificar nuestro proceso lo seleccionamos y presionamos el botón |SPOOL|
Veremos el pedido del job correspondiente a nuestro programa
Presionamos el botón Visualización y veremos el resultado del procesamiento
*En ocasiones pueden solicitarnos un programa que se ejecute online o de fondo, la mejor opción es desarrollar un único programa ABAP para elegir el modo de procesamiento: *Online o *Batch
 
 
 
Sobre el autor
Publicación académica de Armando Mayo Marquez, en su ámbito de estudios para la Carrera Consultor ABAP.
Armando Mayo Marquez
Profesión: Desarrollador / Soporte Infra - Mexico - Legajo: RL93E
✒️Autor de: 59 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Profesional de t.i. desde 2005 desarrollador cobol, algol, c, tuxedo, java, shell script - banamex soporte de infra en linux para aplicaciones tuxedo, weblogic, oracle, websphere mq -amdocs/at&t usa
Certificación Académica de Armando Mayo