Seguimos avanzando. Hasta el momento, en esta serie sobre reportes interactivos de APEX tenemos:
- Todo sobre reportes interactivos – Parte 1. (Introducción)
- Todo sobre reportes interactivos – Parte 2. (Personalizado de atributos de región y reporte)
- Todo sobre reportes interactivos – Parte 3. (La barra de búsqueda y el menú de acciones)
- Todo sobre reportes interactivos – Parte 4. (Vistas de icono y detalle)
- Todo sobre reportes interactivos – Parte 5. (Personalización de atributos de columna)
- Todo sobre reportes interactivos – Parte 6. (Enlace a reportes interactivos con parámetros predefinidos)
En esta entrega, me voy a centrar en dos funciones de suma importancia y que vuelven a los reportes interactivos una utilidad muy poderosa de las aplicaciones APEX para el usuario final:
- En envío de reportes interactivos por correo electrónico.
- El uso de suscripciones para recibir reportes interactivos de forma periódica.
Los temas a tratar incluyen:
Requisitos
Para poder ejecutar cualquiera de las dos funcionalidades mencionadas, el requisito indispensable es contar con la definición de los datos del servidor de correo electrónico en la configuración de la instancia de APEX, Si no tenemos correctamente esta información, el usuario final no podrá utilizar estas funcionalidades, aunque la configuración del reporte interactivo esté definida para permitirlo.
Entonces, tenemos que diferenciar entre la configuración de la instancia y la configuración del reporte interactivo y, debemos realizar ambas si es que queremos que el usuario final pueda utilizar la funcionalidades de envío por correo electrónico de un reporte interactivo y el poder realizar una suscripción a un reporte interactivo para recibirlo vía correo electrónico.
Creo que es importante que definamos el concepto de “Suscripción” antes de continuar.
Una suscripción es básicamente, un procedimiento mediante el cual un usuario final de una aplicación APEX, puede calendarizar el envío del contenido de un reporte interactivo a la cuenta de correo que indique, con la periodicidad que lo indique y en un periodo de tiempo que él mismo define.
En las dos siguientes secciones, vamos a aprender a configurar tanto la instancia de APEX para permitir el envío de correos electrónicos, que como ya dijimos es el requisito indispensable para utilizar las funcionalidades de las que venimos hablando, así como la manera de configurar nuestros reportes interactivos tanto para suscripción como para envío por correo electrónico.
Ahora bien, se preguntará que diferencia existe entre una suscripción y el envío del reporte interactivo por medio de correo electrónico, si al final de cuenta estamos hablando de enviar por correo electrónico un reporte interactivo. La respuesta es sencilla, como ya definí arriba, la suscripción permite definir un calendario de envío del reporte al correo que el usuario decida y una vez hecho esto, NO ES NECESARIO que el usuario ingrese a la aplicación para obtener el reporte en su correo; mientras que el envío por correo electrónico es una opción adicional a la descarga del reporte, en la que el usuario final indica que lo quiere recibir a su correo y para hacerlo debe realizar el proceso de forma manual, para lo cual debe ingresar a la aplicación y a la página que contiene el reporte e ingresar, por supuesto la dirección de correo electrónico a la que quiere recibir el reporte interactivo con la información que en ese momento puede visualizar en su pantalla.
Configuración de la Instancia APEX
👉En un ambiente de trabajo, lo normal es que esta configuración sea realizada por el encargado de la instancia APEX, que normalmente no es el desarrollador.
Es importante resaltar, antes de continuar, que esta configuración se puede realizar indistintamente en una instancia de APEX en un ambiente On Premise, como en un ambiente Cloud.
A diferencia de otro tipo de funcionalidades sobre las que en un ambiente Cloud no podemos modificar ni tenemos acceso a ellas, en el caso de la configuración de la instancia APEX para el envío de correo es algo que podemos efectuar en cualquiera de los casos mencionados.
Por todo lo anterior, conforme avancemos con la explicación del proceso de configuración, vamos a indicar las diferencias de hacerlo entre un ambiente Cloud o uno On Premise. Mejor aún, vamos a explicar el procedimiento tanto en uno como en otro ambiente.
Empecemos.
Configurar instancia On Premise
Si desea configurar el servidor de correos de una instancia APEX On Premise, el procedimiento es el siguiente:
- Abra su navegador web.
-
En la barra de navegación, escriba la dirección de la instancia APEX que desea configurar. Por ejemplo “https://miservidorapex.com:puerto/apex”

- En su pantalla aparecerá una página con un apariencia similar a la anterior sobre la cual debe:
- Ingresar el nombre del espacio de trabajo de la instancia. En este caso “INTERNAL”
- Ingresar el nombre de usuario de administrador de instancia
- Ingresar la contraseña del usuario de administrador de instancia
- Hacer clic en el botón “Sign In” (Ingresar)
-
Al proporcionar los datos del punto anterior de forma correcta, será dirigido a la página principal de la instancia APEX, similar a la imagen que se muestra a continuación.

- Para continuar tiene dos opciones:
- Puede hacer clic en el ícono Manage Instance y luego en la página siguiente, buscar en la sección Instance Settings el enlace Instance Settings y hacer clic en él. O bien,
-
Hacer clic en el submenú Manage Instance y luego en la opción Instance Settings.
En ambos casos se abrirá la página de Configuración de la instancia.
- En la página de configuración de instancia, busque la sección “Email” y proporcione los siguientes datos:
- URL de instancia APEX (si no está definido).
- URL hacia las imagenes APEX (si no está definido).
- Dirección del servidor de correo SMTP, puede ser el nombre del servidor o bien la dirección IP de dicho servidor.
- Puerto de servidor SMTP, correspondiente al puerto en que el servidor SMTP escucha por solicitudes.
- Usuario de autenticación SMTP, es la cuenta de correo con la que la instancia APEX se va a logear al servidor SMTP para realizar las tareas de envío de correos.
- Contraseña de autenticación del usuario al servidor SMTP, que no es otras cosa que la contraseña del usuario proporcionado en el punto anterior.
- Uso de SSL/TLS. Seleccione YES si se debe realizar una conección segura con SSL/TLS antes de la comunicación con el servidor SMTP. Seleccione NO si se abre una conexión no segura, o seleccione After connection is established, en cuyo caso APEX le envía un comando STARTTLS al servidor SMTP inmediatamente después de que la conexión es abierta.
- Dirección de Correo por defecto Desde, que es la dirección de correo que se utiliza por defecto para realizar el envío de los correos, en caso de que no se indique una dirección diferente.
- Máximos correos enviados por Espacio de Trabajo, el número de correos electrónicos que un espacio de trabajo puede enviar en un periodo de 24 horas.
- Haga clic en el botón Aplicar Cambios.
Configurar instancia CLOUD
A diferencia de una instancia On Premise, si usted cuenta con una instancia APEX en un servicio OCI, tal como un servicio Always Free, un servicio de Desarrollador o una base de Datos OCI, aquí entran en juego otro tipo de factores a la hora de configurar el servidor de correos para su instancia de APEX, que incluyen la configuración de cuentas de correo en su servicio OCI, algo que no voy a tocar en esta entrega, porque es un tema que requiere ser tratado propiamente y es extenso. Si les voy a explicar que datos cambian en la configuración y a que corresponden cada uno de ellos.
El procedimiento para configurar el servidor de correos de una instacia APEX OCI es el siguiente:
- Abra su navegador web.
-
En la barra de navegación, escriba la dirección de la instancia APEX que desea configurar. Por ejemplo “https://miservidorcloud.com/ords”

-
Haga cllic en el enlace “Servicios de Administración”, con lo cual se le mostrará una nueva pantalla de login, tal como la que puede ver a continuación

- Ingrese la contraseña de administración de su servicio de base de datos OCI. Esta es la contraseña utilizada al crear su seervicio de base de datos o la contraseña asignada al ejecutar la opción de cambio de contraseña de administrador del servicio de base de datos OCI.
-
Al proporcionar correctamente su contraseña, será dirigido a la página principal de la instancia APEX, similar a la imagen que se muestra a continuación.

- Para continuar tiene dos opciones:
- Puede hacer clic en el ícono Gestionar Instancia y luego en la página siguiente, buscar en la sección Valores de Instancia el enlace Valores de Instancia y hacer clic en él. O bien,
-
Hacer clic en el submenú Gestionar Instancia y luego en la opción Valores de Instancia.
En ambos casos se abrirá la página de Configuración de la instancia.
- En la página de valores de instancia, busque la sección “Correo Electrónico” y proporcione los siguientes datos:
- URL de instancia APEX, si no lo define se utilizará el valor por defecto.
- URL de imágenes APEX, en caso de que no lo defina se utilizará el valor por defecto.
- Dirección del servidor de correo SMTP, en este caso, los servidores están definidos por nodo, por lo que si su nodo está creado en Chicago, debe utilizar el servidor definido para Chicago. Puede encontrar los nombres de los diferentes servidores de correo en el enlace https://docs.oracle.com/en-us/iaas/api/#/en/emaildelivery/20170907/.
- Puerto de servidor SMTP, correspondiente al puerto en que el servidor SMTP escucha por solicitudes, ingrese 587.
- Usuario de autenticación SMTP, a diferencia de una instancia On Premise, aquí lo que vamos a ingresar es el Id de nuestro usuario de servicio OCI, el cual puede consultar en su consola de servicio OCI.
- Contraseña de autenticación y Confirmación de Contraseña de autenticación del usuario al servidor SMTP, en este caso la contraseña de su usuario dueño del servicio OCI.
- Uso de SSL/TLS. Seleccione YES si se debe realizar una conexión segura con SSL/TLS antes de la comunicación con el servidor SMTP. Seleccione NO si se abre una conexión no segura, o seleccione After connection is established, en cuyo caso APEX le envía un comando STARTTLS al servidor SMTP inmediatamente después de que la conexión es abierta.
- Dirección de Correo por defecto Desde, que es la dirección de correo que se utiliza por defecto para realizar el envío de los correos, esta cuenta de correos debe haber sido creada con anterioridad y tener los permisos necesarios para enviar correos desde la plataforma.
- Máximos correos enviados por Espacio de Trabajo, el número de correos electrónicos que un espacio de trabajo puede enviar en un periodo de 24 horas.
- Haga clic en el botón Aplicar Cambios.
Configuración del reporte
Muy bien, ya tenemos configurada nuestra instancia de manera correcta, ahora si queremos permitir a los usuarios enviar un reporte interactivo a un reporte, o bien, suscribirse a uno de ellos para que le llegue de manera periódica a su cuenta de correo electrónico, lo que debemos hacer es configurar dicho reporte para permitirlo.
Hay consideraciones de seguridad que debemos tener en cuenta, pero estás las voy a tratar en el punto final de esta entrega.
Por el momento veamos cómo:
- permitir el envío de un reporte interactivo por correo y cómo
- permitir suscripciones a un reporte interactivo
Permitir envío por correo electrónico
El procedimiento a seguir para permitir el envío de un reporte interactivo por medio de correo electrónico, pasa por permitir que dicho reporte pueda ser descargado, lo cual es requisito fundamental. De manera que lo que vamos a hacer es configurar el reporte para que pueda ser descargado, para eso:
- Ingrese a la aplicación que contiene el reporte interactivo o en la cual quiere crear el reporte interactivo.
- Cree la página de reporte interactivo o seleccione la página que lo contiene.
- En el Diseñador de Páginas, en el paño de la izquierda, localice la región correspondiente al reporte interactivo y haga clic sobre esta. En la imagen se muestra como “Proyectos”.

- Luego, muévase al paño de la derecha, el Editor de Propiedades y haga clic en la pestaña Atributos, tal como se muestra en la siguiente imagen.

- Localice la sección Barra de Búsqueda y si el interruptor de la propiedad Incluir Barra de Búsqueda está apagado, enciéndalo.

- Ahora localice la sección Menú de Acciones y luego busque el interruptor de la propiedad Guardar Informe y enciéndalo si se encuentra apagado.

- Y llegó el momento de completar el procedimiento para permitir que un usuario final pueda enviar por correo electrónico un reporte interactivo. Busque la sección de atributos Descargar.

- Busque el atributo Enviar como correo y encienda dicho interruptor, si este no se encuentra encendido, el usuario final no podrá enviar por correo electrónico el reporte interactivo.
- Opcionalmente puede seleccionar y deseleccionar los formatos disponibles en los que el usuario puede Descargar/Enviar por correo el reporte interactivo.
- Lo que queda por hacer es guardar los cambios realizados, haciendo clic en el botón Guardar.
Si ejecuta el reporte guardado, ahora podrá observar junto a la barra de búsqueda, en el menú desplegable Acciones, una opción Descargar Informe, puede comprobarlo usted mismo buscando en la página del reporte interactivo, en la parte superior del mismo, una sección similar a la que se muestra en la imagen a continuación.
Al hacer clic en la opción Descargar Informe, del menú Acciones, aparecerá una ventana similar a la que se muestra abajo.
En esta ventana puede seleccionar el formato en que desea descargar el reporte. La cantidad y tipo de opciones de descarga con que cuente, van a depender del servidor de impresión que tenga configurado la instancia de APEX.
Como habrá podido notar, en esta ventana hay un interruptor “Enviar como correo electrónico” que en la imagen aparece encendido, sin embargo, por defecto este interruptor se encuentra apagado y se debe encender, luego de lo cual se mostrarán los campos que puede apreciar en la parte inferior de la imagen, por debajo de dicho interruptor.
Estos campos son:
- Para (dirección de correo electrónico del receptor)
- CC (dirección de correo electrónico de un receptor que recibirá una copia del reporte)
- CCO (dirección de correo electrónico de un receptor que recibirá una copia, sin que los demás sepan que la ha recibido).
- Asunto (correspondiente al asunto que tendrá el correo enviado y que por defecto tiene definido en nombre del reporte, aunque lo puede cambiar de acuerdo a su conveniencia)
- Cuerpo (en donde podrá escribir algún detalle que quiera incluir como cuerpo del correo, por defecto, se incluye el mensaje “Consulte adjuntos”
Adicionalmente encontrará los botones Enviar, utilizado para enviar el correo y el botón Cancelar, el cual cierra la ventana.
Así de sencillo se pueden enviar los reportes interactivos a través de correo electrónico, el usuario o usuarios definidos en la ventana, recibirán una copia completa del reporte definido en pantalla y en el formato seleccionado.
Permitir suscripciones a reportes interactivos
Ahora bien, como mencioné al inicio, una suscripción es una manera en que un usuario puede recibir un reporte interactivo en su dirección de correo electrónico, de manera periódica y sin necesidad de generar dicho reporte.
Para poder realizar suscripciones, el desarrollador debe habilitar esta opción para el reporte interactivo de acuerdo con el siguiente procedimiento:
- Repita los pasos 1 al 5 definidos en el procedimiento anterior para el envío de reportes interactivos por correo electrónico.
- Luego localice la sección de atributos llamada Menú de Acciones, al final de la cual encontrará el interruptor Permitir Suscripciones, por defecto, este interruptor se encuentra apagado, lo que debe hacer es encenderlo, tal y como se muestra en la siguiente imagen.

- Una vez hecho lo anterior, lo que debe hacer es guardar el informe haciendo clic en el botón Guardar.
Al ejecutar el reporte con los cambios efectuados, en el menú del botón Acciones, ahora podrá ver una opción Suscripción, haga clic en ella y se abrirá una nueva ventana donde puede realizar la suscripción. Esta ventana es similar a la que muestra la siguiente imagen.
Como habrá notado ya, la ventana es muy similar a la de descarga del reporte con la opción de envió de correo habilitada. Sien embargo, existen algunas diferencias entre ambas.
En el caso de la ventana de suscripción, usted como usuario podrá:
- Seleccionar el formato en que quiere recibir dicho reporte. Nuevamente, los formatos disponibles van a depender de la configuración de la instancia APEX, específicamente del servidor de impresión definido para la misma.
- Incluir la dirección de correo electrónico en la que desea recibir el reporte interactivo.
- Definir el asunto que tendrá el correo recibido.
- Escoger la frecuencia con que desea recibir el reporte, esta puede ser:
- Diariamente
- Semanalmente
- Mensualmente
- Puede encender el interruptor Omitir si no se encuentran datos, el cual verificará primero que existan datos para el reporte y si no los encuentra no lo enviará.
- Finalmente podrá seleccionar o ingresar fecha y hora de inicio del envío del reporte y si lo desea, de manera opcional, la fecha y hora en que debe finalizar dicho envío, si no proporciona este último dato, el reporte se seguirá enviando de manera indefinida hasta que alguien elimine la suscripción.
- Cuando haga clic en el botón Aplicar, estará completado el procedimiento de suscripción al reporte interactivo.
Al completar el proceso de suscripción, el usuario final empezará a recibir en la cuenta de correo electrónico a partir de la fecha y hora que definió en la suscripción, el reporte interactivo en el formato que seleccionó.
Si el usuario define una fecha Final, la suscripción finalizará y el usuario dejará de recibir la copia del reporte, si no se define una fecha y hora, el reporte se enviará de manera indefinida hasta que el usuario elimine la suscripción.
Seguridad y buenas prácticas
Llegamos a un tema de suma importancia y tiene que ver con las buenas prácticas y la seguridad a la hora de utilizar este tipo de características, en este caso específico de los reportes interactivos, el que estas funcionalidades estén disponibles, no quiere decir que las podemos o debemos utilizar siempre y a continuación les explico por qué.
Primero que todo, es importante hacer notar, que cuando se trata de información y especialmente de poder descargar esta, tiene que ver con la posibilidad de robo de la misma, lo que pondría a la organización en la que usted labora, perdidas incalculables, dependiendo del tipo de información.
Si hablamos por ejemplo, de información de clientes, socios, ventas u otros temas que son críticos para la organización, los reportes no deberían poder descargarse, ya sea directamente o por medio de correos electrónicos, por lo que lógicamente tampoco debería permitirse la suscripción a este tipo de reportes, pues implica el sacar fuera del contexto de trabajo esta información.
Existen algunos reportes que se pueden permitir el lujo de ser descargados, pero solamente por un grupo específico de personas con un perfil determinado, normalmente puestos directivos dentro de la organización, en estos casos y, dependiendo de si se trata de poder descargar por medio de correo electrónico (o directamente) los reportes, podemos definir perfiles y asignar a estos roles de autenticación, los cuales vamos a asignar a la funcionalidad de descarga, proceso que les explicará más adelante.
En el caso de las suscripciones, no existe un rol de autenticación que pueda ser asignado de manera directa a esta funcionalidad, por lo que en este caso, debemos pensar en otras maneras de restringir el acceso a las mismas cuando se trata de reportes que los requieren para un perfil específico de usuarios.
En este último caso, podemos por ejemplo:
- Restringir el acceso a la página en su totalidad.
- Restringir el acceso a la región del reporte y habilitar su desplegado con un botón al que le asignamos un rol específico para el perfil del usuario.
- Hacer el desplegado de la región del reporte condicionada a que el usuario tenga el rol requerido para poder tener acceso a él.
- De manera programática, visualizar u ocultar la opción de suscripción del menú acciones, utilizando código Javascript.
Debemos recordar que siempre debe prevalecer la seguridad e integridad de la información ante todo.
Solo me queda una cosa más por tratar. ¿Cómo utilizo un esquema de autorización para permitir que un usuario pueda o no descargar y por ende enviar por correo electrónico un reporte interactivo.
Aquí no me voy a detener mucho, pues ya les expliqué como configurar el envío de reportes interactivos por medio de correo electrónico, con la salvedad de que omití el cómo agregar seguridad para restringir esta funcionalidad, de manera que en adición al procedimiento señalado:
Entre los pasos 9 y 10 de dicho proceso, en la sección Descargar, el atributo Autorización, vamos a seleccionar el esquema de autorización que el usuario debe tener asignado para permitirle descargar y/o enviar por correo el contenido del reporte interactivo.
Más información
Si desea obtener más información acerca de los temas aquí tratados puede hacerlo en:
Configuración de envío de correo desde OCI.
Configuración de una instancia APEX.
Crear aplicaciones APEX.



