🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP La ejecución de fondo

ABAP La ejecución de fondo

ABAP La ejecución de fondo

EJECUCIÓN DE FONDO.

Existen dos formas de ejecutar un programa en ABAP: Online y Batch. En 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. Esta forma de ejecución es conveniente para los programas donde se requiere interacción con el usuario o cuando el tiempo de ejecución es muy poco.

Pero en ciertos otros casos, especialmente hablando en un ambiente real de trabajo, el tiempo de procesamiento de un programa podría ser muy alto. Esto se puede deber a que el programa tiene muchos accesos a basede datos, que tienen millones de registros, a la ejecución de multiples transacciones o a otras varias razones.

Para estos casos es conveniente la ejecución Batch o de fondo. Veamos un ejemplo paso a paso de como ejecutar un programa de fondo.

NOTA: Es sumamente importante establecer como se va a ejecutar un programa: ONLINE o BATCH, dado que cambia la forma de Ejecucion y de Programacion del programa. Por ejemplo si se utiliza la técnica BATCH INPUT que es una técnica usada para cargar masivamente los datos en el sistema, se hara con unas instrucciones cuando es BATCH y con otras muy diferentes cuando es ONLINE. Otro ejemplo es cuando se hacen REPORTES, cuando se va a ejecutar en BATCH no es lógico usar reportes con la técnica ALV (que permiten interactuar al usuario, al momento de generar el reporte). Por lo tanto se debe analizar para que se necesita el reporte puesto que puede ser muy costoso darnos cuenta al final de como era realmente que se requeria (ONLINE o BATCH).

Ejemplo, supongamos que tenemos el programa ABAP ZPRUEBA_FONDO_B que obtiene los registros de la tabla ZTABLA_USUARIOS y los imprime por pantalla.

* Declaración de datos

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 TABLE ti_usuarios.

LOOP AT ti_usuarios INTO st_usuarios.

WRITE:/ st_usuarios-dni,

st_usuarios-nombre_ape,

st_usuarios-estado_usu.

ENDLOOP.

Ahora crearemos un programa ABAP ZPRUEBA_FONDO el cual cumplirá el rol de programa padre del programa ZPRUEBA_FONDO_B.

Lo primero que debemos hacer es crear un JOB. Para esto le asignamos un nombre a la variable V_JOBNAME y luego ejecutamos la función JOB_OPEN. Para modularizar vamos a crear la subrutina ABRIR_JOB y ahi ingresamos nuestro código.

*&---------------------------------------------------------------------*

*& Form abrir_job

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

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 vamos a crear la subrutina LANZAR_JOB, que ejecutará la sentencia SUBMIT, la cual se utiliza para ejecutar un programa dentro de otro programa y con el agregado de la cláusula VIA JOB NUMBER la ejecución del programa se realizará de fondo.

*&---------------------------------------------------------------------*

*& Form lanzar_job

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

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

NOTA: Mediante la sentencia SUBMIT se pueden pasar parámetros al programa llamado, los cuales deben existir en la pantalla de selección de éste.

Con el agregado de la cláusula 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 mediante la función JOB_CLOSE. Para esto vamos a crear la subrutina CERRAR_JOB.

*&---------------------------------------------------------------------*

*& Form cerrar_job

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

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

Por último, después de cerrar el JOB, imprimimos por pantalla el mensaje "Se lanzó el Job, para visualizarlo ir a la Transaccion SM37".

Ahora vamos a ejecutar Online el programa ZPRUEBA_FONDO presionando F8. Veremos en la pantalla el mensaje "Se lanzó el Job, para visualizarlo ir a la Trx SM37", por lo tanto vamos a ir a buscar el resultado a la transacción SM37. Allí presionamos F8 o Ejecutar.

NOTA: Utilizaremos la TRANSACCIÓN SM37 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 ejecutó, el status (planeado, liberado, listo, activo, terminado o cancelado), la fecha y hora de inicio, la duración y el retraso.

AUDIO: Dado que nos pueden solicitar un programa ABAP que se ejecute tanto ONLINE como BACTCH o DE FONDO, Ante esto debemos hacer una programa ABAP en donde el usuario elija la forma de ejecución del programa, ya sea Online o de Fondo.


 

 

 


Sobre el autor

Publicación académica de Alexander Castellanos, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Senior

Alexander Castellanos

Profesión: Ingeniero de Sistemas - Colombia - Legajo: JS42A

✒️Autor de: 67 Publicaciones Académicas

🎓Egresado del módulo:

Certificación Académica de Alexander Castellanos

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "La ejecución de fondo" de la mano de nuestros alumnos.

SAP Expert


ejecución de fondo: on line: se ejecuta de manera innmediata batch: ejecución de programa de fondo

Acceder a esta publicación

Creado y Compartido por: Edwar Antonio Reyes Reyes / Disponibilidad Laboral: PartTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

FORMAS DE EJECUCIÓN DE UN PROGRAMA ABAP: existen 2 formas de ejecutar un programa Ejecución online: presionando la tecla f8 , los programas se ejecutan de manera online , esta se utiliza con los porgramas que tienen interacción con el usuario y son de ejecución corta. Ejecución batch o de fondo : se utiliza la tecla f9 , cuando los programas son grandes y toman mucho tiempo de ejecución. Para planificar la fecha de inicio existen varias posibilidades: Inmediata Fecha/hora Tras jobs Tras evento La transacción SM37 se utiliza para ver los jobs (programas ejecutados a fondo) procesados en el sistema SP01: administra todas las solicitudes de impresión CREACIÓN...

Acceder a esta publicación

Creado y Compartido por: Valentina Muñoz Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Las formas de ejecución de un programa ABAP Ejecución online para los programa que interactúa el usuario y tardan poco. Suele ser F8 Ejecución de batch o de fondo cuando el programa tarda mucho. Suele ser F9 Transacción SM37 para visualizar los jobs procesados en SAP Jobs son los programas o procesos ejecutados de fondo en SAP Transacción SP01 para visualizar órdenes de spool La creación de un programa ABAP de fondo Se hará de otra manera si se hace de fondo o no. Por ejemplo, no tendrá interacción con el usuario, sin interfaz Creamos un programa que ejecute el programa de fondo a través un SUBMIT al que se le puede pasar parámetros...

Acceder a esta publicación

Creado y Compartido por: David Brito Melado

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Tipos de ejecución de programas en ABAP: es importante conocer el tipo de ejcución requerida antes de programar, ya que esta condiciona la programación misma. 1. On-line: con F8 2. BATCH o de fondo: se realiza mediante la creación y ejecución de JOBS que son uno o más programas que se lanzan consecutivamente en proceso de fondo.

Acceder a esta publicación

Creado y Compartido por: Pedro Ernesto Maldonado

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

ejecución de fondo: existen dos casos, ejecución al momento de presionar F8, esto genera resultados de manera inmediata, es conveniente en programas que interactuan con el usuario. Pero en otros casos, el tiempo d ejecución del programa puede ser muy alto, esto por solicitudes a base de datos, por estar procesando millones de registros entre otras,para estos casos se utiliza la ejecucion batch o de fondo. Mediante la sentencia submit, se le puede pasar datos a otro programa siempre y cando existan en este.

Acceder a esta publicación

Creado y Compartido por: Christian Camilo Alzate Duque

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

EJECUCIÓN EN FONDO. Existen dos formas de ejecutar un programa ABAP: 1- En linea el programa se ejecuta tan pronto como el usuario hace clic sobre el icono ejecutar y los resultados son visualizados de inmediato en pantalla. 2- En Proceso de fondo se planifica cuando se va a realizar la ejecución de programa se utiliza esta opción cuando el tiempo de ejecución es muy alto esto se puede deber a varias razones. JOB: Es un conjunto de uno o más programas ABAP que se lanzan consecutivamente en proceso de fondo. JOB_OPEN: Módulo de función estándar ABAP que se utiliza para la apertura de jobs. SUBMIT: Sentencia ABAP que se utiliza para la ejecución de programas ABAP. AND RETURN: Esta...

Acceder a esta publicación

Creado y Compartido por: Juan Santamaria Borja

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

LAS FORMAS DE EJECUCIÓN DE UN PROGRAMA ABAP: Tenemos 2 formas de ejecutar un programa en SAP, modo on-line o fondo, la ejecución on-line muestra el resultado del programa de inmediato y el proceso de fondo debemos abrir otra transacción para ver el resultado, estas opciones de encuentran en el misma menú de SAP, PROGRAMA y podemos ejecutar on-line F8 o proceso de fondo F9 (configuración de un job), para visualizar el resultado por este proceso vamos a la tx SE37 donde visualizamos el resultado de los jobs. De este proceso podemos visualizar las solicitudes de impresión, seleccionamos el jobs y pulsamos SPOOL lo cual redireccionará a la tx SP01 donde se administran todas las solitudes de impresión...

Acceder a esta publicación

Creado y Compartido por: Jean Carlos Lopez / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior


La Ejecución de Fondo Existen 2 formas en Abap de ejecución la de Fondo y la Online La Online se recomienda o es mejor cuando el procesamiento del programa es poco, así el usuario interactúa tocando algún botón. La ejecución de fondo, no hay interacción con el usuario, hacemos el proceso y sapgui nos devuelve el control, aunque el programa este o no terminado de ejecutarse. Los resultados de esta no se visualizan en pantalla como la online, los resultados se observan en otra transacción de SAP. En Abap según se vaya a programar para que sea online o de fondo el procesamiento se debe tener en cuenta desde el inicio como será ya que la declaración de variables...

Acceder a esta publicación

Creado y Compartido por: Josue Espinoza / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

7| EJECUCIÓN DE FONDO 2 TIPOS DE EJECUCIÓN DE UN PROGRAMA ABAP: Ejecución online – básica, con F8 Ejecución batch o de fondo Ejecución de un programa sin interacción con el usuario, lanzamos el proceso y el SAP GUI nos devuelve el control, aunque el programa todavía no ha acabado de ejecutarse. * se utiliza cuando el tiempo de procesamiento de un programa es muy alto. Procesamiento online en tiempo real - 1 min Procesamiento Batch - 20 min programa > ejecutar en proceso fondo (F9) opciones de inicio: >inmediato: en el momento de acabar su definición >fecha/hora: debemos indicarle día/hora....

Acceder a esta publicación

Creado y Compartido por: Maximiliano Andres Fraga / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Unidad 4 - Ejecución de Fondo Existen dos formas de ejecutar un programa en ABAP. Online y Batch En la ejecucion online al momento de presionar f8 el resultado es en forma inmediata. Normalmente utilizada para los programas que requiere interaccion con el usuario. Pero cuando en un programa el procesamiento puede ser muy alto, cuando tienen muchos accesos a base de datos que tienen millones de registros, multiples txs o varias razones. Es conveniente utilizar la ejecuion Bacth o de fondo. la programacion cambia cuando es un programa es de fondo o online. Las sentencias difieren. Los reporte de fondo, no tienen sentido utilizar tecnicas de reporte tipo ALV. Se puede pedir que un programa se pueda correr de fondo y on line. Para eso...

Acceder a esta publicación

Creado y Compartido por: Matias Ciutat

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!