APEX 5.2 que Revolucionarán tu Trabajo con Datos
Como desarrolladores de APEX, conocemos el poder de construir aplicaciones increíbles sobre nuestra base de datos Oracle. Pero seamos honestos: integrar datos de fuentes externas, especialmente de bases de datos remotas en la nube o servicios REST de terceros, siempre ha sido un desafío. Pues bien, APEX 5.2 introduce funcionalidades revolucionarias que resuelven estos problemas de una manera sorprendentemente elegante, convirtiendo a APEX en un verdadero centro de integración, capaz de orquestar datos sin importar dónde residan: en la nube, on-premise o en APIs de terceros.
Takeaway 1: Adiós, Database Links. Hola, SQL Remoto sobre HTTP.
Imaginen ejecutar consultas SQL, DML e incluso bloques PL/SQL en una base de datos Oracle remota sin necesidad de configurar un Database Link. Pues bien, esto ya es una realidad en APEX 5.2.
Esta capacidad es posible gracias a una nueva funcionalidad en Oracle REST Data Services (ORDS) que actúa como la tecnología habilitadora. La base de datos remota debe estar expuesta a través de una instancia moderna de ORDS (versión 17.3 o posterior), la cual provee un endpoint REST que recibe peticiones POST. Estas peticiones contienen un payload JSON con el SQL a ejecutar, encapsulado en un atributo statement_text.
El principal beneficio es la flexibilidad sin precedentes para conectar de forma segura bases de datos que están en redes completamente diferentes, como una instancia en la nube y otra on-premise, utilizando estándares web universales como HTTP y JSON.
Como se mencionó en la presentación que inspiró este artículo, el impacto es enorme:
"...esos datos en realidad provienen de otra base de datos Oracle sin un database link, solo HTTP, por lo que esa base de datos Oracle puede estar en cualquier lugar: en la nube, fuera de la nube, donde sea que te imagines, ¿verdad? Así que es una forma muy flexible de obtener datos de otros..."
Ahora, un consejo de experto: si tus bases de datos están en el mismo centro de datos, un Database Link tradicional probablemente seguirá siendo la opción más rápida. Esta nueva capacidad brilla cuando conectar sistemas es complejo, como unir tu entorno on-premise con un servicio en la nube donde un DB Link es impráctico o imposible de configurar.
Takeaway 2: Tus Componentes Ahora "Hablan" con Fuentes de Datos Externas
Así como ahora podemos apuntar un componente a una 'Base de Datos Remota', APEX 5.2 introduce otra potente opción en esa misma lista de 'Ubicación': la 'Web Source'.
Esta opción se alimenta de un nuevo componente compartido llamado "Web Source Modules". Piensen en ellos como el nuevo pilar en sus Componentes Compartidos: una definición centralizada y reutilizable para cualquier API REST que necesiten consumir.
Lo brillante de esta funcionalidad es que APEX puede "descubrir" automáticamente la estructura de un feed JSON, analizando la respuesta para identificar las columnas y los tipos de datos disponibles. A partir de ahí, los componentes estándar de APEX que todos conocemos y amamos (como los Reportes Interactivos y Clásicos) pueden usar "Web Source" como su origen de datos. Esto significa que puedes construir un reporte sobre una API REST, como el feed de terremotos del USGS, con la misma facilidad que si estuvieras consultando una tabla local.
Una Nota Importante sobre el Soporte de Componentes: Es crucial saber que en su lanzamiento inicial, APEX 5.2 planea habilitar estas nuevas ubicaciones de datos ('Base de Datos Remota' y 'Web Source') para los Reportes Clásicos, Reportes Interactivos, Calendarios CSS y Gráficos. El soporte para otros componentes, como los Formularios, se introducirá en fases posteriores.
Takeaway 3: APEX es Ahora un Cliente REST "Inteligente", No Solo un Consumidor
Y aquí, colegas, es donde reside la verdadera magia. Es un cambio de paradigma en la eficiencia. Al consumir un servicio REST basado en ORDS, APEX no se limita a descargar todos los datos para procesarlos localmente.
Comparemos el antes y el después. Antes, para permitir a un usuario filtrar un reporte basado en una API que devolvía 60,000 filas, habríamos tenido que traer esos 60,000 registros a través de la red para filtrarlos en el servidor de APEX o en el navegador.
Ahora, ocurre algo increíble: cuando un usuario final filtra un Reporte Interactivo (por ejemplo, usando el cuadro de búsqueda), APEX traduce automáticamente esa acción a la sintaxis de filtrado específica de ORDS y la envía al servidor remoto.
En lugar de mover una cantidad masiva de datos, la aplicación le pide al servicio remoto únicamente los datos exactos que necesita. Esto hace que tus aplicaciones sean increíblemente rápidas y escalables, incluso trabajando con conjuntos de datos enormes.
Takeaway 4: Transforma Datos Externos en el Origen, sin Código Adicional
Un problema común al integrar APIs es que los datos no siempre vienen en formatos nativos de Oracle. El ejemplo clásico son las marcas de tiempo de Unix (timestamps), que son solo un número largo y no un tipo de dato DATE.
La solución en APEX 5.2 es innovadora: la capacidad de crear "Columnas Derivadas" directamente en la definición del Web Source Module.
Por ejemplo, para convertir una columna de timestamp de Unix llamada time_column a un tipo de dato DATE de Oracle, simplemente puedes agregar una columna derivada con esta expresión SQL:
to_date('19700101','YYYYMMDD') + (time_column / 1000 / 24 / 60 / 60)
La clave aquí es la parte de time_column / 1000. Muchas APIs, como la del USGS, entregan el timestamp en milisegundos. Esa división es necesaria para convertirlo a los segundos que la aritmética de fechas de Oracle requiere. Este pequeño detalle muestra la profundidad de la integración.
El beneficio es inmenso. La lógica de transformación de datos se mantiene centralizada, declarativa y limpia, directamente en la fuente de datos. Ya no es necesario crear vistas intermedias o funciones PL/SQL adicionales solo para formatear los datos de una API.
Conclusión: El Futuro de APEX es Conectado
Estas funcionalidades representan un salto estratégico. Colectivamente, liberan a APEX de ser solo una herramienta para aplicaciones sobre una base de datos local. APEX se está transformando en una poderosa plataforma de integración de bajo código, diseñada para un ecosistema de datos distribuido, capaz de orquestar y presentar información de manera nativa y eficiente.
Con estas nuevas herramientas, ¿qué sistemas externos que antes parecían inalcanzables podrías integrar ahora en tus aplicaciones APEX?
Comentarios
Publicar un comentario