Quantcast
Channel: Oracle Blog : apex
Viewing all 142 articles
Browse latest View live

Tablas Pivot en Oracle APEX 5

$
0
0

Ahora con APEX es muy fácil crear informes de tipo tablas pivot, con esta nueva funcionalidad en los reportes interactivos podemos mostrar la información como necesitamos.

Por ejemplo supongamos que tenemos una tabla de Gastos por Año, que tiene 4 columnas: ID, GASTO, IMPORTE y FECHA.

CREATE TABLE "DEMO_GASTOS"

   ( "ID" NUMBER,

     "Gasto" VARCHAR2(30),

     "Importe" NUMBER,

     "Fecha" DATE,

     CONSTRAINT "DEMO_GASTOS_PK" PRIMARY KEY ("ID") ENABLE

   )

/

CREATE SEQUENCE   "DEMO_GASTOS_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 121 CACHE 20 NOORDER NOCYCLE

/

CREATE OR REPLACE TRIGGER "bi_DEMO_GASTOS"

before insert on "DEMO_GASTOS"            

for each row

begin

if :new."ID" is null then

   select "DEMO_GASTOS_SEQ".nextval into :new."ID" from sys.dual;

end if;

end;

/

ALTER TRIGGER "bi_DEMO_GASTOS" ENABLE

/

Los datos de la tabla pueden descargar el archivo demo_gastos.txt desde la aplicación demo AQUI.

Creamos un reporte interactivo con la tabla DEMO_GASTOS, con la siguiente consulta SQL:

Select "Gasto",

sum("Importe") as "Importe",

to_char("Fecha",'YYYY') as "Fecha"

from DEMO_GASTOS

group by "Fecha", "Gasto"

En mi ejemplo tengo más de 100 registros cargados.


Ahora vamos a hacer uso de la funcionalidad de Pivot.

Hacemos clic en el botón Acciones -->Format -->Pivot

  • Pivot Columns = Fecha
  • Row Columns = Gasto
  • Functions = SUM
  • Column: Importe

Aplicamos los cambios y podemos ver el resultado:

Recordemos que para conservar el cambio, debemos guardar el reporte como primario, alternativo o privado, según nuestras necesidades.

Cómo podemos ver crear Informes de tipo pivot en APEX resulta muy sencillo con esta nueva funcionalidad de los Informes Interactivos.

Para ver el ejemplo en acción, visita la aplicación demo que he desarrollado para mostrar todos los ejemplos que escribo en acción! APLICACION DEMO

Hasta Pronto!


Creando un Gráfico de Barras en Oracle APEX 5.0

$
0
0

Sabemos que los gráficos son muy necesarios a la hora de querer presentar nuestros reportes en nuestras aplicaciones en APEX, ya que le permite al usuario ver los datos de forma más visual y es por ello que hoy quiero mostrarte cuan sencillo es crear un gráfico en APEX.

Primero de todo, creamos una página en blanco en nuestra aplicación.

Luego, creamos una región de tipo Chart que la llamaremos Gráfico.

1) En la Serie colocamos:

a) Nombre: Demo

b) Tipo: Barra

2) En Origen:

select null link , d.dname etiqueta , COUNT(e.empno) Empleados from emp e , dept d where e.deptno = d.deptno group by d.dname, d.deptno

En Atributos del Gráfico

1) Título: Empleados por Departamentos

2) En Diseño

a) Ancho: 800

b) Altura: 500

3) En Color de la Serie

a) Esquema: Aspecto 1

b) Nivel: Serie

c) Tipo de Entramado: No

4) En Eje X

a) Título: Departamentos

b) Tamaño: 12 En

5) En Eje Y

a) Título: Empleados

b) Tamaño: 12

6) En Leyenda

a) Mostrar: Derecha

b) Título: Leyenda

c)) Orientación de Elemento: Vertical

7) Guardamos y ejecutamos la página

Si queremos mostrar los pilares en distinto color podemos usar en “Color de la Serie” en vez de Nivel igual a Serie usar Nivel igual a Punto, (pero deberemos quitar la leyenda del gráfico ya que no mostrará el nombre de la Serie).


Crear Enlace a Reporte

Creamos una página en blanco y luego una región de tipo Informe Interactivo que contenga la siguiente consulta SQL de Origen:

select e.empno, e.ename, e.job, e.sal, e.comm, e.deptno

from emp e, dept d

where e.deptno = d.deptno

Luego creamos un Elemento de Página Oculto que guardará el número de departamento, y lo llamaremos P2_DEPTNO.

Regresamos a la Página 1 (donde tenemos el gráfico) y editamos la consulta SQL de la Serie, reemplazando la misma por la siguiente:

select 'f?p=&APP_ID.:2:&APP_SESSION.::NO:RIR:IREQ_DEPTNO:'||d.deptno link

     , d.dname etiqueta

     , COUNT(e.empno) Empleados

from emp e

     , dept d

where e.deptno = d.deptno

group by d.dname, d.deptno

Lo que hemos agregado fue el enlace pasándole en la URL el filtro del número de Departamento para el reporte interactivo usando.

Cuando hacemos clic en una columna del gráfico, por ejemplo la que corresponde al departamento RESEARCH que tiene 5 empleados, podemos ver que filtra el reporte interactivo mostrando los empleados del departamento seleccionado.


En otro post explicaré cómo podemos crear filtros para nuestros reportes interactivos desde la URL.

Ver el demo del ejemplo AQUI

Hasta Pronto!

Crear una Aplicación de Hoja de Cálculo Web en Oracle APEX 5

$
0
0

Siempre hemos hablado de las aplicaciones de Bases de Datos, por ello, en este artículo quiero introducirte en la creación de Aplicaciones de tipo Hoja de Cálculo Web. Con este tipo de aplicaciones los usuarios finales pueden gestionar datos estructurados y sin estructurar sin necesidad de un desarrollador. La hoja de cálculo web permite a los usuarios:

  • Crear y compartir contenido a través de la web con tan sólo un explorador web.
  • Organizar páginas web en una jerarquía y crear enlaces cruzados entre páginas.
  • Crear y gestionar datos tabulares mediante una función embebida denominada Cuadrículas de Datos.
  • Crear informes interactivos con SQL a partir de las estructuras de datos existentes en la base de datos.
  • Mostrar en una página los datos de informes y cuadrículas de datos, en forma de gráficos o informes.
  • Anotar páginas con archivos, etiquetas y notas. Las imágenes asociadas se pueden mostrar en línea dentro del contenido de la página.
  • Buscar contenido de página (con la función de búsqueda incorporada).
  • Gestionar los usuarios que se pueden conectar y, tras ello, gestionar cuáles podrán leer, escribir o administrar la aplicación (autenticación y autorización).

Vamos a crear una aplicación de Hoja de Cálculo Web para mostrar en forma breve las capacidades de la misma. Para ello ingresamos a la página de Inicio de Apex y hacemos clic en el botón Crear.

Seleccionamos Hoja de Cálculo Web y clic en Siguiente:

Colocamos el título y tenemos la opción de habilitar el uso de SQL y PL/SQL como también que se muestre una pequeña guía de Instrucción y luego hacemos clic en el botón Crear Hoja de Cálculo Web, posteriormente hacemos clic en el botón Ejecutar Hoja de Cálculo Web.

Ingresamos las credenciales de inicio de sesión, según el usuario Apex que estamos usando e iniciamos sesión.

Podemos ver la Página de Inicio de la aplicación como se visualiza en la siguiente imagen:

Editar Propiedades de la Hoja de Cálculo Web.

Vamos al menú Administración y seleccionamos Websheet Properties.

En ésta sección podemos manejar las propiedades de la Hoja de Cálculo Web, como cambiar el nombre, el estado, si está disponible o no, Asignar cuál es la página de Inicio de la aplicación. Determinar el idioma, la localización, el formato de fecha, si queremos resetear la password, el email de la aplicación.

Las siguientes secciones son Detalles (descripción de la aplicación), Logo (imagen o texto), Styles (por defecto o personalizado usando CSS)

Finalmente tenemos las secciones Autenticación (si usamos por defecto la autenticación de cuentas de Application Express o podemos editar la autenticación), Autorización (por defecto, personalizado o permitir el acceso público a la aplicación) y SQL (permitir o no SQL)

Si editamos cualquiera de estos campos nos lleva a la página de Edición de Propiedades.

Modificar la Página de Inicio por Defecto

Cuando creamos la aplicación de Hoja de Cálculo Web se crea una página de Bienvenida por defecto, nosotros podemos personalizar dicha página siguiendo los siguientes pasos:

Por ejemplo podemos cargar una imagen dentro del directorio donde están cargados todos los archivos, para ello hacemos clic en el signo + de la sección Files en la lateral derecha de la página, debajo del cuadro Control Panel:

Para Eliminar o Editar una sección simplemente hacemos clic en el botón Editar de la sección de Bienvenida:

En el caso de eliminar hacemos clic en el botón Delete, confirmamos la eliminación haciendo clic en el botón OK de la ventana emergente.

Crear nueva Sección

Desde el menú Create, seleccionamos new Section:

Tenemos dos opciones, una sección de tipo texto y la otra de tipo navegación.

Ingresamos una de tipo texto y creamos la sección.

Cambiar idioma

Podemos cambiar el idioma de la aplicación haciendo clic en el botón Lenguage en la parte superior derecha de la aplicación:

Ayuda

Si necesitamos la ayuda para conocer como colocar por ejemplo una imagen, hacemos clic en el botón Ayuda que está al lado del botón de idioma y seleccionamos la ficha Sintaxis de Marca:

Buscamos la sección Imágenes y allí encontraremos la información de cómo incluir en las secciones una imagen e incluso el enlace de descarga de la misma.

Volvemos a la Sección creada inicialmente y agregamos la imagen de las palmeras.

E ingresamos la información de la imagen:

[[image: myimage ]]

[[image: nombredeimagen.jpg ]]

[[image: myimage | width="600" alt="mi imagen" ]]

Que en mi caso sería:

[[image: Palmeras ]]

[[image: palms.jpg ]]

[[image: Palmeras | width="600" alt="Las Palmeras de California" ]]

Aplicamos los cambios en la sección de texto y podemos ver la imagen cargada.

Crear Nueva Página

Desde el Menú Crear hacemos clic en Nueva Página la cual la llamaremos Empleados. La página esta en blanco.

Creamos un Informe de la tabla Emp. Para ello seleccionamos Nuevo Informe del Menú Informes:

Origen del Informe: Tabla

Nombre de la Tabla o Vista: EMP

Nombre del Informe: Empleados

Hacemos clic en el botón Siguiente y en confirmar hacemos clic en el botón Crear Informe.

De este modo tenemos creado un Informe Interactivo de la tabla EMP.

Como podemos ver crear una aplicación de Hoja de Cálculo Web es inmensamente fácil, hay muchas otras capacidades que podemos hacer el tema de la Cuadrícula de Datos que gestionan datos que utiliza la aplicación.

Este tipo de aplicaciones es ideal para usuarios que no tienen experiencia en programación y desean realizar una aplicación de tipo Wiki rápidamente y con un acabo muy profesional.

Te invito a que explores cada apartado de este tipo de aplicaciones para generar tu propia aplicación de Hoja de Cálculo Web.

Hasta Pronto!!!

Añadiendo y Editando una Cuadrícula de Datos en una Aplicación de Hoja de Cálculo Web en Oracle APEX 5

$
0
0

En esta oportunidad quiero mostrarte cómo puedes agregar una cuadrícula de datos en tu hoja de cálculo web y manipular los datos de la misma.

En el artículo anterior habíamos creado una Aplicación Demo de Hoja de Cálculo Web. Vamos a ingresar a la aplicación y desde el menú “Data Grid” seleccionamos “New Data Grid”

Tenemos dos opciones crear el Data Grid desde cero ingresando nosotros mismos las columnas del Grid como lo vemos en la imagen de abajo:

O tenemos la posibilidad de “Copiar y Pegar” datos desde una planilla Excel.

Abrimos la planilla Excel de ejemplo tasks_2015.xlsx (que la dejaré para descarga) y copiamos todos los datos de la planilla:

Volvemos a la aplicación y pegamos todos los datos dentro del recuadro “Paste Spreadsheet Data” colocamos un nombre y alias y marcamos la casilla donde nos indica que la primera fila es nombre de columnas:

Hacemos clic en el botón Upload

Podemos ver que el “Data Grid” se creó correctamente.

Manipular Datos del Data Grid

Podemos ordenar columnas en forma ascendente, descendente, ocultar columnas y agregar un control break como lo hacemos con los Informes Interactivos:

Podemos crear filtros en el Data Grid, por ejemplo en la columna STATUS seleccionamos el filtro On-Hold


Podemos ver que se crea un filtro y el cuadro de datos nos muestra todos los registros en el cual el status es On-Hold, podemos eliminar el filtro haciendo clic en la x.


Algo muy interesante que tambien podemos hacer es modificar los datos de varias filas a la misma vez. Por ejemplo desde el botón Manage seleccionamos Rows --> Replace

Se abre una ventana modal y allí por ejemplo podemos cambiar todos los registros que dicen en el Status “On-Hold” que pasen a estar “Pending”

Y aplicamos los cambios y veremos que nuestro filtro queda sin registros y podemos eliminarlo hacienda clic en la x para mostrar todos los registros del Data Grid.

Hay muchas otras funcionalidades desde el Botón Manage que lo iremos viendo en sucesivos artículos, pero lo interesante de todo es que es muy intuitivo su uso para los usuarios finales que no tienen experiencia en programación.

Además disponemos del botón Acciones que nos brinda todas las facilidades para personalizar el Data Grid a nuestro gusto de igual forma como lo hacemos cuando trabajamos con los Informes Interactivos, aquí te dejo un artículo donde puedes ver las diferentes formas de personalizar un Reporte Interactivo.

Hasta la próxima!

Cómo usar Elementos de Aplicación en Oracle APEX 5.0

$
0
0

En nuestra aplicación en APEX generalmente usamos los elementos a nivel página y no a nivel aplicación. Los elementos que son a nivel de aplicación lo usamos para mantener el estado de la sesión. Estos elementos se pueden definir mediante cálculos o procesos, o bien transfiriendo valores en una dirección URL.

La diferencia que existe entre ambos ámbitos es que el elemento de tipo página está asociada a una página determinada, en cambio cuando el elemento es a nivel aplicación dicho elemento no está asociado a una página determinada sino que se utiliza para toda la aplicación.

Por ejemplo podemos usar un elemento de aplicación para mostrar en el Menú de Navegación la cantidad de Empleados y Departamentos que tenemos cargados en nuestra base de datos.

Para ello vamos a crear una aplicación demo de escritorio con un Informe Interactivo de la tabla EMP y otra página con un Informe Interactivo de la tabla DEPT.

Para contabilizar los registros de cada tabla necesitamos crear un Cálculo de Aplicación para cada tabla, ya que necesitamos contar cuantos empleados hay y cuantos departamentos hay para mostrarlo en el Menú de Navegación. Para ello en primer lugar vamos a crear dos elementos de Aplicación, uno para albergar el cálculo del total de Empleados y otro para albergar el total de Departamentos.

Nos dirigimos a Componentes Compartidos de la aplicación y en la sección Lógica de Aplicación seleccionamos “Elementos de Aplicación”.

Hacemos clic en el botón Crear >

  • Nombre: Emp
  • Ámbito: Aplicación

En Ámbito tenemos dos opciones: Global y de Aplicación, especificaremos Global si la sesión de Application Express se comparte entre más de una aplicación y el valor del elemento debe ser el mismo para todas las aplicaciones. De lo contrario, especificaremos de Aplicación (éste es el valor por defecto), en nuestro caso será de Aplicación.

Nota:Las aplicaciones pueden compartir la misma sesión si sus autenticaciones tienen los mismos atributos de cookies de sesión. El atributo Ámbito de los elementos de las aplicaciones debe ser el mismo en dichas aplicaciones.

Los demás atributos aceptamos los valores por defecto.

Creamos el segundo elemento de aplicación que lo llamaremos DEPT.

Ahora vamos a crear los cálculos para estos elementos de aplicación.

Nos dirigimos a Componentes Compartidos de la aplicación y en la sección Lógica de Aplicación seleccionamos “Cálculos de Aplicación”.

Crear Cálculo para Elemento de Aplicación EMP

Hacemos clic en el botón Crear

Elemento --- Elemento de Cálculo: EMP

Frecuencia --- Punto de Cálculo: Antes de Cabecera

Cálculo --- Tipo de Cálculo: Consulta SQL (devolver valor único)

                  Cálculo: select count(*) from emp

Hacemos clic en el botón Crear Cálculo

Crear Cálculo para Elemento de Aplicación DEPT

Hacemos clic en el botón Crear

Elemento --- Elemento de Cálculo: DEPT

Frecuencia --- Punto de Cálculo: Antes de Cabecera

Cálculo --- Tipo de Cálculo: Consulta SQL (devolver valor único)

                   Cálculo: select count(*) from dept

Hacemos clic en el botón Crear Cálculo.

Disponemos de los elementos de aplicación y los cálculos para cada elemento. Ahora vamos al Menú de Navegación para poder mostrar el valor resultante de los cálculos.

Personalizar Menú de Navegación

Nos dirigimos a Componentes Compartidos de la aplicación y en la sección Navegación seleccionamos “Menú de Navegación”.

Seleccionamos “Escritorio Menú de Navegación” y allí se va a mostrar las entradas del menú de navegación: Inicio, Empleados y Departamentos.

Hacemos clic en el enlace Empleados para editarlo.

  • En Imagen/Clase ingresamos un icono de “Font Awesome” por ejemplo podemos usar fa-users.
  • En Etiqueta de Entrada de Lista: Empleados [&EMP.]
  • Borrar Cache: RIR

Y guardamos los cambios. De igual modo seleccionamos la entrada del menú de navegación Departamentos para editarlo.

Hacemos clic en el enlace Empleados para editarlo.

  • En Imagen/Clase: fa-building-o
  • En Etiqueta de Entrada de Lista: Departamentos [&DEPT.]
  • Borrar Cache: RIR

Regresamos a la aplicación y la ejecutamos:

Cómo podemos ver ahora en el menú de navegación podemos visualizar la cantidad de registros que tenemos en las tablas EMP y DEPT.

De esta forma podemos realizar cálculos y/o procesos que se muestren en toda nuestra aplicación de manera muy sencilla usando los elementos de Aplicación.

Será hasta el próximo artículo!

Which Oracle Development Tool?

$
0
0

I was just in Istanbul last week for the Turkish Oracle User Group TROUG Days 2016, where I gave my popular Oracle development tools overview presentation covering Forms, APEX, ADF, JET and MAF.

One interesting thing from discussions with Oracle developers is that everybody tends towards wanting one tool for all purposes. It is a natural and understandable response for Oracle developers with an Oracle Forms background, because for many years we only had one tool

However, with the tools available today, there is no need to limit ourselves to one tool.

  1. Almost everyone with an Oracle database should be able to use Oracle APEX. It comes for free with the database and is a very capable tool.
  2. If you are using Oracle Forms, you should also be using APEX
  3. If you are using Oracle ADF, you should also be using APEX
  4. Some applications are better built in Forms than APEX
  5. Some applications are better built in ADF than APEX

Bloquear y Desbloquear una Página en Oracle APEX 5.0

$
0
0

Cuando un equipo de desarrolladores está trabajando en el desarrollo de una aplicación es muy importante disponer de una funcionalidad que le permita a los desarrolladores bloquear las páginas con la que están trabajando del resto del equipo para que los demás desarrolladores no puedan editar la o las paginas en la cual el desarrollador está trabajando actualmente, hasta que no libere las páginas para el acceso a todos los desarrolladores. Para cumplir con esto existe en Oracle APEX el “Bloqueo de Páginas”.

Determinar si una Página está bloqueada

Podemos ver en la vista de Informe de nuestra aplicación el listado de todas las páginas y una columna que indica si la página está bloqueada o no. Si el candadito está abierto significa que la página esta desbloqueada y si el candadito está cerrado significa que la página está bloqueada.

Bloquear y Desbloquear una página desde la página de Inicio de la Aplicación

  1. Desde la página de Inicio del Espacio de Trabajo, hacemos clic en el Creador de Aplicaciones
  2. Seleccionamos la Aplicación
  3. En la barra de búsqueda, hacemos clic en el icono “Ver Informe” o el icono “Vista Detalle” si está disponible.
  4. Hacemos clic en el icono de Bloquear (el candadito)
  5. Ingresamos un comentario en el campo de comentario

6.Hacemos clic en el botón “Bloquear Páginas


Para desbloquear simplemente hacemos clic en el candado cerrado y luego hacemos clic en el botón “Desbloquear” de la ventana emergente.

Bloquear y Desbloquear Página desde la Página de Bloqueos en Utilidades de la Aplicación

  1. Desde la página de Inicio del Espacio de Trabajo, hacemos clic en el Creador de Aplicaciones
  2. Seleccionamos la Aplicación
  3. Hacemos clic en el icono Utilidades
  4. En “Utilidades específicas de Páginas” en la lateral derecha de la página, hacemos clic en “Utilidades de Página Cruzada

  1. Seleccionamos “Bloqueos de Página
  2. Ingresamos un comentario
  3. Hacemos clic en el botón “Bloquear Selección


Para desbloquear, simplemente seleccionamos las páginas que queremos desbloquear y hacemos clic en el botón “Desbloquear Selección” y el candadito queda abierto.

Bloquear y Desbloquear Página desde el Diseñador de Páginas

Ingresamos al Diseñador de Páginas de una página al cual queremos bloquear, y hacemos clic en el icono del candado abierto que se encuentra en la barra de iconos e ingresamos un comentario en la ventana emergente que se abre.


Posteriormente el icono pasa a estar en verde con el candado cerrado, para desbloquear la página hacemos clic en el icono y luego en la ventana emergente hacemos clic en el botón Desbloquear.

De esta forma muy sencilla podemos tener control de las páginas que estamos editando y no preocuparnos que nuestro equipo de desarrollo modifique algo en el cual estamos actualmente trabajando.

Hasta pronto!

 

Oracle REST Data Services 3.0.5 is available

$
0
0

Friends,

Oracle REST Data Services 3.0.5 is available for download. The link is http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html

A recap of what's new in Oracle REST Data Services 3.0.x onwards:

The previous version 2.0.x required Oracle Application Express (APEX) (4.2 onwards) to be installed if you wanted to define and use RESTful Services. However, in the new versions, APEX is no longer required. Oracle REST Data Services will install a specialized schema for itself when you run it the first time.

Oracle Relational Database (RDBMS) tables and views can be exposed as REST API endpoints, if you use SQL Developer (4.1 onwards). So you can insert, delete, update and query table data using REST.

Plus, Oracle NoSQL Database tables can now be exposed as REST API endpoints. You can insert, delete, update and query NoSQL table data using REST.

You can store JSON documents in document collections managed by the database, and retrieve them as need be. The interface to the Oracle Database Document Store is provided by SODA for REST.

Documentation can be found at https://docs.oracle.com/cd/E56351_01/index.htm


Usando el Plugin “Stripe Report” de tipo Acciones Dinámicas en Oracle APEX 5.0

$
0
0

El plugin que presentamos en este artículo, nos permite mostrar en forma intercalada colores en las filas de nuestros Informes Interactivos, permitiéndonos presentar nuestros Informes con un agradable diseño.

Crear Aplicación e Informe Interactivo

Para mostrar cómo usamos el Plugin, vamos a crear una aplicación de tipo escritorio con un Informe Interactivo con la siguiente consulta de Origen:

SELECT e.EMPNO

,     e.ENAME

,     e.JOB

,     m.ename MGR

,     e.HIREDATE

,     e.SAL

,     e.COMM

,     d.dname DEPTNO

FROM #OWNER#.EMP e

,   #OWNER#.EMP m

,   #OWNER#.DEPT d

WHERE e.mgr = m.empno (+)

AND   e.deptno = d.deptno (+)


Para mostrar en nuestro informe las filas intercaladas de color necesitamos usar el plugin “Stripe Report” y crear una Acción Dinámica dentro de nuestro Informe Interactivo.

Instalar Plugin “Stripe Report”

Desde la página de inicio de la aplicación, hacemos clic en “Componentes Compartidos”:

En la sección “Otros Componentes” hacemos clic en “Plugins”.

Hacemos clic en el botón “Importar” luego hacemos clic en el botón Browse… seleccionamos el archivo sql: dynamic_action_plugin_com_oracle_apex_stripe_report.sql, hacemos clic en el botón “Siguiente”, nuevamente clic en “Siguiente”, indicamos que se instale el Plugin en la aplicación que hemos creado para el ejemplo y finalmente hacemos clic en el botón “Instalar Plugin”.


Crear Acción Dinámica

Regresamos a la página donde se encuentra nuestro Informe Interactivo de Empleados:

Hacemos clic sobre el Informe Interactivo con el botón derecho del mouse y seleccionamos “Crear Acción Dinámica”

En el panel derecho de Propiedades:

En la sección Identificación

Nombre: Reporte Stripe

En la sección Cuando

Evento: Después de Refrescamiento

Tipo de Selección: Región

Región: Empleados

En la sección Avanzada

Ámbito de Evento: Estático

Hacemos clic en Acción Verdadera “Mostrar” del panel de la izquierda y desde el panel de propiedades de la derecha:

En la sección Identificación

Acción: Stripe Report [Plugin]

En la sección Configuración

Stripe Color: LemonChiffon

En la sección Opciones de Ejecución

Evento: Reporte Stripe

Arrancar cuando el Resultado del Evento Sea: Verdadero

Arrancar al Cargar Página: Sí

Guardamos los cambios

 

Ahora cuando ejecutemos la página podremos ver que se visualiza en el Informe Interactivo las filas intercaladas de color amarillo.

El plugin está disponible en la aplicación “Sample Dynamic Actions” de la galería de aplicaciones empaquetadas de Oracle Application Express.

Hasta Pronto!

Acciones Dinámicas ejecutando Código PL/SQL

$
0
0

El siguiente ejemplo extraído del demo de las acciones dinámicas de APEX vamos a recrear un ejemplo en el cual usaremos una acción dinámica ejecutando código PL/SQL que actualice el informe interactivo de los empleados e incremente su salario en un 10%.

Crear Informe Interactivo de Empleados

Lo primero que necesitamos realizar es la creación de un Informe Interactivo de la tabla EMP con la siguiente consulta SQL:

SELECT e.EMPNO

,     e.ENAME

,     e.JOB

,     m.ename MGR

,     e.HIREDATE

,     e.SAL

,     e.COMM

,     d.dname DEPTNO

FROM EMP e

,   EMP m

,   DEPT d

WHERE e.mgr = m.empno

AND   e.deptno = d.deptno

Crear Botón “Actualizar Salario en un 10%”

Creamos un botón que lo llamaremos “Actualizar Salario en un 10%” dentro de la región del Informe Interactivo de Empleados y la posición del botón le asignamos “Barra de Búsqueda a la Derecha del Informe Interactivo”.

En Apariencia, la plantilla del botón “Text with Icon”, en Directa le indicamos en “Sí” y finalmente en Classes CSS de Icono, asiganos en “fa-cog” y en posición del icono le indicamos en “Left”.

En Comportamiento definimos que la Acción este “Definida por Acción Dinámica”.

Crear Acción Dinámica “Ejecutar Código PL/SQL”

Desde el Diseñador de Páginas hacemos clic con el botón derecho del mouse sobre el nombre del botón ACTUALIZAR_SALARIO y creamos una acción dinámica:

- Identificación

               Nombre: Actualizar Salario

- Cuando

               Evento: Clic

               Tipo de Selección: Botón

               Botón: ACTUALIZAR_SALARIO

En Acción Verdadera

- Identificación

               Acción: Ejecutar Código PL/SQL

- Código PL/SQL

               update emp set sal = sal * 1.1;

- Opciones de Ejecución

               Arrancar cuando Resultado de Evento Sea: Verdadero

               Arrancar al Cargar Página: No

 

Crear Acción TRUE “Refrescar”

Ahora necesitamos crear una acción verdadera para refrescar el reporte interactivo y muestre el salario actualizado del empleado.

Desde el Diseñador de Páginas hacemos clic con el botón derecho del mouse sobre Verdadero y seleccionamos Crear Acción True:

- Identificación

               Acción: Refrescar

- Elementos Afectados

               Tipos de Selección: Región

               Región: Empleados

- Opciones de Ejecución

               Evento: Actualizar Salario

               Arrancar cuando Resultado de Evento Sea: Verdadero

               Arrancar al Cargar Página: No

Crear Acción TRUE “Alerta”

Desde el Diseñador de Páginas hacemos clic con el botón derecho del mouse sobre Verdadero y seleccionamos Crear Acción True:

- Identificación

               Acción: Alerta

- Configuración

               Texto: Salario Actualizado!

- Opciones de Ejecución

               Evento: Actualizar Salario

               Arrancar cuando Resultado de Evento Sea: Verdadero

               Arrancar al Cargar Página: No

Cuando ejecutamos la página y luego hacemos clic en el botón Actualizar Salario por un 10% veremos que el salario de los empleados es actualizado en un 10% y se abre una ventanita de alerta modal en el cual nos muestra el mensjae que ha sido actualizado todos los registros del reporte interactivo.

De esta forma podemos implementar diferentes tipos de actualizaciones en nuestros reportes interactivos usando acciones dinámicas ejecutando Código PL/SQL.

Hasta la próxima!

Plantilla de Región Hero

$
0
0

Generalmente cuando creamos nuestras páginas en APEX, la región de la “Ruta de Navegación” se muestra con la plantilla “Title Bar”, como vemos en la imagen de abajo:

Para que nuestras páginas se muestren como lo hacen las aplicaciones empaquetadas y esta región sea más vistosa, podemos elegir usar la plantilla “Hero”.

Desde el diseñador de páginas, nos ubicamos en la región de la Ruta de Navegación y seleccionamos en la sección de Apariencia, la plantilla: “Hero”.

Seleccionamos además en Clases CSS de Icono por ejemplo este icono de Font Awesome “fa-area-chart” que representa un gráfico.

Luego en el Título de la Región lo cambiamos al nombre de la aplicación, por ejemplo “Demo”.

Guardamos los cambios y ejecutamos la página.

Podemos ver lo fácil que es cambiar los estilos de la región usando las distintas alternativas que nos provee el Tema Universal 42.

Hasta pronto!

Usando las Opciones de Creación en Oracle APEX 5.0

$
0
0

Es interesante conocer para qué podemos usar las Opciones de Creación en Oracle APEX y es por ello que hoy te traigo este tema.

Utilizamos estas “Opciones de Creación” para mostrar de forma condicional la funcionalidad específica en una aplicación, en otras palabras las opciones de creación son valores predefinidos que determinan si un componente está activado dentro de una aplicación.

Las opciones de creación tienen dos valores posibles:

-        Incluir: Se utiliza esta función, es decir, si se especifica un atributo como “Incluir” el motor de Application Express lo considera en tiempo de ejecución.

-        Excluir: No se utiliza ningún atributo marcado con esta opción de creación, es decir, el motor de Application Express lo trata como si no existiera en la aplicación.

 Para nuestro ejemplo hemos creado una aplicación que tiene 7 páginas:

    • Inicio (Página 1)
    • Informe Empleados (Página 2)
    • Pantalla Empleados (Página 3)
    • Informe Departamentos (Página 4)
    • Pantalla Departamentos (Página 5)
    • Gráfico (Página 6)
    • Página de Conexión (Página 101)

Si ejecutamos la aplicación podemos ver todas las páginas en funcionamiento en nuestra aplicación.

Como ejemplo vamos a agregar una opción de creación de tipo “Excluir” en la página 4 y 5, correspondiente al Informe/Pantalla de Departamentos de nuestra aplicación demo.

Ingresamos a Componentes Compartidos de la Aplicación, en la sección Seguridad, seleccionamos “Opciones de Creación


Hacemos clic en el botón Crear e ingresamos los siguientes datos:

-        Aplicación: Nombre de nuestra aplicación

-        Opción de Creación: Siguiente Versión

-        Estado: Excluir

-        Valor por defecto en la Exportación: - igual que el Estado Actual -

-        Comentarios: Mover a la siguiente Versión.

 

Hacemos clic en el botón “Crear Opción de Creación

Regresamos a nuestra aplicación y entramos al Diseñador de Páginas de la Página 4 “Departamentos

En el panel de la derecha de propiedades, en la sección Configuración, seleccionamos en Opción de Creación: Siguiente Versión.

Guardamos los cambios.

Hacemos lo mismo para la página 5 “Editar Departamentos

Por último nos queda excluir la entrada al Menú de Navegación de nuestra aplicación, para ello vamos a componentes compartidos y seleccionamos en la sección de Navegación, el Menú de Navegación.

Hacemos clic en el enlace “Escritorio Menú de Navegación” y luego hacemos clic en el enlace “Departamentos” y en la ficha Configuración, seleccionamos en Opción de Creación que sea “Siguiente Versión”.

Y aplicamos los cambios.

Regresamos a la aplicación y la ejecutamos:

Podemos ver que la entrada al menú de navegación “Departamentos” ya no está visible y si colocamos en la URL la pagina 4 o 5 obtendremos un error ya que el motor de Apex no lo encuentra.

De este modo podemos nosotros condicionar los atributos o funcionalidades que queremos que se muestren o no se muestren en nuestra aplicación.

Hasta Pronto!

Application Express 5.1 Early Adopter

$
0
0

As you might have heard, the first early adopter release of APEX 5.1 is out. You can sign up for your own workspace at https://apexea.oracle.com/ to try it out.

The major new feature of APEX 5.1 is the interactive grid which merges the popular interactive report features with the ability to actually change data. My users love the interactive reports in APEX 5.0, so I am looking forward to seeing how the interactive grids will work in practice.

Note that this is the first early adopter release, and Oracle has published a long list of things that don't work yet. But it is definitely good enough for you to play around with, get a first impression and start considering how you will use the APEX 5.1 features in your applications. Just don't try to run the EA in Internet Explorer...

Application Express and Enterprise Manager

$
0
0

For those who do not know (yet), Oracle Application Express (APEX) is Oracle’s database-centric Rapid Application Development (RAD) tool, used to fast-develop web applications with SQL and PL/SQL.

All editions of the Oracle Database have APEX installed by default, and you do not need to pay for it, provided you have purchased the database license.  Inside APEX, you can use or study the built-in packaged applications – like Customer Tracker or P-Track (Project Tracker). Of course, this is not a kiddy tool -  one example of a large APEX application, developed by Oracle,  is the Oracle Store itself here.

APEX is also available in the Oracle Public Cloud, as a part of the Database Schema Service. For details on this service, you can go to this link.

A friend asked “Most of my applications are in Oracle Application Express. I want to use the Enterprise Manager Diagnostics and Tuning Packs, and I want to know if I can monitor pages, modules and/or applications of APEX in Diagnostics Pack using EM 12c.”.

Well, although there is no direct application-level integration between Enterprise Manager and APEX, you can use the Diagnostics and Tuning Packs to diagnose and tune the APEX application database, in the same manner as you would use the packs to do this for any other database. This is because APEX is very much database-centric. 

The other possibility is to use Oracle Real User Experience Insight (RUEI) to monitor the APEX end user pages, and find out which pages are slow (based on the page load time dimension in RUEI), and then drill down to the database level. RUEI is explained in my article series here.

Estoy confirmada para mi primera presentación en OTN México 2016!

$
0
0

Estoy muy feliz de anunciar que estaré como speaker en el OTN Tour de este año en la ciudad de Mexico. :)


Presentaré una sesión de 45 minutos y un taller práctico de 2 horas!

Muy pronto estará la agenda disponible en el sitio web del Grupo de Usuarios Oracle de México ORAMEX y tambien los mantendré informados desde mi blog.

Gracias y seguimos evangelizando Oracle Application Express en Español!!!


Nueva Característica que se viene en Oracle APEX 5.1 - Cambiar Opciones de Plantilla en Vivo!

$
0
0

Esto sí que será una característica muy bien recibida en la comunidad de desarrolladores de APEX J

Tendremos al fin la posibilidad de cambiar los atributos de opciones que tenemos disponibles en las plantillas que usemos totalmente en vivo, es decir, mientras ejecutamos nuestra página en APEX podemos cambiar dichos atributos y podemos ir viendo los cambios en vivo, de igual manera que podemos hacerlo cuando cambiamos los colores usando el Theme Roller!

Veamos a lo que me refiero. Estoy trabajando en la instancia gratuita de ejemplo en APEX 5.1 (Aquí puedes solicitar un Espacio de Trabajo gratuito para aprender sobre las nuevas características de APEX 5.1)

He instalado el demo de “Sample Charts” desde las aplicaciones empaquetadas.

Este demo fue reconstruido completamente en la versión 5.1, seguiremos hablando de este demo en otros artículos.

Ejecutamos el demo y vemos la página de inicio que tiene una lista con iconos.

Para que nosotros podamos editar las opciones en la plantilla que usa la Lista en la versión 5.0, necesitamos ir al Diseñador de Páginas y seleccionar la región de la lista en Atributos y abrir las Opciones de la Plantilla, como lo vemos en la siguiente imagen:

Pero en la versión 5.1 podremos cambiar estas opciones en vivo, mientras ejecutamos nuestra aplicación.

Para ello, veamos un ejemplo, desde la ejecución de la página de inicio de nuestra aplicación demo “Sample Charts” hacemos clic en “Quick Edit” que se encuentra en la barra de herramientas de los desarrolladores, en mi caso en la parte inferior de la pantalla:

Al activar la edición rápida se activará el icono de herramientas de la región de Lista, pulsamos en el icono y se abrirá una ventana modal con las opciones de la plantilla que estamos usando actualmente en la Lista:

En vivo podemos ir cambiando las opciones de la plantilla y podemos ir viendo cómo queda esos cambios en nuestra región de Lista.

Por ejemplo cambiamos el Style por Basic e inmediatamente podemos ver los cambios en nuestra página.

De esta forma podemos hacer todos los cambios que queramos y sin perder tiempo podemos ver los resultados en ejecución, una maravilla esta nueva característica que tendremos disponible a partir de la versión Apex 5.1.

Hasta Pronto!!!

Entendiendo la Sintaxis de la URL de APEX

$
0
0

Para poder entender cómo maneja APEX la URL y poder crear enlaces en nuestra aplicación, es necesario comprender todos los parámetros que usa en la URL.

Para ello, vamos a descomponer la URL:

http://servidor:8080/apex/f?p=117:1:2720071830300::NO::P1_ITEM:123

  • http://servidor:8080/ es el nombre de nuestro servidor y el puerto asignado
  • apex/ es el nombre del descriptor de acceso a datos. Se le llama DAD y describe cómo el servidor http se conecta al servidor de base de datos para que pueda cumplir con una solicitud http. El valor por defecto es apex.
  • f?p: esto significa que se llama a un procedimiento PL/SQL denominado “f” que le pasa un argumento “p”. Este, a su vez, está constituido por nueve argumentos concatenados por comas que conforman un solo argumento.

Algunos parámetros se pueden omitir, pero siempre se tiene que indicar su posición con los dos puntos.

No obstante, es importante saber en qué consiste cada uno de estos nueve argumentos:

- APP_ID: es un ítem incorporado de APEX que nos indica cuál es el id —el número identificativo— de nuestra aplicación.

- APP_PAGE_ID: es el número de la página que se está ejecutando en ese momento.

- APP_SESSION: es el número de sesión que le corresponde al usuario en un momento concreto.

- REQUEST: es una solicitud HTML.

- DEBUG: es un indicador que muestra si nuestra aplicación está en modo de depuración o no. Tiene dos parámetros: YES y NO.

- Clear Cache: presenta una lista de páginas para que elijamos las que queremos limpiar de la caché.

- Item1, item2, etc.: es un listado de nombres de elementos de nuestra aplicación.

- ValorItem1, valorItem2, etc.: es el valor que tiene cada elemento y aparecen también concatenados por coma.

- PrinterFriendly: es un indicador que permite saber si está activada la impresión amigable o no.

En el ejemplo de la URL los 9 argumentos serían:

-      APP_ID: 117

-      APP_PAGE_ID: 1

-      APP_SESSION: 2720071830300

-      REQUEST:

-      DEBUG: NO

-      Clear Cache:

-      Item1, item2...: P1_ITEM

-      ValorItem1, valorItem2…: 123

-      PrinterFriendly:

En el próximo artículo veremos como filtrar Informes Interactivos pasandole los parámetros en la URL.

Hasta Pronto!

Filtrar Informes Interactivos con parámetros en la URL de APEX

$
0
0

Los Informes Interactivos son muy potentes y ahora mucho más en esta versión 5.0 de Apex que nos permite tener en una sola página múltiples Informes Interactivos, una característica muy solicitada por los desarrolladores desde hace mucho tiempo.

Gracias al gran poder de los Informes Interactivos el usuario final puede crear filtros, añadir columnas calculadas, hacer agrupaciones, crear gráficos, crear divisiones de control, resaltar filas o celdas y mucho más!

En el caso de los desarrolladores muchas veces suele pasar que necesitan filtrar un informe interactivo por un valor determinado ya sea que se muestre en la misma página o se dirija a otra página mostrando el informe interactivo filtrado.

Para realizar esto es necesario que conozcamos cómo podemos filtrar nuestros Informes Interactivos con parámetros pasados a la URL.

Si quieres refrescar la memoria y conocer cómo es la sintaxis de la URL en Apex, te invito a que leas este artículo.

Sintaxis para filtrar Informes Interactivos con Parámetros de la URL

Para filtrar un Informe Interactivo guardado necesitamos utilizar la sintaxis REQUEST

IR[region static ID]_<COLUMN_NAME>

Por ejemplo:

IR[EMP]_ENAME

Para crear un filtro usamos el Nombre del Elemento y el Valor del Elemento.

IR[region static ID]<operator>_<target column alias>

Por ejemplo:

IR[EMP]C_ENAME:KING

En el caso de que exista un solo IR en nuestra página no necesitamos usar el static ID, en caso contrario si tenemos más de un IR en nuestra página es obligatorio usar el static ID para identificar el IR correspondiente.

Por ejemplo:

IR[EMP]_ROWFILTER:SALES

Los operadores válidos son:

   C = Contains

   EQ = Equals (este es por defecto)

   GTE = Greater than or equal to

   GT = Greater Than

   LIKE = SQL Like operator

   LT = Less than

   LTE = Less than or equal to

   N = Null

   NC = Not Contains

   NEQ = Not Equals

   NLIKE = Not Like

   NN = Not Null

   NIN = Not In (escape the comma separated values con barra invertida, \)

   IN = In (escape the comma separated values con barra invertida, \)

   ROWFILTER = Row Text Contains (esta busca en todas las columnas que se muestran en el informe con el tipo STRING o NUMBER)

Demo

Vamos a crear en nuestra página en APEX dos regiones de tipo Informe Interactivo:

  • Región 1: Informe Interactivo de la tabla DEPT - select * from dept
  • Región 2: Informe Interactivo de la tabla EMP - select * from emp

Cada Informe Interactivo tendrá un Identificador estático que lo llamaremos DEPT y EMP.

El hecho de que podamos disponer de varios Informes Interactivos en una sola página en APEX nos permite muy fácilmente mostrar la información de nuestros reportes en distintas formas y aplicar diferentes tipos de filtros.

En este caso tenemos en la columna izquierda el IR de los Departamentos y en la columna de la derecha el IR de los Empleados.

Podríamos por ejemplo insertar en la columna del nombre de los departamentos un enlace que filtre el informe interactivo de los empleados, es decir, al hacer clic en el nombre del departamento que el informe de empleados se filtre y muestre todos los empleados que pertenecen a dicho Departamento.

Para ello desde el diseñador de páginas vamos a la región del reporte interactivo de Departamentos:

Expandimos las columnas y seleccionamos la columna DNAME y en el panel de propiedades en la sección Identificación seleccionamos que el tipo sea Enlace.

Luego nos dirigimos a la sección Enlace y hacemos clic en el botón del Destino.

Abrimos el Destino y colocamos los siguientes datos:

- Página: 2

- Borrar Cache: '2,CIR'

- Definir Elementos:

Nombre: IR[EMP]_DEPTNO

Valor: #DEPTNO#

El nombre del elemento se refiere a IR[region static ID]_<COLUMN_NAME> y el valor es el valor de la columna DEPTNO.

Aceptamos los cambios y se cierra la ventana emergente.

Además debemos colocar el Texto del Enlace: #DNAME#

Ejecutamos la página y podemos ver el resultado, haciendo clic en el departamento SALES.

De esta forma al hacer clic en cualquiera de los departamentos se filtrará el informe interactivo de Empleados mostrando los Empleados que pertenecen al Departamento seleccionado.

Como podemos ver, trabajar con los filtros a través de la URL es muy sencillo y podemos mostrar todo tipo de filtros en nuestros informes interactivos.

Hasta Pronto!!!

Oracle Sets New Security Patch Record

$
0
0

Oracle has released the July 2016 Critical Patch Update, and it covers a record 274 security issues across pretty much every Oracle product. If you are an Oracle customer, you are almost certainly running a vulnerable product and should patch.

WebLogic and GlassFish feature prominently with four bugs with a CVSS 3.0 rating of 9.8. This is the scary type that can be remotely exploited without authentication, meaning that any user that can access your server can execute the exploit. Worse, all of them have low attack complexity, so you can expect bad guys to be able to use them.

In the category of products with these critical security issues, you also find a lot of Oracle's applications, including Hyperion, Oracle Agile, Oracle Communications, Oracle Health Sciences, and Oracle Retail.

Embarrassingly, the product "Oracle Secure Global Desktop" also contains one of these worst-case bugs...

It is interesting to see that JDeveloper also features on this quarter's list, though "only" with a seriousness score of 8.8. Apparently ADF Faces contains an easily exploitable vulnerability that allows a low privileged attacker with network access via HTTP to compromise Oracle and take over Oracle JDeveloper. So maybe that's why my JDev keeps crashing.

Oracle Application Express is not a fixture on this list the way Java is, but this quarter APEX does make an appearance with a couple of moderate severity issues. You should update your APEX to 5.0.4, which is the brand-new version released July 12th. 

Cursor activo en el cuadro de búsqueda del Informe Interactivo

$
0
0

Hace unos días me hicieron la siguiente consulta, cómo se puede colocar el cursor del mouse en el cuadro de búsqueda del Informe Interactivo cuando ingresamos a la página y considero que si bien es simple puede ser algo muy interesante de conocer.

La idea es que cuando ingresamos en la página que contiene nuestro Informe Interactivo, se tenga el cursor del mouse activo en el cuadro de búsqueda, como se ve en la siguiente imagen:

Para realizar esto, lo podemos hacer de varias formas, la que te cuento en este artículo se basa en crear una Acción Dinámica en nuestro Informe Interactivo que se base en un Selector de jQuery.

Creamos primero un “Identificador Estático” en nuestro Informe Interactivo que lo llamaremos DEPT. Para ello ingresamos al Diseñador de Página, seleccionamos el Informe y en el panel de la derecha de propiedades en la sección Avanzada ingresamos DEPT en la casilla del Identificador Estático.

Luego necesitamos determinar el identificador del cuadro de búsqueda, para ello desde nuestro navegador, usando en mí caso el Inspector de Elementos (Inspect Element (Q)) de Firefox o en Chrome el Inspect. Tales herramientas se acceden seleccionando el elemento que queremos determinar el identificador y con el botón derecho del mouse seleccionamos la opción del Inspector:

Se abrirá una ventana adicional por debajo el cual podremos ver el nombre del identificador buscado, que en nuestro caso se llama: DEPT_search_filed


Ahora que ya sabemos cuál es el identificador del Selector, vamos al Diseñador de Páginas, seleccionamos el Informe Interactivo y agregamos una Acción Dinámica que la podemos denominar Cursor Activo, cuya acción verdadera será:

Identificación

               Acción: Definir Foco

Elementos Afectados

               Tipo de Selección: Selector de jQuery

               Selector de jQuery: #DEPT_search_field

Opciones de Ejecución

               Evento: Cursor Activo

               Arrancar cando el Resultado de Evento Sea: Verdadero

               Arrancar al Cargar Página:

Guardamos los cambios.

De esta forma cada vez que ingresemos a la página del Informe Interactivo el cursor estará activo en el cuadro de búsqueda del mismo.

Hasta Pronto!

Viewing all 142 articles
Browse latest View live