✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
Batch (Procesamiento por lotes)
1. Ejecución de fondo
- Online:
->Programa se ejecuta al presionar F8, con resultados de manera inmediata.
->Útil para programas con interacción a usuarios o tiempo de ejecución es corto.
- Batch (de fondo):
->Tiempo de procesamiento alto.
->Muchos accesos a BD con millones de registros.
->Ejecución de múltiples transacciones.
A tener en cuenta...
- Cambia la forma de ejecución de programa
- Cambia la forma de programación (desarrollo)
- Realizar análisis previo en etapa de diseño para determinar si se realizarà programa de forma Online o Batch. Ejm.: Si e realizará reporte en Batch, no es recomendable realizar de un tipo específico donde habrán controles de usuario, ya que al ejecutarse de fondo, no habrá ninguna interacción con el programa.
Ejm.: *Programa Online
DATA: ti_usuarios TYPE STANDARD OF ztabla_usuarios,
st_usuarios LIKE LINE OF ti_usuarios.
START-OF-SELECTION.
SELECT dni nombre_ape estado_usu
FROM ztabala_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.
* Código programa Batch (de fondo)
Indicaciones.
1. Crear job
2. Ejecutar función JOB_OPEN
3. Modularizar => crear subrutina para job.
4. Ejecutar job => crear subrutina para ejecutar job.
5. Cerrar job => Ejecutar función JOB_CLOSE. Crear subrutina para este paso.
6. Ejecución del job online => trx SM37 => Ejecutar.
7. Identificar proceso, se selecciona y se hace clic en botón Spool.
8. Visualizar job en ícono de visualización.
Ejm.:
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-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
* Subrutina para ejecutar job
FORM lanzar_job.
SUBMIT zprueba_fondo_b
VIA JOB v_jobname
NUMBER v_jobcount
AND RETURN.
ENDFORM.
-> Agregando de cláusula AND RETURN programa que lo invoca quedará en espera mientras se ejecuta programa
que que fue invocado. Al terminar, se devuelve el control al programa que invoca.
* Subrutina para cerrar job
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_stardate = 2
jobname_missing = 3
job_closed_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 ejecutó job, para visualizarlo, ir a Trx SM37'.
ENDIF.
ENDFORM.
Nota: - SM37 Trx para visualizar jobs procesados por SAP. (ID, usuario SAP que lo ejecutó,
status {planeado,liberado,visto,activo,terminado o cancelado})
- En el soluciones ABAP, dearrollar único programa ABAP que presente en pantalla de selección modo
de procesamiento online y de fondo, permitiendo a usuario selección del modo de procesamiento de
acuerdo a requerimiento.
 
 
 
Sobre el autor
Publicación académica de Darwin Enrique Terraza Berdugo, en su ámbito de estudios para la Carrera Consultor ABAP.
Darwin Enrique Terraza Berdugo
Colombia - Legajo: MM57E
✒️Autor de: 60 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
Disponibilidad Laboral: PartTime
Certificación Académica de Darwin Terraza