![](/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/482.jpg)
BATCH.
Ejecución de fondo.
Existen dos formas de ejecutar un programa en ABAP uno es ONLINE y BACTH.
La ejecución ONLINE el programa se ejecuta al momento de presionar F8 y los resultados de la ejecución se producen de manera inmediata. Se usa cuando los programas requieren interacción con el usuario o cuando el tiempo de ejecución es muy corto. En un ambiente real el tiempo de procesamiento podría ser muy alto esto puede deberse a que tiene muchos accesos a la base de datos, que tienen millones de registros, ejecuciones de múltiples transacciones. Por esta razón es conveniente usar BATCH o de fondo.
Abap ZPRUEBA_FONDO_B obtiene registros de la ZTABLA_USUARIOS y los imprime en plantalla.
DATA: ti_usuarios TYPE STANDARD TABLE OF ztabla_usuarios, st_usuarios LIKE LINE OF ti_usuarios. *---------------------------------------------------------------------* START-OF-SELECTION. *---------------------------------------------------------------------* CLEAR ti_usuarios. REFRESH ti_usuarios. SELECT dni nombre_ape estado_usu FROM ztabla_usuarios INTO CORRESPONDING FIELDS OF TABLE ti_usuarios. LOOP AT ti_usuarios INTO st_usuarios. WRITE:/ st_usuarios-dni, st_usuarios-nombre_ape, st_usuarios-estado_usu. ENDLOOP. Despúes creamos un nuevo programa ABAP ZPRUEBA_FONDO lo cual cumplirá el rol del programa ZPUERBA_FONDO_B. Lo primero que se debe crear en un JOB, así le asignamos un nombre a la variable V_JOBNAME y luego la función JOB_OPEN. Para modularizar y cremos una subrutina ABRIR_JOB. 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 Lo que sigue es lanzar el JOB para esto creamos una subrutina LANZAR_JOB que ejecutará la sentencia SUBMIT ( se pueden pasar parámentros al programa llamado, los cuales deben existir en la pantalla de selección de éste). se utiliza para ejecutar un programa dentro de otro con el agregado de la claúsula VIA JBO NUMBER. esta ejecución se realizará de fondo. 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 Con el agregado de la claúsula AND RETURN el programa permanece en espera mientras se ejecuta el programa llamado, cuando el mismo termina se devuelve el control al programa llamador. Luego cerramos la función mediante la función JOB_CLOSE, creamos la subrutina CERRAR_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 Después de cerrar el JOB imprimimos por pantalla. "se lanzo el job, para visualizarlo ir a la TRX SM 37" Para ejecutar ONLINE el programa ZPRUEBA_FONDO presionamos F8 y veremos en pantalla el mensaje " Se lanzo el Job, para visualizarlos SM37. SM37: es para visualizar los jobs procesados del sistema SAP, podremos visualizar tales como ID, usuario SAP que lo ejecutó, el status (planeado, liberado, listo, activo, terminado o cancelado) la fecha y hora de inicio, duración y el retraso. Para identificar nuestro proceso , lo tildamos y presionamos el SPOOL, ahora veremos el pedido correspondiente a nuestro programa. Y finalmente presionamos el botón de visualización y veremos el resultado del procesamiento.
 
 
 
Sobre el autor
Publicación académica de Juan Carlos Pavicich, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Carlos Pavicich
Profesión: Técnico Informático - Argentina - Legajo: VR91L
✒️Autor de: 116 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Tengo el agrado de dirigirme a ud/s con el objeto de mencionar mi experiencia y conocimientos técnicos necesarios para desarrollar actividades en el rubro de su empresa.
Certificación Académica de Juan Pavicich