🚀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

BATCH

EJECUCION DE FONDO

Se puede ejecutar un programa en abapa: online y batch

ONLINE : Se ejecuta al presionar f8 y los resultados se producen inmediatamente. Interaccion con el usuario o el tiempo de ejecucion es muy poco.

BATCH: tiempo de procesamiento alto. Tiene muchos accesos a base de datos, multiples transacciones o a otras varias razones.

BATCH INPUT: TECNICA EMPLEADA PARA CARGA MASIVA.

REPORTES EN ABAP : muchas veces se utiliza en batch.

ej:

DATA: TI_USUARIOS TYPE STANDARD TABLE OF ZTABLA_USUARIOS,

ST_USUARIOS LIKE LINE OF TI_USUARIOS.

START-OF-SELECTION.

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 vamos a crear el nuevo programa abap ZPRUEBA_FONDO el cual cumplirá el rol de programa padere 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 funcion JOB_OPEN. Para modularizar vamo a crear la subrutina ABRIR_JOB que tendrá el siguiente código.

FORM ABRIR_JOB.

CONCATENATE 'ZPRUEBA_FONDO_' SY-DSTUM

INTO V_JOBNAME.

CALL FUNCTION 'JOB:OPEN'

EXPORTING

JOBNAME = V_JOBNAME

IMPORTING

JOBCOUNT = V_JOBCOUNT

EXCEPTIONS

CANT_CREATR_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.

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 agragado de la clausula VIA JOB NUMBER la ejecucion del programa se realizará a fondo.

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

FORM LANZAR_JOB.

SUBMIT ZPRUEBA_FONDO_B

VIAJOB V_JOBNAME

NUMBER V_JOBCOUNT

AND RETURN.

ENDFORM.

Con el agregado de 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 mediante la función JOB_CLOSE. ara esto vamos a crear la subrutina CERRAR_JOB como vemos a continuación.

FORM CERRAR_JOB.

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

JOBCOUNT = V_JOBCOUNT

JOBNAME = V_JOBNAME

STRINMED = 'X'

EXCEPTIONS

CANT_START_INMEDIATE = 1

INVALID_STARDATE = 2

JOBNAME_MISSING = 3

JO_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 TRX SM37 ' .

ENDIF.

ENDFORM.

Por último cerramos el job, imprimimos en pantalla el mensaje.

TRANSACCION SM37: Visualizar los jobs procesados en el sistema SAP.

Presionamos el boton SPOOL.

Vemos el pedido del job correspondiente a nuestro programa.

Presionamos el boton de visualización y vemos el resultado del procesamiento.

El programa completo

*&---------------------------------------------------------------------* *& Report zprueba_fondo *& *&---------------------------------------------------------------------* REPORT zprueba_fondo. * Declaración de datos DATA: v_jobname TYPE btcjob, v_jobcount TYPE btcjobcnt. *----------------------------------------------------------------------* START-OF-SELECTION. *----------------------------------------------------------------------* * Apertura del Job PERFORM abrir_job. * Lanzo el Job PERFORM lanzar_job. * Cierro el Job PERFORM cerrar_job. ************************************************************************ ********************* SUBRUTINAS *************************************** ************************************************************************ *&---------------------------------------------------------------------* *& 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 *&---------------------------------------------------------------------* *& 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 *&---------------------------------------------------------------------* *& 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 *&---------------------------------------------------------------------* *& Report zprueba_fondo_b *& *&---------------------------------------------------------------------* REPORT zprueba_fondo_b. * 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 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.


 

 

 

2 Agradecimientos:

Han agradecido este aporte: William Lemus, Yeffer Sierra Saenz

Favorito:

Está publicación ha sido agregada a sus favoritos por: William Lemus


Sobre el autor

Publicación académica de Oscar Guillermo Rodriguez Villate, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Expert


Oscar Guillermo Rodriguez Villate

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

✒️Autor de: 103 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Oscar Rodriguez

✒️+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


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 Master

EJECUCIÓN DE FONDO. Existen dos formas de ejecutar un programa en ABAP: Online y Batch. Online: El programa se ejecuta al presionar F8, resultado se se producen de manera inmediata. La programación y ejecución de un Batch es totalmente diferente a la de un programa Online. Hay que tener en cuenta cuando nos soliciten un reporte que se ejecutará de fondo o batch, entonces debemos tener en cuenta que no tiene sentido utilizar técnicas de reporte como el ALV. que brindan al usuario interactuar con herramientas. DEDICAR ANÁLISIS A LA ETAPA DE DISEÑO.

Acceder a esta publicación

Creado y Compartido por: Walter Giovanny Montoya García

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

SAP Expert


EJECUCION DE FONDO Es importante evaluar el modo de ejecución de los procesos antes incluso de empezar con el desarrollo. Cuando se trate de ejecución de forma que osm resuktados dse obtengan de manera ijnmediata, en programas que requieren interaccion o el tiempo de ejecución es poco, interesa la ejecución Online, pero si hablamos de programas con muchos acceso a BB.DD. muchos registros, o ejecución de multiples transacciones, hablamos de ejecución Batch, para l que es necesario crear un Job, que se lanzará (SUBMIT), ejecutando a su vez nuestro programa. La transacción SM37, será utilzada para visualizar los Jobs procesados en SAP.

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio De Tejada Santiago / Disponibilidad Laboral: FullTime

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

SAP Senior

Batch. Ejecución de Fondo. Dos formas de ejecutar un programa ABAP. - Online. Se ejecuta a nivel de interfaz de usuario. - Batch (fondo). Su ejecución suele estar programada para procesos que se van a ejecutar periódicamente, también es usado para la carga masiva de datos, este tipo de ejecuciones se suelen realizar en fondo ya que si se ejecutan de manera online suelen superar el tiempo de ejecución produciendo un TIME_OUT. Creación de un programa de fondo (batch). Se debe de crear un reporte hijo, a continuación se creará el programa padre, en el que se utilizarán las siguientes funciones. - JOB_OPEN.- Abrira el job. - JOB_CLOSE.- Cerrará el job. Para lanzar el job se...

Acceder a esta publicación

Creado y Compartido por: Carlos Rodriguez Escudero / Disponibilidad Laboral: FullTime

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

SAP Master


BATCH: EJECUCIÓN DE FONDO Un proceso se puede ejecutar Online (al pulsar F8, obteniendo los resultados inmediatamente) o Batch (proceso de fondo, es conveniente lanzar un proceso así cuando es muy largo). Ej/ Tenemos un programa ABAP llamado Z_PRUEBA, crearemos un programa Z_PRUEBA_FONDO que será el programa padre del programa Z_PRUEBA. Para esto en el código del programa Z_PRUEBA_FONDO, llamaremos a la función JOB_OPEN pasando el la variable de salida "jobname" el nombre del programa Z_PRUEBA. Posteriormente usaremos la sentencia SUBMIT (puede tener parámetros) que se usa para ejecutar un programa dentro de otro programa y con la clausula VIA JOB NUMBER la ejecución del programa...

Acceder a esta publicación

Creado y Compartido por: Ignacio Martín Bolumar

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

SAP Expert


La ejecución de fondo en SAP ABAP se refiere a la capacidad de ejecutar programas o tareas en segundo plano, sin requerir la interacción directa del usuario. Esto es especialmente útil para tareas que consumen tiempo o recursos, como procesamientos de larga duración, cálculos intensivos o generación de informes extensos. Aquí hay información clave sobre la ejecución de fondo en SAP ABAP: Ventajas de la Ejecución de Fondo: Optimización del Rendimiento: Las tareas intensivas en términos de tiempo y recursos se ejecutan sin afectar la experiencia del usuario en la interfaz. Programación Eficiente: Los usuarios pueden iniciar tareas...

Acceder a esta publicación

Creado y Compartido por: Darling Geraldino

 


 

👌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!