Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Oracle: Instalar y realizar aplicación web con Oracle Application Express
Bases de Datos


Os mostramos cómo instalar Oracle Application Express (Oracle APEX) en Oracle Express Edition (XE) y cómo crear una aplicación de prueba, accesible vía web desde fuera de nuestra organización.



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):

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:

Instalación de APEX 3.2 en Oracle XE - Descarga de APEX

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":

Instalación de APEX 3.2 en Oracle XE - Carpeta descomprimida de 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/

Instalación de APEX 3.2 en Oracle XE - Ejecución script instalación APEX

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

Instalación de APEX 3.2 en Oracle XE - Mensajes de información tras la ejecución del script de instalación de APEX

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).

Instalación de APEX 3.2 en Oracle XE - Ejecución script crear imágenes APEX

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).

Instalación de APEX 3.2 en Oracle XE - Ejecución script para establecer contraseña ADMIN 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":

Instalación de APEX 3.2 en Oracle XE - Ventana de inicio de sesión para administración de APEX

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

Instalación de APEX 3.2 en Oracle XE - Ventana de administración de APEX

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":

Mi primera aplicación en APEX - Crear espacio de trabajo

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:

Mi primera aplicación en APEX - Crear espacio de trabajo

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:

Mi primera aplicación en APEX - Crear espacio de trabajo

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:

Mi primera aplicación en APEX - Crear espacio de trabajo

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:

Mi primera aplicación en APEX - Crear espacio de trabajo

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 aaa@ajpdsoft.com

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:

Mi primera aplicación en APEX - Crear espacio de trabajo

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":

Mi primera aplicación en APEX - Alta de usuarios para Espacio de Trabajo

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:

Mi primera aplicación en APEX - Alta de usuarios para Espacio de Trabajo

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:

Mi primera aplicación en APEX - Alta de usuarios para Espacio de Trabajo

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

Mi primera aplicación en APEX - Selección de espacio de trabajo para el usuario

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 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:

Mi primera aplicación en APEX - Datos del usuario del espacio de trabajo

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"):

Mi primera aplicación en APEX - Listado de usuarios de los espacios de trabajo

 

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:

Inicio de sesión en APEX para crear aplicación con Oracle Application Express

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":

Panel de control para espacio de trabajo APEX - Application Builder, Taller SQL, Utilidades

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:

Crear aplicación en APEX

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":

Crear aplicación en APEX

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:
    • Nueva: para introducir manualmente todas las páginas.
    • 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:

Introducción de datos para la nueva aplicación

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.
  • 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":

Creación de páginas para la aplicación APEX

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

Creación de páginas para la aplicación APEX

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

Creación de páginas para la aplicación APEX

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:

Crear aplicación con APEX - Opciones de componentes compartidos

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":

Mi primera aplicación APEX - Componentes compartidos

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:

Crear aplicación con Oracle Application Express - Selección de método de autenticación

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

Cómo crear una aplicación en APEX - Tema visual

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:

Crear aplicación APEX - Resumen de datos del asistente de creación de nueva aplicación

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):

Panel de control de la aplicación APEX creada

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":

Crear tablas para la aplicación APEX

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

Crear tablas para la aplicación APEX

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

Crear tabla para la aplicación APEX

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:

Crear tabla para la aplicación APEX - Selección de campos de la tabla

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:

Crear tabla para la aplicación APEX - Selección de clave primaria

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":

Crear tabla para la aplicación APEX - Selección de claves foráneas

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":

Crear tabla para la aplicación APEX - Restricciones únicas

 

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:

Crear tabla para la aplicación APEX - Restricciones lógicas

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:

Crear tabla para la aplicación APEX - Fin del proceso de creación de tabla

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),
    "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):

Crear tabla para la aplicación APEX - Fin del proceso de creación de tabla

 

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

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

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:

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

Agregaremos las restricciones que deseemos y pulsaremos "Terminar":

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

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

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:

Crear tabla para la aplicación APEX

Y la secuencia para la clave primaria:

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

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")

/
 

 

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":

Crear tabla para la aplicación APEX

En tipo de página seleccionaremos "Pantalla":

Crear tabla para la aplicación APEX

Seleccionaremos "Pantalla Tabular":

Crear tabla para la aplicación APEX

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):

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación 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":

Crear tabla para la aplicación APEX

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":

Crear tabla para la aplicación APEX

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:

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

Indicaremos si queremos utilizar algún separador:

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

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).

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

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":

Crear tabla para la aplicación APEX

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:

Crear tabla para la aplicación APEX

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:

Crear tabla para la aplicación APEX

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

Crear tabla para la aplicación APEX

 

 

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.

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.
Image Prefix update complete

D
esconectado de Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product ion


Anuncios


Enviado el Jueves, 02 octubre a las 03:07:39 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A