progress bar

Progress Bar en Oracle Apex

Progress Bar en Oracle Apex

Un progress bar es esencial cuando lanzamos procesos que van a tardar mucho tiempo como procesos batch, en este post vamos a usar una vista llamada V$SESSION_LONGOPS, dicha vista se encarga de registrar los procesos que duran más de 6 segundos, entonces seguramente lo podremos encontrar en esta vista el proceso que lanzaremos y entonces podremos aplicar las siguientes operaciones: backup, estadisticas, ejecución de consultas y otras más.

¿De que me sirve saber esto?

Bueno, los progress bar nos sirven para indicar a los usuarios finales el estatus de un proceso que va a tardar ¡¡muchoooo!!, en lo personal he desarrollado procesos que duran hasta 6 horas, y bueno; el usuario siempre se pregunta, ¿esto está funcionando?.

Lo primero que debes hacer es crear estos dos procedures do_init y do_update 

do_init: este procedure se encarga de mandar a la v$session_longops el registro de la operación, y solo eso, podrás encontrar más información en esta liga https://docs.oracle.com/database/121/ARPLS/d_appinf.htm#ARPLS65225.

do_update: dentro de un ciclo for, reportaremos a la v$session_longops el estatus de la operación, para así poder ir calculando el % de avance de nuestro proceso.

¿Qué puedo registrar en la v$session_longops?

Puedes registrar lo que tu quieras: segundos, particiones, filas procesadas, objetos, etc, etc.. en el ejemplo vamos a procesar segundos, 300 segundos en total, nuestro procedure de prueba solo sirve de ejemplo para hacer el progress bar.

 

Explicación en vídeo del progress bar en apex

 

 

 

Descarga la app

Progress Bar App

Ligas de interés

https://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2092.htm#REFRN30227

Post sugerido:

Sweet Alert2 JS Oracle APEX

JS, AJAX, PROMESAS + PLSQL en APEX

Curso gratis de Oracle Apex en Español

Por favor si te sirvió el vídeo, invítame un café dando clic a los anuncios, me ayuda muchísimo para no dormir y poder hacer más posts 😎

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *