oracle application express

39
Definición de Oracle Application Express (APEX) Oracle Application Express (anteriormente llamado HTML DB) es una herramienta RAD (Rapid application development - Desarrollo rápido de aplicaciones) que se ejecuta con una base de datos Oracle. Permite desarrollar aplicaciones en entorno WEB de forma relativamente rápida. APEX puede instalarse en la versión 9.2 de Oracle Database y superiores. A partir de la versión de Oracle Database 11g viene preinstalado por defecto junto con la base de datos. Con Oracle Express Edition (XE) ya viene la versión 2.1 de APEX preinstalada, junto con la base de datos. Instalación previa de Oracle Database En primer lugar y puesto que Oracle Application Express (APEX) necesita Oracle Database como motor de base de datos, tendremos que disponer de un servidor con Oracle Database. A continuación os mostramos algunos enlaces que explican cómo instalar Oracle Database (varias versiones y varias plataformas Windows y Linux): Instalar Oracle Database 10g Express Edition Instalar Oracle Database 10g Express Edition XE en Linux Ubuntu 6.06 Instalar Oracle Database 10g en Windows XP Manual para instalar Oracle 9i en Windows con capturas de pantalla Si disponemos de Oracle XE no será necesario instalar APEX pues ya viene preinstalado. Aunque viene con la versión 2.1 y en nuestro caso utilizaremos la versión 3.2.1 de APEX. Con lo cual explicaremos cómo instalarla para Oracle XE. Instalación de Oracle Application Express (APEX) 3.1.2 con Oracle Express Edition (XE) Tras disponer de Oracle Database XE iniciaremos la descarga de Oracle Application Express (APEX), desde la URL de Oracle: http://www.oracle.com/technology/products/database/application_express/download.html Aceptaremos los términos de licencia y pulsaremos en Download:

Upload: javiergg777

Post on 05-Jul-2015

1.866 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Oracle Application Express

Definición de Oracle Application Express (APEX)

Oracle Application Express (anteriormente llamado HTML DB) es una herramienta RAD (Rapid application development - Desarrollo rápido de aplicaciones) que se ejecuta con una base de datos Oracle. Permite desarrollar aplicaciones en entorno WEB de forma relativamente rápida.

APEX puede instalarse en la versión 9.2 de Oracle Database y superiores. A partir de la versión de Oracle Database 11g viene preinstalado por defecto junto con la base de datos.

Con Oracle Express Edition (XE) ya viene la versión 2.1 de APEX preinstalada, junto con la base de datos.

Instalación previa de Oracle Database

En primer lugar y puesto que Oracle Application Express (APEX) necesita Oracle Database como motor de base de datos, tendremos que disponer de un servidor con Oracle Database. A continuación os mostramos algunos enlaces que explican cómo instalar Oracle Database (varias versiones y varias plataformas Windows y Linux):

Instalar Oracle Database 10g Express Edition

Instalar Oracle Database 10g Express Edition XE en Linux Ubuntu 6.06

Instalar Oracle Database 10g en Windows XP

Manual para instalar Oracle 9i en Windows con capturas de pantalla

Si disponemos de Oracle XE no será necesario instalar APEX pues ya viene preinstalado. Aunque viene con la versión 2.1 y en nuestro caso utilizaremos la versión 3.2.1 de APEX. Con lo cual explicaremos cómo instalarla para Oracle XE.

Instalación de Oracle Application Express (APEX) 3.1.2 con Oracle Express Edition (XE)

Tras disponer de Oracle Database XE iniciaremos la descarga de Oracle Application Express (APEX), desde la URL de Oracle:

http://www.oracle.com/technology/products/database/application_express/download.html

Aceptaremos los términos de licencia y pulsaremos en Download:

Page 2: Oracle Application Express

Deberemos ser usuarios registrados de Oracle, si no lo somos podemos registrarnos y descargarlo posteriormente.

El fichero que se descargará es apex_3.1.2.zip, con un tamaño de 88,4 MB.

Descomprimiremos el fichero ZIP en la carpeta de instalación de Oracle XE (por ejemplo), con el nombre de carpeta "apex":

A continuación abriremos una ventana de Shell de comandos (MS-DOS). Para ello accederemos al botón "Inicio" - "Ejecutar" y escribiremos "cmd". Pulsaremos "Aceptar". En la ventana de shell que aparece accederemos a la carpeta donde hayamos copiado APEX, con el comando:

cd oraclexe/apex

(asumiendo que la carpeta de instalación de Oracle Express Edition es "oraclexe" y la carpeta de los script de APEX es "apex").

A continuación abriremos SQP*Plus para conectarnos a Oracle XE, con el comando:

sqlplus /nolog

Nos conectaremos a la base de datos por defecto, con el usuario que ha iniciado sesión en el sistema operativo, con el comando:

connect / as sysdba

Si queremos conectarnos a otra base de datos o con otro usuario ejecutaremos:

connect fernando/alonso@ajpdsoft

Donde:

"fernando": nombre del usuario con el que nos conectaremos a Oracle.

"alonso": contraseña del usuario con el que nos conectaremos a Oracle.

"ajpdsoft" es el nombre SID de la base de datos Oracle.

Ejecutaremos el script "apexins" con el comando:

@apexins password SYSAUX SYSAUX TEMP /i/

Se iniciará la ejecución de todas las consultas SQL necesarias para la instalación de APEX (este proceso puede tardar varios minutos):

Page 3: Oracle Application Express

El final del resultado de la ejecución del comando anterior para instalar Oracle Application Express (APEX):

..... Sesión modificada. ...Adjust flow owner to install owner 10 filas actualizadas. Confirmación terminada. ...Adjust flow version 9 filas actualizadas. 1 fila actualizada. Confirmación terminada. VII. L O A D E N G L I S H D I C T I O N A R Y Disparador modificado. ...10000 rows ...20000 rows ...30000 rows ...40000 rows ...50000 rows ...60000 rows ...70000 rows temporización para: English Dictionary Transcurrido: 00:05:06.85 -- Now beginning upgrade. This will take several minutes.------- -- Ensuring template names are unique ------- -- Migrating metadata to new schema ------- -- Switching builder to new schema ------- -- Migrating SQL Workshop metadata ------- -- Recompile WWV_DBMS_SQL ------- -- Upgrading new schema. ------- -- Copying preferences to new schema. ------- -- Updating user account expiration. ------- Upgrade completed successfully no errors encountered. -- Upgrade is complete ----------------------------------------- temporización para: Upgrade Transcurrido: 00:00:59.32 ...End of install if runtime install ...create null.sql temporización para: Development Installation Transcurrido: 00:25:10.98 Desconectado de Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

El siguiente script a ejecutar en SQL*Plus (tendremos que volver a conectarnos con "sqlplus /nolog") servirá para crear la carpeta de imágenes que utilizará APEX:

@apxldimg.sql c:/oraclexe ORACLE_HOME

(asumiendo que Oracle Express Edition (XE) está instalado en "c:/oraclexe" y que existe una variable de entorno llamada ORACLE_HOME, creada por la instalación de Oracle XE).

Page 4: Oracle Application Express

El resultado de la ejecución del script anterior:

SQL> @apxldimg.sql c:/oraclexe ORACLE_HOME Procedimiento PL/SQL terminado correctamente. antiguo 1: create directory APEX_IMAGES as '&1/apex/images' nuevo 1: createSQL> @apxldimg.sql c:/oraclexe ORACLE_HOME Procedimiento PL/SQL terminado correctamente. antiguo 1: create directory APEX_IMAGES as '&1/apex/images' nuevo 1: create directory APEX_IMAGES as 'c:/oraclexe/apex/images' Directorio creado. Procedimiento PL/SQL terminado correctamente. Procedimiento PL/SQL terminado correctamente. Confirmación terminada. Temporización para: Load Images Transcurrido: 00:09:18.23 Directorio borrado.

A continuación ejecutaremos el script que permitirá establecer la contraseña para el usuario administrador de APEX (admin):

@apxxepwd.sql contraseña_usuario

(donde "contraseña_usuario" será la contraseña para el usuario ADMIN de APEX).

El resultado de la ejecución del script anterior:

SQL> @apxxepwd.sql contraseña_admin_APEX Sesión modificada. ...changing password for ADMIN Procedimiento PL/SQL terminado correctamente. Confirmación terminada.

Con estos pasos tendremos Oracle Application Express 3.2 instalado en Oracle XE.

Para comprobar que funciona correctamente abriremos una ventana de un navegador de Internet, por ejemplo Mozilla Firefox y escribiremos la siguiente URL:

http://127.0.0.1:8080/apex/apex_admin

(para conectarnos a la administración de APEX).

Introduciremos el usuario "admin" y la contraseña introducida en el último script ejecutado y pulsaremos "Conectar":

Page 5: Oracle Application Express

Tras iniciar sesión en la URL de administración de APEX nos mostrará esta ventana:

Desde donde podremos: gestionar los servicios (traducciones, logs, estado de sesión, colas de correo, valores de entorno, componentes compartidos), gestionar los espacios de trabajo (solicitudes, informes, crear espacios de trabajo, asignar usuarios, etc.), gestionar aplicaciones (atributos, estado de creación, esquemas de análisis), controlar la activadad (visitas de página, informes de calendario, actividad del desarrollador, intentos de conexión, informes de entorno).

A continuación, como primer paso para crear nuestra aplicación, crearemos un espacio de trabajo y le asignaremos un usuario. Para ello, desde la ventana de administración de APEX, seleccionaremos "Gestionar Espacios de Trabajo", nos aparecerán varias tareas, seleccionaremos "Crear Espacio de Trabajo":

Page 6: Oracle Application Express

Nos mostrará un asistente, en primer lugar indicaremos en "Nombre del Espacio de Trabajo" el nombre que queramos darle, en nuestro caso "contabilidad". Podremos poner una descripción del Espacio de Trabajo (aunque no es obligatoria). Pulsaremos "Siguiente" para continuar:

Indicaremos el esquema de Oracle a utilizar, podemos utilizar uno existente o crear uno nuevo. En nuestro caso crearemos uno nuevo, llamado "contabilidad" con 100MB de cuota de espacio en disco:

Page 7: Oracle Application Express

Cada Espacio de Trabajo tendrá un usuario administrador del mismo, en el siguiente paso indicaremos el nick de este usuario, la contraseña , nombre y apellidos y el email:

Por último el asistente de creación de Espacio de Trabajo de APEX nos mostrará un resumen con los datos seleccionados, si todo es correcto pulsaremos "Crear" para crear el Espacio de Trabajo:

Page 8: Oracle Application Express

Con el texto:

Ha solicitado proporcionar un nuevo Espacio de Trabajo.

Información de Espacio de Trabajo:

Nombre contabilidad Identificador de Grupo de Seguridad Sistema Asignado Descripción ...

Información del Administrador:

Usuario ADMIN Correo Electrónico [email protected]

Información de Esquema:

Volver a Usar Esquema Existente No Nombre de Esquema CONTABILIDAD Se creará un tablespace. FLOW_XXX Archivo de Datos para Tablespace C:/ORACLEXE/ORADATA/XE/FLOW_XXX.DBF

El asistente de APEX nos mostrará un mensaje indicando el resultado de la operación:

Page 9: Oracle Application Express

Con el texto:

El espacio de trabajo se ha provisionado correctamente. El espacio de trabajo contabilidad proporcionado con el administrador ADMIN. El usuario de base de datos CONTABILIDAD se ha creado con el tablespace por defecto FLOW_2 con el archivo de datos C:/ORACLEXE/ORADATA/XE/FLOW_2.DBF

A continuación crearemos los usuarios que tendrán acceso como desarrolladores a este espacio de trabajo. Para ello, desde "Gestionar Espacios de Trabajo", pulsaremos en "Gestionar Desarrolladores y Usuarios":

Aparecerá una lista con los usuarios actuales, entre los que se encuentra el usuario "ADMIN" creado anteriormente de forma automática, que es el usuario administrador del espacio de trabajo "contabilidad". Pulsaremos en "Crear" para crear un nuevo usuario:

Page 10: Oracle Application Express

Introduciremos los datos del nuevo usuario (nombre, correo electrónico, esquema por defecto ("contabilidad"), para el Espacio de Trabajo deberemos seleccionarlo de la lista, pulsando el botón de la izquierda:

Seleccionaremos el espacio de trabajo para el usuario, en nuestro caso "contabilidad":

Seguiremos introduciendo el resto de datos (nombre, apellido, descripción, contraseña). Indicaremos también si el usuario tendrá permisos para ser usuario desarrollador (podrá hacer y modificar aplicaciones) y si será usuario administrador (tendrá permisos de administración del

Page 11: Oracle Application Express

espacio de trabajo seleccionado). Si en ambas opciones marcamos "No", el usuario sólo tendrá permisos para ejecutar las aplicaciones, no podrá desarrollar aplicaciones ni modificar las existentes. También indicaremos si el usuario estará bloqueado (no tendrá acceso) y si deberá cambiar la contraseña en el próximo inicio de sesión. Una vez rellenados todos los datos pulsaremos "Crear" para finalizar la creación del nuevo usuario:

Si no ha habido errores, nos mostrará una lista donde aparecerá el nuevo usuario creado ("alonso", con nombre "alonso" y apellido "fernando", para el espacio de trabajo "CONTABILIDAD"):

Page 12: Oracle Application Express

Crear aplicación de facturación en Oracle Application Express (APEX)

Tras crear el espacio de trabajo y los usuarios para éste, procederemos a iniciar sesión en APEX con el usuario desarrollador creado anteriormente ("alonso"). Para ello, desde la barra de direcciones del navegador web escribiremos la siguiente URL:

htt://localohost:8080/apex

(donde "localhost" será la IP o nombre del equipo servidor de APEX y "8080" será el puerto por defecto de APEX).

Introduciremos el nombre del espacio de trabajo al que nos conectaremos "contabilidad", el usuario "alonso" y la contraseña. Pulsaremos "Conectar" para iniciar sesión en APEX:

Nos mostrará el panel de control para crear aplicaciones con Oracle Application Express (APEX). Desde esta ventana podremos crear una nueva aplicación (Application Builder), ejecutar sentencias SQL, Gestionar Servicios, Gestionar Usuarios de Application Express, Controlar Actividad, etc. En nuestro caso, puesto que queremos crear una aplicación pulsaremos en "Application Builder":

Page 13: Oracle Application Express

Cuando se crea un espacio de trabajo, por defecto se crea una aplicación de ejemplo, llamada "Sample application". Pulsaremos "Crear" para iniciar el asistente que nos guiará paso a paso para crear la aplicación:

Podremos crear una aplicación obteniendo los datos de una hoja de cáculo (como Microsoft Excel), podremos crear una aplicación de demostración (no servirá como aplicación real) o podremos crear una aplicación normal. La definición de Oracle Application Express para cada una de ellas:

Crear Aplicación: crear una aplicación definiendo páginas, seleccionando un esquema de autenticación y especificando una interfaz de usuario. Las páginas se pueden basar en tablas, consultas o consultas desplegables.

A partir de una Hoja de Cálculo: crear una aplicación basada en datos de hoja de cálculo. Cargar o pegar datos de hoja de cálculo para crear una tabla. La aplicación mostrará las capacidades de consulta, inserción, actualización y análisis en la tabla recién creada.

Aplicación de Demostración: instalar o desinstalar las aplicaciones de demostración. Esta opción se puede utilizar para obtener información sobre cómo crear aplicaciones.

En nuestro caso seleccionaremos "Crear Aplicación" y pulsaremos "Siguiente":

Page 14: Oracle Application Express

Introduciremos los siguientes datos:

Nombre: será utilizado para identificar la aplicación por los desarrolladores. Por ejemplo "AjpdSoft Facturación APEX".

Aplicación: valor entero (numérico) que identifica una aplicacón. El identificador de aplicación debe ser único en la base de datos.

Método de creación:

o Nueva: para introducir manualmente todas las páginas.

o Basada en Modelo de Diseño de Aplicación Existente: para reutilizar una definición de aplicación existente. Al utilizar una definición de aplicación existente, se puede ejecutar este asistente sin tener que volver a introducir valores de propiedad de la aplicación.

En nuestro caso seleccionaremos el método de creación "Nueva". Pulsaremos "Siguiente" para continuar:

En el siguiente paso deberemos crear, al menos, una página para la aplicación, seleccionaremos el tipo de página a crear y pulsaremos "Agregar Página". Cuando hayamos agregado todas las páginas que deseemos pulsaremos "Siguiente":

Tipo de página a crear:

En Blanco: crea una página sin ninguna funcionalidad incorporada.

Page 15: Oracle Application Express

Informe: crea una página que contiene el resultado con formato de una consulta SQL. Se puede generar un informe basado en una tabla seleccionada, en una sentencia SELECT de SQL personalizada o en una función PL/SQL que devuelva una sentencia SELECT de SQL proporcionada.

Pantalla: crea una pantalla para actualizar una única fila (registro) de una tabla de base de datos.

Pantalla Tabular: crea una pantalla para realizar operaciones de actualización, inserción y supresión en varias filas de una tabla de base de datos.

Informe y Pantalla: crea una combinación de pantalla e informe de dos páginas. En la primera página, los usuarios seleccionan una fila para actualizar. En la segunda, los usuarios pueden actualizar la tabla o vista seleccionada.

Maestro/Detalle: crea una combinación de pantalla e informe de dos páginas. En la primera página, los usuarios seleccionan una fila para actualizar. En la segunda, los usuarios pueden actualizar la tabla o vista seleccionada y sus detalles asociados.

De momento, puesto que aún no hemos creado las tablas de la aplicación seleccionaremos "En blanco" y pulsaremos "Agregar página":

Pulsaremos "Siguiente" para continuar con la creación de la aplicación:

Seleccionaremos los niveles de separación que deseemos para los menús de nuestra aplicación APEX, en nuestro caso "Un Nivel de Separadores":

Page 16: Oracle Application Express

Los componentes compartidos son elementos de aplicación comunes que se pueden mostrar o aplicar en varias páginas de una aplicación. Para ahorrar tiempo o mantener la consistencia entre las aplicaciones, se pueden copiar los componentes compartidos desde una aplicación existente. Si queremos utilizar componentes compartidos de otras aplicaciones marcaremos "Sí" en "Copiar componentes compartidos de otra aplicación", nos mostrará estas opciones:

La aplicación APEX ya existente de la que queremos copiar los componentes y los componentes que queramos copiar (temas de interfaz de usuario, listas de valores, entradas de barra de navegación, esquemas de autorización, esquemas de autenticación).

En nuestro caso, puesto que queremos crear la aplicación desde cero, seleccionaremos "No" en "Copiar componentes compartidos de otra aplicación" y pulsaremos "Siguiente":

Page 17: Oracle Application Express

Seleccionaremos el esquema de autenticación, el método por el cual los usuarios podrán entrar en la apliacción:

Application Express: será el propio APEX el que muestre una ventana de inicio de sesión con esquema, usuario y contraseña.

Sin autenticación: se podrá acceder a la aplicación directamente, sin necesidad de introducir usuario y contraseña.

Cuenta de Base de Datos: la aplicación leerá el usuario y la contraseña de una tabla existente, definida por el usuario desarrollador o administrador.

En nuestro caso utilizaremos el método de autenticación Application Express para nuestra aplicación APEX.

En esta ventana indicaremos también el Idioma de la aplicación, las preferencias de idioma de usuario y el formato de la fecha:

Seleccionaremos el tema visual para nuestra aplicación. Esto servirá para establecer los colores y el estilo visual de la aplicación APEX:

Page 18: Oracle Application Express

Por último, antes de crear la apliación, nos mostrará una ventana con el resumen de las opciones seleccionadas:

Ha solicitado la creación de una aplicación con los siguientes atributos. Confirme las selecciones.

Aplicación 102 Nombre AjpdSoft Facturación APEX Esquema de Análisis CONTABILIDAD Idioma por Defecto es Separadores Un Nivel de Separadores Esquema de Autenticación por Defecto Autenticación de Application Express Tipo de Tema Estándar Tema de Interfaz de Usuario 10

Marcando la opción "Guardar esta Definición como Modelo de Diseño para Reutilización" podremos utilizar la configuración de esta aplicación para futuras aplicaciones APEX.

Si todo es correcto pulsaremos "Crear" para generar nuestra primera aplicación con Oracle Application Express:

Page 19: Oracle Application Express

El asistente nos mostrará la ventana de configuración y desarrollo de la nueva aplicación creada "AjpdSoft Facturación APEX". Desde esta ventana podremos añadir páginas a la aplicación, ejecutar la aplicación, mantener los objetos de soporte, gestionar los componentes compartidos, exportar/importar aplicaciones, etc. Habrá creado las páginas que le hayamos indicado y una página de conexión (inicio de sesión):

A continuación crearemos las tablas que utilizaremos para la aplicación: clientes, facturas y líneas de factura. Para ello pulsaremos en "Taller de SQL":

Page 20: Oracle Application Express

Pulsaremos en "Explorador de Objetos" para crear las tablas:

Pulsaremos el botón "Crear" y seleccionaremos "Tabla":

Introduciremos los campos que queramos que contenga la tabla "cliente" y el tipo de datos. También podremos indicar si queremos que la columna pueda estar vacía o no. En nuestro caso crearemos, para la tabla "cliente":

codigo (NUMBER): será el campo de clave primaria (primary key), será un número generado automáticamente y único para toda la tabla. Este campo será el que utilicemos para enlazar la factura con el cliente al que corresponda.

nombre (VARCHAR2).

cif (VARCHAR2).

telefono (VARCHAR2).

Introduciremos en "Nombre de la Tabla" el nombre que Oracle le pondrá a la tabla, pulsaremos "Siguiente" para continuar:

Page 21: Oracle Application Express

A continuación indicaremos los datos para establecer la clave primaria (primary key) de la tabla. Seleccionaremos "Rellenado a partir de Nueva Secuencia", en la parte inferior aparecerán los siguientes campos:

Nombre de la Restricción de Clave Primaria: será el nombre interno que Oracle establecerá para el índice que genera, en nuestro caso "cliente_codigo_cp".

Nombre de la Secuencia: puesto que queremos generar una clave primaria que sea un número que se autoincremente, Oracle creará una secuencia para almacenar el último valor e ir autoincrementándolo. Indicaremos aquí el nombre para la secuencia, por ejemplo "CLIENTE_SEQ_CODIGO".

Clave Primaria: seleccionaremos de todos los campos de la tabla el que contendrá los valores que vaya generando la secuencia. El campo será "codigo" y, obviamente, ha de ser de tipo NUMBER.

Pulsaremos "Siguiente" para continuar:

En el siguiente paso de creación de la tabla "cliente" para APEX podríamos agregar las claves foráneas (foreing keys) que quisiéramos. Para el caso de la tabla "cliente" no habrá ninguna, por lo que pulsaremos "Siguiente":

Page 22: Oracle Application Express

En este paso podremos indicar las restricciones que deseemos, por ejemplo que no haya dos clientes con el mismo "cif", para ello seleccionaremos "Único", nos aparecerán los campos de la tabla, en la parte izquierda seleccionaremos el "cif" y pulsaremos la flecha hacia la derecha. De esta forma el asistente de creación de nueva tabla para Oracle APEX creará un nuevo índice para que el valor del campo "cif" de la tabla "cliente" no se repita. Iremos agregando todas las restricciones que deseemos pulsando el botón "Agregar":

También podremos agregar restricciones de tipo lógico, por ejemplo impedir que el usuario introduzca un cif con menos de 6 caracteres, para ello seleccionaremos "Comprobar" y escribiremos el siguiente comando:

LENGTH("cif") >=6

Pulsaremos "Agregar" para añadir esta restricción.

Una vez añadidas todas las restricciones pulsaremos "Terminar" para crear la tabla:

Page 23: Oracle Application Express

Por último el asistente nos mostrará un resumen antes de crear la tabla. Pulsando en "SQL" podremos ver la consulta SQL que el asistente a generado para crear la tabla. Pulsaremos "Crear" para finalizar el proceso:

El SQL generado por el asistente para crear la tabla "cliente":

CREATE table "cliente" (

"codigo" NUMBER(6,0) NOT NULL,

"nombre" VARCHAR2(100) NOT NULL,

"cif" VARCHAR2(20) NOT NULL,

"telefono" VARCHAR2(200),

Page 24: Oracle Application Express

"direccion" VARCHAR2(200),

constraint "cliente_codigo_cp" primary key ("codigo")

)

/

CREATE sequence "CLIENTE_SEQ_CODIGO"

/

CREATE trigger "BI_cliente"

before insert on "cliente"

for each row

begin

if :NEW."codigo" is null then

select "CLIENTE_SEQ_CODIGO".nextval into :NEW."codigo" from dual;

end if;

end;

/

alter table "cliente" add

constraint CLIENTE_CIF

unique ("cif")

/

alter table "cliente" add

constraint CLIENTE_CK1

check (LENGTH("cif") >=6)

/

El asistente nos dejará en la ventana de edición de la tabla "cliente", desde donde podremos modificar la tabla (índices, restricciones, permisos, valores por defecto, cambiar nombre, añadir columnas, vaciar, etc):

De la misma forma, crearemos la tabla "factura":

Page 25: Oracle Application Express

Indicaremos la clave primaria y la secuencia que la generará automáticamente:

En este caso sí crearemos una clave foránea (foreing key) que será "codigocliente" y hará referencia a la tabla "cliente" y a la columna "codigo" de ésta:

Tras crear las claves foráneas necesarias pulsaremos "Siguiente" para continuar con la creación de la tabla "factura":

Page 26: Oracle Application Express

Agregaremos las restricciones que deseemos y pulsaremos "Terminar":

Pulsaremos "Crear" para crear la tabla "factura":

La secuencia SQL generada para crear la tabla "factura":

Page 27: Oracle Application Express

CREATE table "factura" (

"codigo" NUMBER(6,0) NOT NULL,

"numero" VARCHAR2(30) NOT NULL,

"codigocliente" NUMBER(6,0) NOT NULL,

"fecha" DATE NOT NULL,

"importetotal" NUMBER(8,2),

"cobrada" VARCHAR2(1),

"observacion" VARCHAR2(1000),

"tipo" VARCHAR2(30),

constraint "factura_codigo_cp" primary key ("codigo")

)

/

CREATE sequence "FACTURA_SEQ_CODIGO"

/

CREATE trigger "BI_factura"

before insert on "factura"

for each row

begin

if :NEW."codigo" is null then

select "FACTURA_SEQ_CODIGO".nextval into :NEW."codigo" from dual;

end if;

end;

/

ALTER TABLE "factura" ADD CONSTRAINT "FACTURA_FK_CODIGOCLIENTE"

FOREIGN KEY ("codigocliente")

REFERENCES "cliente" ("codigo")

/

alter table "factura" add

constraint FACTURA_UK1

unique ("numero")

/

Por último y de la misma forma, crearemos la tabla "facturalinea" con los campos:

Y la secuencia para la clave primaria:

Page 28: Oracle Application Express

En este caso habrá una clave foránea para enlazar la tabla "facturalinea" con la tabla "factura" por el campo "codigofactura" y "codigo" respectivamente:

La consulta SQL para crear la tabla "facturalinea":

CREATE table "facturalinea" (

"codigo" NUMBER(6,0) NOT NULL,

"codigofactura" NUMBER(6,0) NOT NULL,

"concepto" VARCHAR2(200),

"cantidad" NUMBER(8,2),

"precio" NUMBER(8,2),

"importe" NUMBER(8,2),

constraint "facturalinea_codigo_cp" primary key ("codigo")

)

/

CREATE sequence "FACTURALINEA_SEQ_CODIGO"

/

CREATE trigger "BI_facturalinea"

before insert on "facturalinea"

for each row

begin

if :NEW."codigo" is null then

select "FACTURALINEA_SEQ_CODIGO".nextval into :NEW."codigo" from dual;

end if;

end;

/

ALTER TABLE "facturalinea" ADD CONSTRAINT "FACTURALINEA_FK"

FOREIGN KEY ("codigofactura")

REFERENCES "factura" ("codigo")

Page 29: Oracle Application Express

/

Tras crear las tablas de la aplicación crearemos las páginas para editar (añadir y modificar clientes, facturas, etc.).

En primer lugar crearemos la página para el mantenimiento de los clientes, para ello accederemos a "Application Builder", seleccionaremos nuestra aplicación "AjpdSoft Facturación APEX" y pulsaremos en el botón "Crear página":

En tipo de página seleccionaremos "Pantalla":

Seleccionaremos "Pantalla Tabular":

Page 30: Oracle Application Express

En "Propietario de la Tabla/Vista" seleccionaremos el espacio de trabajo "CONTABILIDAD". En "Operaciones Permitidas" seleccionaremos "Actualizar, Insertar y Suprimir" (serán las acciones permitidas en la ventana web):

Seleccionaremos la tabla "cliente" creada anteriormente para la que crearemos la página APEX:

Page 31: Oracle Application Express

Seleccionaremos los campos que queramos que aparezcan en el formulario web APEX:

Nos mostrará la clave primaria de la tabla (la obtendrá de forma automática), si no la selecciona lo haremos nosotros buscando el campo en el desplegable de "Columna de Clave Primaria 1":

Page 32: Oracle Application Express

Seleccionaremos a continuación "Secuencia existente" para que el asistente de creación de nueva página Oracle Application Express (APEX) genere el trigger (disparador) que ejecutará la secuencia creada al crear la tabla "cliente" para generar el autoincremento de la clave primaria. En el desplegable de la parte inferior "Secuencia" seleccionaremos la secuenca creada anteriormente "CLIENTE_SEQ_CODIGO":

Indicaremos ahora las columnas para las que permitamos que el usuario pueda modificarlas. Las columnas seleccionadas serán modificables vía web, el resto se mostrarán pero no serán modificables:

Page 33: Oracle Application Express

Indicaremos los atributos de la página (título, código, etc):

Indicaremos si queremos utilizar algún separador:

Page 34: Oracle Application Express

Indicaremos la etiqueta para los botones que se crearán (Cancelar, Ejecutar, Suprimir, Fila):

Indicaremos las opciones de bifurcación:

Después de la ejecución de la página: ir a la página "3" (la misma que estamos creando).

Si se hace clic en el botón Cancelar: ir a la página 1 (inicial de la aplicación).

Page 35: Oracle Application Express

El asistente de creación de nueva página de APEX mostrará el resumen de las opciones seleccionadas. Si todo es correcto pulsaremos "Terminar":

Ha solicitado la creación de una página de pantalla tabular con los siguientes atributos. Confirme las selecciones.

Aplicación 102 Página 102 Nombre de la Página Mantenimiento de clientes Título de la Región Pantalla Clientes Juego de Separadores

Etiqueta de Separador Propietario de Tabla CONTABILIDAD Nombre de la Tabla cliente Columnas codigo

nombre cif telefono direccion

Columnas Actualizables nombre cif telefono direccion

Clave Primaria 1 codigo Clave Primaria 2

Ahora podremos ejecutar y probar la nueva página creada de nuestra aplicación APEX. Para ello pulsaremos "Ejecutar página":

Page 36: Oracle Application Express

Este será el aspecto inicial de la página "Mantenimiento de clientes" creada con el asistente de APEX. En la parte inferior aparecerá un menú sólo si el usuario que ha iniciado sesión es un usuario administrador o desarrollador. Para el resto de usuarios no aparecerá.

Pulsando en "Agregar fila" mostrará una ventana web para insertar los datos del nuevo cliente:

Si añadimos los datos "AjpdSoft", "A222222", "999888777", "C/ Nombre calle" para los campos Nombre, Cif, Teléfono y Dirección respectivamente y pulsamos "Agregar Fila" el cliente quedará guardado:

Desde esta ventana web podremos añadir, modificar y eliminar los clientes de nuestra base de datos:

Page 37: Oracle Application Express

Traducción de Oracle Application Express APEX al español

Si tras instalar Oracle Application Express aparece en inglés y queremos traducirlo al español podemos seguir estos pasos:

1. Abrimos una ventana de shell de comandos (MS-DOS) y ejecutamos el siguiente comando:

cd c:/oraclexe/apex/builder/es

(asumiendo que Oracle XE está instalado en "c:/oraclexe" y asumiendo que el fichero descargado de Oracle APEX está en la carpeta "apex", dentro de la anterior).

2. Ejecutamos el siguiente comando (para abrir SQL*Plus):

sqlplus /nolog

3. Nos conectamos a la base de datos de Oracle XE con el comando:

connect / as sysdba;

4. Y por último, para ejecutar el prodecimiento que traducirá APEX al español:

@load_es.sql

Algunas definiciones interesantes de APEX

Espacio de Trabajo: es un área de trabajo compartida donde varios desarrolladores pueden crear aplicaciones. Cada espacio de trabajo tiene el privilegio para analizar uno o varios esquemas de base de datos.

Conclusiones

Como se puede observar en este manual, la filosofía de APEX es bastante sencilla e intuitiva, todo en entorno web. APEX es una herramienta muy pontente para realizar aplicaciones web sin mucho esfuerzo. Aquí hemos demostrado que para realizar una aplicación web que permite consultar, modificar y añadir datos apenas hemos necesitado de conocimientos informáticos avanzados. Y lo que es mejor, no hemos utilizado ni una sola línea de código.

Page 38: Oracle Application Express

Además, tanto Oracle Database Express Edition como Oracle Application Express son productos gratuitos, por lo que se puede hacer este tipo de aplicaciones sin coste en licencias de software. Evidentemente y en teoría Oracle XE no es para uso comercial.

ANEXO

Algunos errores habituales y su solución:

Error al instalar APEX (Oracle Application Express): no aparecen las imágenes y, además, al intentar iniciar sesión no muestra nada. Al cargar la página de inicio da un error el navegador de Internet de Script de Java.

Este error suele ser debido a que no se ha establecido correctamente el prefijo de las imágenes en la instalación de APEX, indicado en "/i/". Por ello, la URL de la imagen queda:

http://127.0.0.1:8080/TEMPhtmldb/....

Cuando debería ser:

http://127.0.0.1:8080/htmldb...

Para solucionarlo sigue estos pasos:

1. Abre una ventana de MS-DOS, desde "Inicio" - "Ejecutar", escribe "cmd" y pulsa "Aceptar". 2. Accede al directorio de instalación de APEX, con el comando MS-DOS:

cd /oraclexe/apex/utilities

(asumiendo que Oracle XE está instalado en "oraclexe" y APEX en "apex")

3. Ejecuta el siguiente comando (para abrir SQL*Plus):

sqlplus /nolog

4. Para conectarnos a la base de datos Oracle XE, ejecutaremos el siguiente comando:

connect / as sysdba;

5. Por último ejecutaremos un script que incluye APEX para "reparar" este problema (ubicado en la carpeta utilities):

@reset_image_prefix.sql

Al ejecutar el script, nos preguntará el nuevo prefijo de las imágenes, pulsaremos INTRO para dejar el de defecto.

El resultado de la ejecución de los comandos anteriores en la ventana de MS-DOS:

C:/>cd /oraclexe/apex/utilities C:/oraclexe/apex/utilities>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Mié Nov 26 02:24:25 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> connect / as sysdba; Conectado. SQL> @reset_image_prefix.sql Enter the Application Express image prefix [/i/] ...Changing Application Express image prefix NEW --- /i/ Procedimiento PL/SQL terminado correctamente. Procedimiento PL/SQL terminado correctamente. Sesión modificada. ...Recreate APEX global Procedimiento PL/SQL terminado correctamente. ...Update image prefix for all internal Application Express applications Procedimiento PL/SQL terminado correctamente. ...Purge all cached region and page entries Procedimiento PL/SQL terminado correctamente. ...Recompiling the Application Express schema Procedimiento PL/SQL terminado correctamente.

Page 39: Oracle Application Express

Image Prefix update complete Desconectado de Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product ion