✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
Ejecución de fondo
Podemos ejecutar un programa ABAP: Online y Batch. En la ejecución Online se jecuta al momento de presionar F8 y los resultados se producen casi de forma inmediata. Cuando tenemos que realizar un procesamiento de datos largo es mejor hacer un trabajo de fondo o Batch.
Es conveniente dentro del diseño de nuestro programa ABAP saber si necesitamos hacer que nuestro programa se ejecute de fondo o no. Ya que, la forma en que se programa cambia rotundamente de un programa Online.
Si nos piden para ejecutar el programa usando los dos modos de procesamiento, entonces colocaremos una vista la cual permita que el cliente pueda esciger si procesar el trabajo de forma Online o de Forma Batch.
Código de la clase
SPAN {
font-family: "Consolas";
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}
*&---------------------------------------------------------------------*
*& Report ZPRUEBA_FONDO_B_FG66E
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zprueba_fondo_b_fg66e.
DATA: v_jobname TYPE btcjob,
v_jobcount TYPE btcjobcnt.
START-OF-SELECTION.
*1. Abrir el batch (proceso de fondo)
PERFORM abrir_job.
*2. lanzo el job
PERFORM lanzar_job.
*3. Cierro el job
PERFORM cerrar_job.
**********************************************
**************** SUBRUTINAS ******************
**********************************************
FORM abrir_job.
CONCATENATE 'ZPRUEBAFONDO' sy-datum INTO v_jobname.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
* DELANFREP = ' '
* JOBGROUP = ' '
jobname = v_jobname
* SDLSTRTDT = NO_DATE
* SDLSTRTTM = NO_TIME
* JOBCLASS =
* CHECK_JOBCLASS =
IMPORTING
jobcount = v_jobcount
* INFO =
* CHANGING
* RET =
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0.
" Implement suitable error handling here
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
FORM lanzar_job.
SUBMIT zprueba_fondo_fg66e
USER sy-uname
VIA JOB v_jobname
NUMBER v_jobcount
AND RETURN.
ENDFORM.
FORM cerrar_job.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
* AT_OPMODE = ' '
* AT_OPMODE_PERIODIC = ' '
* CALENDAR_ID = ' '
* EVENT_ID = ' '
* EVENT_PARAM = ' '
* EVENT_PERIODIC = ' '
jobcount = v_jobcount
jobname = v_jobname
* LASTSTRTDT = NO_DATE
* LASTSTRTTM = NO_TIME
* PRDDAYS = 0
* PRDHOURS = 0
* PRDMINS = 0
* PRDMONTHS = 0
* PRDWEEKS = 0
* PREDJOB_CHECKSTAT = ' '
* PRED_JOBCOUNT = ' '
* PRED_JOBNAME = ' '
* SDLSTRTDT = NO_DATE
* SDLSTRTTM = NO_TIME
* STARTDATE_RESTRICTION = BTC_PROCESS_ALWAYS
STRTIMMED = 'X' "super importante
* TARGETSYSTEM = ' '
* START_ON_WORKDAY_NOT_BEFORE = SY-DATUM
* START_ON_WORKDAY_NR = 0
* WORKDAY_COUNT_DIRECTION = 0
* RECIPIENT_OBJ =
* TARGETSERVER = ' '
* DONT_RELEASE = ' '
* TARGETGROUP = ' '
* DIRECT_START =
* INHERIT_RECIPIENT =
* INHERIT_TARGET =
* REGISTER_CHILD = ABAP_FALSE
* TIME_ZONE =
* IMPORTING
* JOB_WAS_RELEASED =
* CHANGING
* RET =
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
invalid_time_zone = 9
OTHERS = 10.
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.
SPAN {
font-family: "Consolas";
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}
REPORT zprueba_fondo_fg66e.
DATA: ti_usuarios LIKE STANDARD TABLE OF ztabla_usuarios,
wa_user LIKE LINE OF ti_usuarios.
SELECT dni nombre_ape
FROM ztabla_usuarios
INTO CORRESPONDING FIELDS OF TABLE ti_usuarios.
*mostrar los valores de la tabla
LOOP AT ti_usuarios INTO wa_user.
WRITE:/ wa_user-dni, ' ', wa_user-nombre_ape.
ENDLOOP.
 
 
 
Sobre el autor
Publicación académica de Juan Pablo Giron Ruiz, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Pablo Giron Ruiz
Colombia - Legajo: FG66E
✒️Autor de: 21 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero electrónico con conocimientos sólidos en ciencias de la computación y magister en ciencias de ingeniería eléctrica. proactivo y amante a los retos profesionales.
Certificación Académica de Juan Giron