Para imprimir y exportar datos desde el Servicio APEX en Oracle Cloud, podemos utilizar APEX Office Print (AOP).
AOP nos permite generar documentos basados en plantillas creadas en Word, Excel, PowerPoint, HTML y Text.
Si quieres capacitarte en AOP puedes acceder al único curso en español en video clases desde este link: APEX Office Print Workshop.
En esta publicación, gracias a la ayuda de Dimitri mostraré una forma de configurar nuestro propio servidor APEX Office Print (AOP) que funciona con Oracle APEX Application Development Service.
La parte especial del servicio Oracle APEX es que es un servicio completamente administrado, lo que significa que la base de datos, ORDS y APEX están preconfigurados, parcheados automáticamente, escalables automáticamente y optimizados. Creo que es increíble, pero la desventaja es que no tienes acceso directo a la máquina y a la red.
La instalación es un proceso de 3 pasos:
- Importar la imagen del servidor AOP en nuestro propio Oracle Cloud
- Crear una instancia de Compute basada en esta imagen.
- Crear una puerta de enlace a esta instancia
La siguiente es una guía paso a paso (Gracias Dimitri!!!)
(1) Primero debemos iniciar sesión en apexofficeprint.com, vamos a la sección Descargas y hacemos clic en AOP Gateway with Compute
Esto copiará la URL de la imagen AOP, que importaremos en nuestro propio Oracle Cloud. (si queremos tenerlo no solo en memoria podemos pegar la URL en un notepad)

Vamos a nuestro propio panel de Oracle Cloud y hacemos clic en Compute – Custom Images:

Hacemos clic en el botón Import Image:

Le asignamos un nombre y copiamos el enlace que está en el portapapeles a la URL de almacenamiento de objetos:

Hacemos clic en el botón Import Image:
Nota en caso que nos de error en el source de la URL es porque no convirtió los espacios en blanco con el %20. Entonces agregamos eso a la URL.
Por ejemplo se copia la URL de esta manera: …….3ardud/b/aop/o/APEX Office Print 21.1 Compute Image y debemos modificarla de esta forma: 3ardud/b/aop/o/APEX%20Office%20Print%2021.1%20Compute%20Image

(2) Puede que tarde unos minutos en crear la imagen, pero una vez que esté en verde, podemos crear una instancia (Create Instance) a partir de esta imagen:

Una vez creada la Imagen, hacemos clic en el botón Create Instance. Asignamos un nombre a la instancia, seleccionamos dónde deseamos que esté la instancia de Compute y seleccionamos una Imagen y un shape:


La selección de la forma (shape) realmente dependerá de cuánto imprimamos. El equipo de AOP recomienda, por ejemplo, la forma flexible AMD Rome: VM.Standard.E3.Flex (2 OCPU, 20GB Mem) que costará alrededor de $60 al mes. En mi caso estoy usando la opción Always Free para pruebas. Para ver las diferentes shape hacemos clic en el boton Change Shape.

Seleccionamos la red y asignamos una dirección IP pública. Tengamos en cuenta que la IP pública no es realmente necesaria, pero solo facilita la activación de AOP ya que puede conectarse directamente a la instancia de Compute:


Descargamos la clave privada para poder conectarnos usando SSH, despues no podremos hacerlo.
Finalmente presionamos en el botón Create:

Ahora se creará la Compute Instance:

Unos minutos más tarde, la instancia de AOP preconfigurada está en funcionamiento.
Anote la dirección IP privada y haga clic en el enlace de Subnet (debajo de la IP Privada):

A continuación, hacemos clic en el nombre de las listas de seguridad (Security List):

Y luego clic en el enlace Default Security… y clic en Add Ingress Rules

Agregamos el puerto en el que se está ejecutando AOP. De forma predeterminada, AOP se ejecuta en el puerto 8010, pero podemos cambiar eso en la instancia si lo deseamos y presionar Guardar cambios:

La instancia de Compute ahora está completamente configurada.
(3) El problema con el servicio APEX es que solo permite llamadas HTTPS. En lugar de tratar con certificados SSL, haremos uso de la función Gateways en Oracle Cloud que la encontrará en Developer Services – API Management – Gateways.

Crear el Gateway:

Le damos un nombre y presionamos Crear:

Una vez que se crea la puerta de enlace, vamos la sección Deployments (en la lateral izquierda debajo de Resources:

Crear despliegue (Create Deployment):
Damos el nombre AOP y el prefijo de ruta /aop y presionamos el botón Siguiente

La ruta puede ser / y para la URL usamos la URL privada de la instancia de Compute.
Debemos aseguranos de marcar la casilla “Desactivar la verificación SSL”. Nuestra Computación no tiene SSL, pero la puerta de enlace sí y el servicio APEX solo se comunicará con la puerta de enlace.

En la pantalla de descripción general, presionamos el botón Crear.
Y veremos que AOP se está implementando y se activa.

Hacemos clic en Endpoint en la sección Deployments: ¡esta es la URL de nuestro servidor AOP!
Esos son básicamente los pasos para que nuestro propio servidor AOP se ejecute con el servicio APEX.
De hecho, no solo está vinculado al servicio APEX, podemos usar esta técnica para cualquier servicio de Oracle Cloud, como Autonomous Database o nuestra base de datos en otra Compute Instance.
Para administrar el servidor AOP, aquí hay algunos comandos que podemos usar cuando estemos conectado al servidor AOP:
start aop : systemctl start aop
stop aop : systemctl stop aop
status aop : systemctl status aop
autostart at boot : systemctl enable aop
remove autostart at boot: systemctl disable aop
Y ahora ya tenemos nuestro Servidor AOP listo para empezar a imprimir en nuestra aplicaciones APEX!
Artículo Original de Dimitri 🙂 AQUI