Está en la página 1de 109

Application Express User's Guide

Building an Application

Application Express User's Guide

Notas de la traducción: Building an Application comienza en la pag.24. Al comienzo de este documento se agregó la guia del usuario y los conceptos bajo los cuales se apoya la herramienta de desarrollo. No se traducen los títulos con el fin de relacionar los párrafos con el texto original más rápidamente.Los hipervínculos de este documento apuntan todos a un servidor Oracle xe que se supone corriendo en el equipo que se está consultado este documento. Julio Valle

Resumen

Esta herramienta permite generar aplicaciones web sobre una base de datos Oracle. Incluye todos los componentes que se necesitan para construir una interface completa con el usuario. Permite utilizar los datos de una hoja de cálculo, crear modelos de páginas (plantillas), crear reportes, formularios, gráficos, calendarios, navegar a una url, bloquear páginas que se están modificando (desarrollo en equipo), utilizar listas de valores (LOV como las de form), implementar cortes de control, crear los formularios y reportes manualmente (además de con el wizard), implementar master-detail en un solo formulario, crear formularios a partir de tablas, a partir de procedimientos almcenandos, a partir de una consulta sql, ó de un servicio web. Por supuesto se pueden validar y chequear los datos ingresados por el usuario en forma interactiva, mostrar mensajes de error, crear páginas de ayuda para los items, crear gráficos de control de procesos que monitorean un sistema a intervalos específicos en forma automática, crear botones de navegación, listas de selección, check box, popup, calendarios, areas de texto, file browse (mostrar archivos ó documentos que están en disco), ocultar elementos de la página, radio group, etc. Se puede incorporar JavaScript a las aplicaciones web, a través de varias interfaces, sin sacrificar la comodidad de desarrollo. Crear LOV dependiente de los seleccionado en otra LOV. Se puede enviar e-mail desde una aplicación. También se puede correr la aplicación en modo debug, es decir viendo los valores que toman las variables en tiempo de ejecución.

Esta ayuda del sistema describe como usar el cliente Oracle Application Express conectado a una base de datos Oracle Express Edition (Oracle Database XE).

Temas:

Documentation Topics

Audience

Documentation Accessibility

Related Documents

Conventions

Documentation Topics

Los temas que se incluyen en esta ayuda son los siguientes:

Title

Description

Quick Start

Ofrece una rápida introducción al uso del cliente Oracle Application Express con Oracle Database XE.

Running a

Describe como ejecutar y modificar una aplicación de demostración con Application Builder.

Demonstration

Application

 

Application Builder Concepts

Provee los conceptos básicos sobre Application Builder. Utilice Application Builder para ensamblar interfaces HTML (ó aplicaciones) a partir de los objetos de la base de datos tales como tablas y procedimientos. (*)

Using Application Builder

Provee importante información sobre el uso de Application Builder para construir aplicaciones.

-1-

Application Express User's Guide

Building an Application

Title

Description

Building an

Describe como utilizar Application Builder para construir una aplicación y sus componentes. (*)

Application

Controlling Page Layout and User Interface

Describe diferentes métodos para refinar las interfaces de las aplicaciones de usuarios y el layout de las páginas incluyendo el refinamiento de las regiones, editando los atributos de los items, refinando templates e incorporando CSS (cascading style sheets) e imágenes. (*)

Adding Navigation

Describe como implementar navegación a una aplicación utilizando diferentes tipos de controles de navegación, incluyendo entradas en las barras de navegación, tales como tabs, breadcrumbs, lists y trees.

Understanding

Explica como gestionar el entorno de desarrollo de aplicaciones incluyendo servicios, estados de cesión, preferencias de usuarios, archivos de log, modelos de aplicaciones, usuarios finales de Application Express, actividad de desarrollo de las aplicaciones, y explica como enviar email desde una aplicación.

Application

Administration

Managing User Interface Defaults

Describe como usar la interface de usuario que viene por default para asignar propiedades a tablas columnas ó vistas.

Debugging an

Describe la metodología para depurar las aplicaciones con Application Builder, incluye modo Debug, modo SQL trace, visualizar páginas de reportes y como remover manualmente un control ó un componente para aislar el problema.

Application

Deploying an

Explica como implementar (instalar) una aplicación construida con Application Builder.

Application

Managing Application Security

Describe como proveer seguridad a las aplicaciones desarrolladas con Application Builder utilizando encriptación, protección del estado de la sesión, autenticación y control de autorización.

Advanced

Provee información acerca de técnicas avanzadas de programación tales como enlace de base de datos, utilización de tipos de datos collections, ejecución de SQL en background, utilización de servicios web, y gestión de las preferencias de los usuarios.

Programming

Techniques

Managing

Explica como traducir una aplicación construida con Application Builder.

Application

Globalization

 

Oracle Application Express APIs

Describe las APIs disponibles en Oracle Application Express.

Managing Database Objects with Object Browser

Describe como usar el Object Browser para mostrar, crear y editar objetos de la base de datos Oracle Database Express Edition.

Building Queries with Query Builder

Explica como usar la interface gráfica del Query Builder’s para buscar y filtrar objetos de la base de datos, seleccionar objetos y columnas, crear relaciones entre objetos, formatear las salidas de los query y salvar los query.

Using SQL Scripts

Provides information on how to use SQL Scripts to create, edit, view, run, and delete script files.

Using SQL

Explica como utilizar los comando SQL para crear, editar, ver, ejecutar

-2-

Application Express User's Guide

Building an Application

Title

Description

Commands

y

borrar comando sql.

Using SQL Utilities

Describe como usar las herramientas de SQL para exportar e importar datos desde la base de datos, generar DDL, ver reporte de objetos, y restaurar objetos dropeados de la base de datos.

Administering the Database

Describe como administra la base de datos Oracle Database XE.

-3-

Application Express User's Guide

Building an Application

Application Builder Concepts

Nota de la traducción: Son conceptos bajo los cuales se apoyara la herramienta de desarrollo. No describe los wizards de desarrollo. Se traducen los titulos de este tema.

Julio Valle

Conceptos sobre Application Builder (AB)

Veremos conceptos sobre los cuales se describe el AB. Comenzamos por indicar que se define como aplicación a una colección de páginas (Pages) enlazadas a través de Tags, Buttons, ó enlaces de Hipertexto.

¿Qué es una página? Una página es el elemento de construcción básico de una aplicación. Cuando se construye una aplicación con AB se crean páginas que contienen elementos que interactuan con el usuario, tales como Tabs, Listas, Buttons, Items y Regions. Se pueden agregar controles a la página en su Page Definition. Para ver la Page Definition de una página existente:

1. Navegar a la Database Home Page

2. Click sobre el icon Application Builder.

3. Seleccionar una aplicación existente.

4. Seleccionar una página.

La Page Definition se divide en tres partes (ó secciones lógicas):

1. Page Rendering. Lista los controles de la interface con el usuario y la lógica que se ejecuta cuando la Page es interpretada. Véase "About Page Rendering

2. Page Processing. Lista los controles de lógica (tales como cálculos y procesos) que son evaluados y ejecutados cuando la página es procesada. Véase: "About Page Processing Controls".

3. Share Components. Lista los componentes comunes que se pueden displayar o se aplican sobre cada página dentro de la aplicación. Véase:"About Shared

Ver también:

"About the Page Definition" and "Editing a Page Definition"

Descripción de “Page Processing” y “Page Rendering”

Al crear una aplicación con AB, se enlazan páginas usando tabs, buttons, o hipertext links. Cada página puede tener botones é items y puede incluir la lógica de la aplicación. Se puede bifurcar de una página a la próxima usando navegación condicional, ejecución de cálculos, validaciones, y display de reports, calendarios y gráficos. Se pueden generar reportes, gráficos y forms utilizando los wizards, escribiendo HTML estático, o personalizando la generación con programación PL/SQL.

Temas:

How the Application Express Engine Renders and Processes Pages

Understanding Conditional Rendering and Processing

Verifying User Identity

Controlling Access to Controls and Components

-4-

Application Express User's Guide

Building an Application

Describe como el motor del AB interpreta y procesa las páginas.

El motor del AB dinámicamente interpreta y procesa las páginas creadas a partir de los datos guardados en las tablas de la base de datos Oracle. Para ver una página se envía la petición al servicio de Application Express ( APPLICATION EXPRESS ). Cuando se ejecuta una aplicación el servicio de Application Express se apoya en dos procesos:

Show Page: es el proceso que dibuja la página. Ensambla todos los atributos de la página (incluye regiones, items y botones) en una página HTML. Accept Page: ejecuta el procesamiento de la página. Ejecuta bifurcaciones, procesos y cálculos. Cuando se solicita una petición de página utilizando una url, el servicio ejecuta el proceso Show Page. Cuando se submite (se acepta) una página, el servicio ejecuta el proceso Accept Page, y ejecuta procesos de la página durante el cual salva los valores submitidos en la cache de la sesión y ejecuta los procesos, validaciones y/o cálculos correspondientes.

Descripción de “Page Processing” y “Page Rendering”

Una condición es una expresión lógica que permite controlar el display, en la página, de botones, regiones, items y tabs como así también permite controlar la ejecución de procesos, validaciones y cálculos. Por ejemplo, cuando se condiciona un botón, el constructor de página evalua la condición durante el proceso Show Page. Dependiendo del resultado de la evaluación de la condición, se mostrará, ó no, el botón. Se especifican las condiciones, seleccionando un tipo de condición, cuando se crea el control o componente (región, item, botón ó tab) ó bien seleccionando el atributo Condition Type.

Depende del tipo de condición que se seleccione, serán los valores que son apropiados ingresar como expresiones. La condición es evaluada a verdadero ó falso basándose en la expresión especificada. Nota: Si se usa una expresión de campo depende del tipo de condición seleccionado. Algunos tipos de condiciones no necesitan valores en ninguno de los campos de la condición. Otros solo necesitan valor en uno de los campos y otros requieren valores en los dos campos. Aunque estos campos son etiquetados Expression1 y Expression2, no son necesariamente expresiones en el sentido estricto. Ellos son simplemente valores apropiados al tipo de condición. Para ver un listado completo de las condiciones disponibles para un componente (control) dado, click en el icono View a la derecha del listado de los tipos de condiciones. Una lista rápida de las condiciones comúnmente usadas aparece debajo de la lista. Si la condición requiere una expresión, se la debe ingresar en el campo apropiado. La siguiente sección ofrece ejemplos de algunos tipos de condiciones, comúnmente usadas. Ver: Available Conditions para un listado detallado de los tipos de condiciones.

Current Page en la Expression1 Su valor es verdadero cuando el ID de la página actual está dentro de una lista (delimitada por comas, en la expression1). Por Ej. 100 en la expression1, implica que la condición se evalua como verdadera si el Id de la página actual es 100.

Exists (Sql query que retorna al menos un valor) La condición es verdadera si la consulta retorna al menos 1 fila. Por ejemplo:

-5-

Application Express User's Guide

Building an Application

Select 1 from emp where deptno = :P101_deptno

Este ej. Referencia al item P101_deptno como una variable bind. Se pueden utilizar variables bind dentro de la aplicación y en las consultas sql para referenciar items de la sesión. Ver: "About Bind Variables"

PL/SQL Expression Use pl/sql expression para expresiones pl/sql válidas evaluadas a verdadero / falso.

Por ej.

NVL(:MY_ITEM,’NO’) = ‘YES’

Autenticación de usuario

Es el proceso mediante el cual se establece (reconoce) la identidad del usuario antes que este pueda acceder a la aplicación. Podría requerir que el usuario deba ingresar un user/pass o bien un certificado digital o secure key. Oracle Application Express Soporta autenticación modular, permitiendo cambiar fácilmente el método de autenticación cuando se necesite. Se puede establecer la autenticación del usuario seleccionando el método de autenticación, o usando el wizard para crear su propio método de autenticación. Ver: "Establishing User Identity Through Authentication" para más información.

Control de Acceso a los Componentes

Mientras las condiciones controlan la construcción y procesamiento de componentes sobre una página, las autorizaciones sobre los esquemas controlan el acceso de los usuarios a los datos. La autorización es para controlar el acceso a los recursos basado en los privilegios del usuario (sobre los objetos de la base de datos). El esquema de autorización extiende la seguridad al esquema de autenticación de la aplicación. Se puede especificar un esquema de autorización, para una aplicación completa, una página, o un componente de la página tal como una región, item, o botón. Por ejemplo:

se podría utilizar un esquema de autorización para seleccionar que botones (ó elementos de navegación) puede el usuario ver en la página. Ver: "Providing Security Through Authorization"

Noción de gestión de estado de la sesión

HTTP, el protocolo a través del cual se entregan las páginas HTML, es un estandar. Un browser web está solamente conectado al servidor el tiempo que necesita para bajar la página. Además, cada petición de página, es tratada por el servidor como un proceso independiente, des-relacionado con peticiones anteriores o futuras de cualquier página. Esto significa que los valores ingresados en una página, relacionados también con páginas subsiguientes necesitan ser gestionados como valores de estado de la sesión. Típicamente es el caso, cuando un usuario ingresa valores en una página, estos valores no son accesibles en páginas subsiguientes. Oracle Application. Express, resuelve este problema, manteniendo en forma transparente los valores de estado de la sesión y provee a los desarrolladores la posibilidad de accederlos y actualizarlos desde cualquier página de la aplicación (dentro de la sesión).

-6-

Application Express User's Guide

Temas:

What Is a Session?

Understanding Session IDs

Referencing Session State

Building an Application

¿Que es una sesión?

Una sesión es una construcción lógica que establece persistencia a través de las páginas visitadas. Cada sesión tiene asignado un ID (identificador único). El motor del Application Express utiliza este ID para guardar y recuperar el conjunto de datos pertenecientes a la sesión que deben permanecer persistentes durante la misma. Ya que las sesiones son totalmente independientes, pueden existir varias al mismo tiempo. Además, debido a que las sesiones persisten en la DB hasta que el administrador las purge, un usuario puede retornar a una sesión abierta con anterioridad, y continuar utilizándola. Un usuario puede ejecutar múltiples instancias de una misma aplicación en diferentes sesiones de un browser. Las sesiones son lógica y físicamente distintas de las sesiones de base de datos usadas para responder a la peticiones de las páginas. Un usuario ejecuta una aplicación en una sola sesión, de Oracle Application Express, que va desde el login al logout, con una duración típicamente medida en minutos u horas. Cada Page requerida durante la sesión implica crear o reutilizar una sesión de la base de datos Oracle a fin de acceder a los recursos de la base de datos. A menudo estas sesiones de base de datos duran fracciones de segundo.

Concepto de Session IDs

El servicio del Application Express establece la identidad del usuario para cada página requerida y con el ID de la sesión recupera el estado de la sesión desde la base de datos. El punto más visible del ID es la URL de la página requerida. Otra ubicación visible está en la página HTML post e indirectamente en el contenido de una cookie de sesión. Esta cookie es enviada por el servicio del Application Express durante la autenticación y se mantiene durante viva la sesión del browser (ó la sesión de la aplicación), lo que sea más corto. Oracle Application Express asigna un nuevo Id de sesión durante la autenticación, registra el usuario autenticado identificado con el Id de sesión y continuamente chequea el id de sesión en cada procesamiento de página que se requiere a través de una URL o post data con la cooki de la sesión y registra la sesión en la base de datos. Estos chequeos proveen flexibilidad y seguridad. Ya que el Id de la sesión es la clave del estado de la sesión, el cookie de la sesión (donde se pueda aplicar) y el registro de la sesión salvaguardan la integridad del ID de la sesión y del estado de autenticación del usuario.

Visualizar el estado de la sesión

Application Express User's Guide

Building an Application

Visualizar el estado de la sesión (Session State Page).

La página de “estado de sesión” provee información muy importante acerca del estado de la sesión. Para localizar una página específica, ingrese el ID de la página en campo Page y haga click en GO. A continuación se describe que información contiene.

Etiqueta

Descripción

Application

Muestra el nombre de la aplicación, el usuario conectado, el Id del área de trabajo (ó Id del usuario de la base de datos), y el lenguaje del browser.

Page Items

Muestra los atributos de los items de la página, incluye los id de la aplicación y de la página, nombre del item, como se displaya el item (oculto, popup, button, display solo del HTML), el valor del item en la sesión y un Status. La columna Status indica el estado de la sesión. Los valores posibles son:

I-Insert U-Updated R-Reset

Application

Los application items son items que no residen en la page. Los application items son variables de estado de sesión desprovistos de las propiedades de la interface de usuario. Véase también: "Creating an Application-Level Item" y "Using Substitution Strings" para mayor información sobre referencias a items.

Items

Session State

Resume el estado de la sesión con los datos actuales de la sesión. Las listas de los Id de aplicación, los Id de página, los nombres de los item, (tipo de display, valor, y etiquetas de display).

Ver: "Managing Session State Values"

Gestión de los valores de estado de la sesión

Cuando el motor del Application Express interactua, intercambia datos con la aplicación web, es importante conocer como acceder y gestionar los valores de estado de sesión. En Oracle Application Express, el estado de la sesión se maneja automáticamente para cada página y fácilmente referenciado en código HTML estático ó en controles de lógica tales como validaciones y procesos.

Temas:

Referencing Session State (Referenciar estado de la sesión)

Setting Session State (Establecer valores del estado de la sesión)

Clearing Session State (Resetear valores del estado de la sesión)

About Bind Variables (Acerca de variables locales relacionadas a la sesión)

Ver: “Items” y “Referencing Item Values”

Referenciar Estados de Sesión

Application Express User's Guide

Building an Application

una password, una select list ó una check box. En la siguiente tabla se describe la sintaxis soportada para referenciar valores de las variables de sesión.

Sintaxis para referenciar variables de sesión.

Type

Sintaxis

Descripción

SQL

:MY_ITEM

Sintaxis de una variable bind común cuyo nombre no excede los 30 caracteres. Use esta sintaxis para hacer referencias dentro de consultas SQL y dentro de código PL/SQL.

PL/SQL

V(‘MY_ITEM’)

Sintaxis PL/SQL para referenciar un item usando la función V. Ver también: "Oracle Application Express APIs"

PL/SQL

NV(‘MY_NUMERIC_ITEM’)

Sintaxis para

referenciar un item numérico

utilizando la función NV. Ver también: "Oracle

Application Express APIs"

Statix text

&MY_ITEM

Sintaxis de texto. Variable de sustitución de texto.

Establecer variables de sesión.

Cuando un usuario acepta una página, el motor de APPLICATION EXPRESS . automáticamente guarda los valores tipeados en los items de la sesión. Por ejemplo, supongamos que una aplicación sencilla formada por dos páginas. La primer página de la aplicación contiene un formulario en el cual el usuario puede ingresar un número de teléfono. Se define el formulario y se crea un item denominado P2_PhoneNo. Sobre la segunda página, se quiere displayar la información ingresada por el usuario en el primer formulario. Cuando la página es aceptada, (la primera), Oracle Ap.Ex. captura el valor ingresado para el número de teléfono y lo guarda. El nro de teléfono ingresado por el usuario puede ser recuperado desde el estado de la sesión referenciando el item asociado con el campo de la página.

Resetear valores del estado de sesión.

En el desarrollo de la aplicación, a veces es útil inicializar los valores de algunos items específicamente, de todos los items de una página ó de todas las páginas de la aplicación, ó los de la actual sesión. Inicializar implica colocarles el valor null. En el punto siguiente se ofrecen ejemplos específicos de inicialización:

Temas:

Clearing Cache by Item

Clearing Cache by Page

Clearing Cache for an Entire Application

Clearing Cache for the Current User Session

Clearing Cache by item Inicializa la cache para un solo item colocando su valor a null. Por ej. se puede usar este método para asegurar que un item tiene el valor null al ser preparada para ser interpretada por el explorador. El siguiente ej. usa la sintaxis estandar f?p para inicializar la cache para un item. Por ejemplo la página denominada 5 de la aplicación 100. Ubicando MY_ITEM en la ClearCache de la sintaxis f?p resetea el valor de MY_ITEM a null.

-9-

Application Express User's Guide

f?p=100:5:&SESSION.::NO:MY_ITEM

Building an Application

El siguiente ejemplo resetea el valor del item THE_EMPNO y THE_DEPNO.

f?p=100:5:&SESSION.::NO:THE_EMPNO,THE_DEPTNO

Clearing Cache by Page Cachear los item de la aplicación es una forma efectiva de mantener el estado de la sesión. Sin embargo, hay ocasiones en que se quiere limpiar la cache para todos los item de la página. Por ejemplo, supóngase que se necesita limpiar todos los campos de una página cuando se hace click en la opción de crear una nueva orden. Limpiando la cache de la página entera, se colocan todos los valores de todos los items de la página a null.

Clearing Session Cache para dos páginas y resetear la paginación. Este ejemplo limpia la cache de la sesión para dos página y resetea la paginación.

f?p=6000:6003:&SESSION.::NO:RP,6004,6014

Este ejemplo :

Ejecuta la página 6003 de la aplicación 6000 y utiliza la sesión actual (id de la sesión corriente)

Indica que no se muestra información de depuración (NO).

Limpia todos los valores que se mantienen en la actual cache de la sesión para los items de las páginas 6004 y 6014.

Resetea la variable de paginación (RP) en la Page 6003 (la página solicitada).

Ver:"Controlling Report Pagination"

Clearing Session Cache de una Page y le pasa un valor a un item. Este ejemplo muestra como implementar una actualización de formulario. Limpia la información existente y setea el valor de un item (generalmente se setea la clave primaria).

f?p=6000:6003:&SESSION.::NO:6003:MY_ITEM:1234

Este ejemplo:

Ejecuta la página 6003 de la aplicación 6000 de la actual sesión.

Indica que no se muestra información de depuración. (NO).

Limpia todos los valores mantenidos en la cache de la página 6003 de la sesión actual.

Setea el item de la sesión actual denominado MY_ITEM al valor 1234.

Clearing Session Cache de una Page e inicializa varios items. Este ejemplo es similar al anterior, excepto en que pasa varios items.

f?p=6000:6004:&SESSION.::NO:6003:MY_ITEM1:MY_ITEM2,MY_ITEM3:1234,,5678

Este ejemplo:

Ejecuta la pagina 6004 de la aplicación 6000 de la actual sesión.

Limpia la cache de todos los items de la página 6003.

Indica que se oculta la información de debug.

-10-

Application Express User's Guide

Building an Application

Setea los valores: MY_ITEM a 1234, MY_ITEM2 a null (indicado por la coma utilizada sin valor previo), e indica que MY_ITEM3 se inicialice a 5678.

Clearing Cache para una aplicación completa. Se puede limpiar la cache de una aplicación completa utilizando la sintaxis f?p y creando un argumento Clear Cache utilizando la palabra clave APP. Por ejemplo:

f?p=App:Page:Session::NO:APP

Nota: Resetear la cache de una aplicación completa no implica que se restaure el estado de la aplicación. Por ejemplo, si una aplicación incluye cálculos ó procesos (código) en el evento on-new instance de la aplicación, el motor del Ap.Ex. ejecuta solo esos cálculos y procesos (código) cuando la sesión de la aplicación es creada. Luego ejecuta el proceso de limpiar la cache y displayar la página requerida. La única forma de resetear una aplicación completamente, sin el ID de la sesión, es peticionarla utilizando una URL sin ID de sesión, ó bien llamando al método HTMLDB_APPLICATION.CLEAR_APP_CACHE desde otra aplicación. Si embargo, si el ID es registrado en el cliente utilizando una cookie, necesitará un logout para resetear el estado.

Clearing Cache para la sesión del usuario conectado. Otro método para limpiar la cache de una aplicación es crear un argumento Clear Cache utilizando la keyword SESSION. Por ejemplo:

f?p=6000:6004:12507785108488427528::NO:SESSION

Variables Relacionadas (Bind)

Se pueden utilizar variables en el código de la aplicación ó consultas SQL que hagan referencia a items específicos de la sesión. Por ejemplo

SELECT * FROM emp WHERE name like '%' || :SEARCH_STRING || '%'

En este ejemplo, el string de búsqueda es un item de la página. Si el tipo de región se define como SQL Query, se puede referenciar el valor utilizando la sintaxis estandar de SQL. Utilizando variables aseguramos que la representación parseada de la consulta SQL sea reutilizada por la base de datos, optimizando la utilización de la memoria del servidor. Recordar las siguientes reglas cuando se definan y utilicen variables bind.

Deben corresponder a un nombre de item.

No son sensibles a las mayúsculas/minúsculas.

El nombre puede tener hasta 30 caracteres (valid Oracle identifier).

Aunque los nombres de item de aplicación y de página pueden tener hasta 255 caracteres, si se desea usar un item dentro de la sintaxis de SQL, el nombre del item solo puede tener hasta 30 caracteres.

Uso de variables en tipos Regions sobre una consulta SQL ó LOV. Si el tipo de una variable Región es SQL Query, (las funciones pl/sql retornan SQL Query), ó LOV (lista de valores), se pueden referenciar con la siguiente sintaxis.

:MY_ITEM

-11-

Application Express User's Guide

Building an Application

Una forma sencilla de hacer esto es incorporar una variable de sesión en la cláusula where. El siguiente ejemplo muestra como enlazar el valor del item THE_DEPTNO a una región definida como SQL Query.

SELECT ename, job, sal FROM emp WHERE deptno = :THE_DEPTNO

Ver: "Customizing Regions" para ver información acerca de la creación de regiones.

Uso de variables (bind) en procedimientos PL/SQL Para tipos region tales como un procedimiento PL/Sql, las regiones son construidas usando un formato de bloque anónimo. En otras palabras, el comienzo y fin son agregados automáticamente al código PL/SQL. Por ejemplo:

INSERT INTO emp (empno, ename, job) VALUES (:P1_empno, :P1_name, :P1_job);

En este ejemplo, los valores de empno, ename, y job son reemplazados por P1_empno, P1_name y P1_job.

Noción de la sintaxis URL

Cada aplicación tiene un numero (denominado ID de la aplicación) que la identifica unívocamente. De forma similar, cada página tiene un número único (el ID de la página). Las aplicaciones y las páginas podrían tener también alias alfanuméricos. Los alias alfanuméricos son únicos dentro de un esquema de base de datos pero los alias de páginas son únicos dentro de cada aplicación. Cuando se ejecuta una aplicación el motor de Ap. Ex genera un número de sesión que sirve como clave para la sesión del usuario. Temas:

Understanding the URL that Displays for a Page

Using f?p Syntax to Link Pages

Calling a Page Using an Application and Page Alias

Calling a Page from a Button URL

URL que se muestra para cada página.

La URL que muestra cada pantalla le indica la ubicación a Oracle Application Express e identifica: la dirección la dirección de Oracle Application Express, el ID de la aplicación, el ID de la página, y el ID de la sesión: Por ejemplo:

http://apex.oracle.com/pls/apex/f?p=4350:1:220883407765693447

Este ejemplo indica:

apex.oracle.com es la URL del servidor.

pls es el indicador que usa el cartridge mod_plsql.

apex es el nombre del descriptor de acceso de base de datos (DAD). El DAD describe como el servidor de http se conecta al servidor de base de datos así este puede completar la petición http. El valor por default es apex.

F?p= es un prefijo usado por Oracle Application Express.

-12-

Application Express User's Guide

Building an Application

4350 es la aplicación llamada.

1 es la página de la aplicación a displayar.

220883407765693447 es el número de sesión.

Ver: "About Publishing the Application URL"

Enlace de páginas con el string f?p

Se pueden crear links entre páginas en la aplicación usando la sintaxis:

f?p=App:Page:Session:Request:Debug:ClearCache:itemNames

:itemValues:PrinterFriendly

Table: f?p Syntax Arguments Sintáxis de los argumentos que se pueden pasar con f?p.

Argumento

Descripción

App

Id de la aplicación ó su alias.

Page

Id de la página ó su alias.

Session

Id de la sesión. Se puede referenciar un id de sesión para crear un link (de hypertext) a otras páginas que mantienen el mismo estado de la sesión mediante el pasaje del numero de sesión. Se puede referenciar el ID de sesión utilizando la siguiente sintaxis:

String de sustitución: &SESSION

Pl/SQL: v(‘SESSION’)

Variable: :APP_SESSION

Request

Setea el valor de REQUEST. Cada botón de la aplicación setea el valor de REQUEST con el nombre del botón. Esto permite aceptar procesos que hacen referencias al botón que el usuario lo cliqueo. Se puede referenciar a REQUEST con la siguiente sintaxis:

String de sustitución: &REQUEST PL/SQL: V(‘REQUEST’) Variable: :REQUEST

Debug

Muestra detalles del procesamiento de la aplicación. Los valores válidos para la bandera DEBUG son YES ó NO. Setee esta bandera a YES para displayar detalles acerca del proceso. Se puede referenciar a la bandera de DEBUG utilizando la siguiente sintaxis:

String de sustitución: &DEBUG

PL/SQL: V(‘DEBUG’)

Variable: :DEBUG

ClearCache

Limpia la cache. Esto setea el valor de los items a null. Para limpiar los item de la cache de una sola página, se debe especificar el ID de la página. Para limpiar los items cacheados de varias páginas, se listan separados por comas los ID de página. Limpiar una cache de una página también resetea cualquier proceso de la página. Se pueden incluir valores de items individuales separados por coma ó nombres de colección ó la palabra clave RP, la que cual resetea el numerador de páginas de la región de la página requerida. La palabra clave APP limpia la cache de todas las páginas y de todos los items de la aplicación y remueve las preferencias de orden del usuario conectado. La palabra clave SESSION logra el mismo resultado que APP pero solo limpia los items asociados a la aplicación de la sesión actual.

-13-

Application Express User's Guide

Building an Application

ItemNames

Lista delimitada por comas de nombres de items para setear el estado de la sesión en una URL.

ItemValues

Lista de los valores de los items para setear la sesión en una url. Los items no pueden incluir punto y coma, pero pueden incluir comas si están entre barras \. Por ej: \123,25\

PrinterFriendly

Determina si la página está siendo interpretada (levantada, mostrada) en modo PrinterFriendly. Si PrinterFriendly está seteado a YES, la página se muestra en modo PrinterFriendly. El valor de PrinterFriendly puede ser usado para condicionar la interpretación de la página para remover elementos tales como regiones de la página para optimizar la salida impresa. Se puede referenciar esta bandera utilizando la siguiente sintaxis:

V(‘PRINTER_FRIENDLY’)

Aunque es importante comprender como trabaja la sintaxis de f?p, rara vez tendremos que redactarla nosotros mismos. El Ap Builder incluye varios wizards que automáticamente crean estas referencias. La siguiente sección describe casos específicos en que se utiliza el enlace de páginas con f?p.

Invocar una Página utilizando alias de aplicación y de página

Los alias de aplicación y páginas deben ser identificadores Oracle válidos, no pueden contener espacios en blanco, y no son sensibles a las mayúsculas. El siguiente ejemplo invoca una página utilizando alias desde adentro de una aplicación. Este ejecuta la página home de la aplicación myapp y utiliza el ID de la sesión actual.

f?p=myapp:home:&SESSION

Los alias de aplicación deben ser únicos dentro del esquema del usuario. Si una aplicación en una base de datos diferente tiene el mismo alias, utilice el argumento &c para calificar con el esquema del usuario. Por ejemplo:

f?p=common_alias:home:&session.&c=WORKSPACE_A

Invocando una página desde un botón con una url

Cuando se crea un botón, se puede especificar una URL para re-direccionar la navegación cuando el usuario haga click en el botón. Este ejemplo ejecuta la página 6001 de la aplicación 6000 utilizando la sesión actual.

f?p=6000:6001:&SESSION.

Nótese que esto es solo un método para usar un botón. Este método bypasea submitir la página y actúa como un hyperlink a otra página. Otro método es submitir primero la página. En esta última forma, clikeando el botón que submite la página para procesarla, permite al formulario ser submitido y que el estado de la sesión sea guardado.

Ver: "Creating Buttons"

-14-

Application Express User's Guide

Building an Application

Utilización de Strings de sustitución.

Se pueden usar strings de sustitución dentro de un templeate de página ó región para reemplazar un carácter string por un valor. Al diseñar la aplicación y permitir a los usuarios editar los items, se necesita sustituir strings a fin de pasar la información. Se puede utilizar sustitución de string de la siguientes formas:

Incluir un string de sustitución dentro de un template.

Referenciar un item ó página usando la sintaxis &ITEM.

Usar un string de sustitución para lograr una funcionalidad específica.

Los strings de sustitución usado dentro de un template son delimitado por “#”. Por

ejemplo:

#ABC#

Para referenciar items de páginas ó aplicación usar variables de sustitución:

1. Preceder el nombre del item con un ampersand (&).

2. Agregar un punto al nombre del item.

Por ejemplo, se podría hacer referencia a un item de aplicación denominado F101_X en una región HTML, en un titulo, en una etiqueta ó en cualquier otro contexto, así:

&F101_X.

Notar que se requiere el punto final. Cuando la página es interpretada, el motor del App.Exp reemplaza el string de sustitución por el valor del item F101_X

-15-

Application Express User's Guide

Building an Application

Strings de sustitución predefinidos.

Application builder soporta un conjunto de string de sustitución predefinidos. Pueden ser necesarios para referenciar valores con el fin de lograr una funcionalidad específica. Las siguientes secciones describe estos strings de sustitución, cuando conviene usarlos y la sintaxis. Notar que la variable :USER tiene un significado especial dentro de la base de datos.

Temas:

APP_ALIAS

APP_ID

APP_IMAGES

APP_PAGE_ID

APP_SESSION

APP_UNIQUE_PAGE_ID

APP_USER

AUTHENTICATED_URL_PREFIX

BROWSER_LANGUAGE

CURRENT_PARENT_TAB_TEXT

DEBUG

HOME_LINK

LOGIN_URL

IMAGE_PREFIX

Application Express SCHEMA OWNER

PRINTER_FRIENDLY

LOGOUT_URL

PROXY_SERVER

PUBLIC_URL_PREFIX

REQUEST

SQLERRM

SYSDATE_YYYYMMDD

WORKSPACE_IMAGES

Ver también:

"Substitutions" Acerca de la definición de string de sustitución estáticos tales como un atributo de la aplicación. "Establishing User Identity Through Authentication" identificación de usuario a través de autenticación.

APP_ALIAS App_alias (alfanumérico) con el nombre de la aplicación actual. App_alias es diferente de App_Id, ya que App_id debe ser único en todos los esquemas y en todas las aplicaciones residentes en una base de datos. En contraste, App_alias requiere que sea único solo dentro del esquema al que pertenece. Se puede utilizar App_alias en cualquier lugar que se pueda utilizar App_id. Por ejemplo, en la sintaxis f?p se puede usar un app_alias ó un id de aplicación como se muestra en el ejemplo siguiente:

f?p=ABC:1:&SESSION.

Este ejemplo ejecuta en la actual sesión, la página 1 de la aplicación ABC.

-16-

Application Express User's Guide

Sintaxis de: APP_ALIAS.

Building an Application

Reference Type

Syntax

Bind variable

:APP_ALIAS

PL/SQL

V('APP_ALIAS')

Substitution string

&APP_ALIAS.

El siguiente es un ejemplo HTML:

Click me to go to page 1 <a href="f?p=&APP_ALIAS.:1:&SESSION."> of the current application</a>

APP_ID

App_id identifica la aplicación que se está ejecutando.

Sintaxis de: APP_ID

Reference Type

Syntax

Bind variable

:APP_ID

Direct PL/SQL

HTMLDB_APPLICATION.G_FLOW_ID (A NUMBER)

PL/SQL

NV('APP_ID')

Substitution string

&APP_ID.

El siguiente es un ejemplo de una referencia a un string de sustitución:

f?p=&APP_ID.:40:&SESSION.

APP_IMAGES Utilizar este string para referenciar imágenes importadas, Java Script, y cascading style sheets (CSS) que son para una aplicación dada y no son compartidos con otras aplicaciones. Si se importa un archivo y se lo hace específico de la aplicación, luego se debe utilizar este string de sustitución.

Sintáxis de: APP_IMAGES

Reference Type

Syntax

Bind variable

:APP_IMAGES

Direct PL/SQL

Not available.

PL/SQL

V('APP_IMAGES')

Substitution string

&APP_IMAGES.

Template substitution

#APP_IMAGES#

Ver: "IMAGE_PREFIX", "WORKSPACE_IMAGES", y "Managing Images"

APP_PAGE_ID App_page_id es el id de la página de la aplicación actual. Por ejemplo, si la aplicación está en la página 3, debe responder con 3. Es útil utilizar esta sintaxis cuando se desea escribir componentes de aplicaciones que necesitan trabajar en múltiples aplicaciones. Sintaxis de: app_page_id

-17-

Application Express User's Guide

Building an Application

Reference Type

Syntax

Bind variable

:APP_PAGE_ID

Direct PL/SQL

HTMLDB_APPLICATION.G_FLOW_STEP_ID (A NUMBER)

Direct PL/SQL

:APP_PAGE_ID

PL/SQL

NV('APP_PAGE_ID')

Substitution string

&APP_PAGE_ID.

Ejemplo de sustitución:

f?p=&APP_ID.:&APP_PAGE_ID.:&SESSION.

APP_SESSION App_session es uno de los strings de sustitución más usados. Se puede utilizar para crear enlaces de hipertexto entre páginas de aplicaciones que mantienen el estado de una sesión pasándole el número de sesión. Sintaxis de app_session

Reference Type

Syntax

Bind variable

:APP_SESSION

PL/SQL

V('APP_SESSION')

Short PL/SQL

V('SESSION')

Short substitution string

&SESSION.

Substitution string

&APP_SESSION.

Consideremos el siguiente ejemplo:

Desde adentro de una región HTML:

<a href="f?p=100:5:&SESSION.">click me</a>

Utilizando Pl/Sql:

htf.anchor('f?p=100:5:'||V('SESSION'),'click me');

En una consulta sql query:

SELECT htf.anchor('f?p=100:5:'||:app_session,'clickme') FROM DUAL;

APP_UNIQUE_PAGE_ID App_unique_page_id es un entero generado por una secuencia Oracle el cual es único para cada página presentada. Este número es utilizado por las aplicaciones para prevenir submitir (aceptar procesar) páginas duplicadas y puede ser usado para otros propósitos. Por ejemplo, si tu quieres obtener una URL única para evitar que el browser guarde en la cache, se puede embeber (incrustar) este numero en la respuesta ó columna de debug en el llamado al procedimiento f. Sintaxis de app_unique_page_id

Reference Type

Syntax

Bind variable

:APP_UNIQUE_PAGE_ID

PL/SQL

V('APP_UNIQUE_PAGE_ID')

Substitution string

&APP_UNIQUE_PAGE_ID.

El siguiente ejemplo es un HTML:

SELECT 'f?p=100:1:'||:APP_SESSION||':'||

-18-

Application Express User's Guide

Building an Application

:APP_UNIQUE_PAGE_ID|| ':::P1_EMPNO:'||empno, ename, job FROM emp

Notar el uso de la columna APP_UNIQUE_PAGE_ID en la respuesta. Esto hace que esta URL sea única y evita el problema de cacheo excesivo del browser.

APP_USER App_user es el usuario actual que está ejecutando la aplicación. Dependiendo de la modalidad de autenticación, tiene valores que pertenecen a diferentes conjuntos. Si la aplicación se ejecuta autenticando contra la base de datos, el valor del usuario es el mismo que el USER de la base de datos. Si la aplicación utiliza un esquema de autenticación contra el cual se autentica tendrá el user dado durante la autenticación.

Sintaxis de App_user

Reference Type

Syntax

Bind variable

:APP_USER

PL/SQL

V('APP_USER')

Short PL/SQL

V('USER')

Substitution string

&USER.

Considere los siguientes ejemplos. En una region HTML. Hello you are logged in as &USER. En un código Pl/sql htp.p(‘Hello you are logged in as’||V(‘USER’)); Como una variable SELECT * FROM some_table WHERE user_id = :app_user Ver: "Authentication" para mayor información acerca del atributo Public User

AUTHENTICATED_URL_PREFIX Este atributo, a nivel de aplicación, identifica un prefijo autenticado válido (es decir, un prefijo Url de una sesión iniciada). Se puede usar un path relativo o full comenzando con http. Este item es útil si tu aplicación puede ser ejecutada en ambos modos: autenticado (log in) y público ( sin log in). Se puede usar authenticated_url_prefix para construir un link a una página autenticada. Este item es más útil cuando se usa autenticación básica contra la base de datos porque los cambios a la URL pueden requerir autenticación.

Sintaxis de authenticated_url_prefix

Reference Type

Syntax

Bind variable

:AUTHENTICATED_URL_PREFIX

PL/SQL

V('AUTHENTICATED_URL_PREFIX')

Substitution string

&AUTHENTICATED_URL_PREFIX.

-19-

Application Express User's Guide

Building an Application

BROWSER_LANGUAGE Referencia a la preferencia del lenguaje del browser actual.

Sintaxis de browser_language

Reference Type

Syntax

Bind variable

:BROWSER_LANGUAGE

Direct PL/SQL

HTMLDB_APPLICATION.G_BROWSER_LANGUAGE

PL/SQL

V('BROWSER_LANGUAGE')

Substitution string

:BROWSER_LANGUAGE.

Substitution string

&BROWSER_LANGUAGE.

CURRENT_PARENT_TAB_TEXT Es el más utilizado en los template de páginas, pero es solo relevante para aplicaciones que tienen dos niveles de tab (es decir, los tab parent y standard). Sirve para referenciar a la etiqueta del tab parent. Permite repetir el tab parent actualmente seleccionado dentro del template de la página.

Sintaxis de current_parent_tab_text

Reference Type

Syntax

Bind variable

Not Available.

Substitution string

&CURRENT_PARENT_TAB_TEXT.

DEBUG

Los valores válidos para la bandera de debug son Yes ó No. Activando debug se muestran los detalles del proceso de la aplicación. Si se escribe código y se desea ver el debug la única forma es setear el modo debug a yes.

Sintaxis de debug

Reference Type

Syntax

Bind variable

:DEBUG

Direct PL/SQL

HTMLDB_APPLICATION.G_DEBUG

PL/SQL

V('DEBUG')

Substitution string

&DEBUG.

Por ejemplo: f?p=100:1:&SESSION.::&DEBUG

HOME_LINK Es la página inicial de la aplicación. El motor del App.Exp apuntará a esta ubicación si no se especifica una página y si no se define una página alternativa por medio la lógica del esquema de autenticación. Se define el Home_Link como un atributo de la página.

Sintaxis de home_link

Reference Type

Syntax

Direct PL/SQL

HTMLDB_APPLICATION.G_HOME_LINK

PL/SQL

V('HOME_LINK')

-20-

Application Express User's Guide

Building an Application

Reference Type

Syntax

Template Reference

#HOME_LINK#

Substitution String

&HOME_LINK.

Ver: "Authentication" para mayor información sobre el atributo home link.

LOGIN_URL Sirve para displayar un link a la página de login para usuarios que no están actualmente logueados.

Sintaxis de login_url

Reference Type

Syntax

Bind variable

:LOGIN_URL

Direct PL/SQL

HTMLDB_APPLICATION.G_LOGIN_URL

PL/SQL

V('LOGIN_URL')

Substitution string

&LOGIN_URL.

Template Substitution

#LOGIN_URL#

IMAGE_PREFIX Determina un path virtual al servidor web usado para apuntar al directorio de imágenes distribuidas con Oracle Application Express. Si se desea referenciar imágenes importadas utilizar WORKSPACE_IMAGES y APP_IMAGES.

Ver: "APP_IMAGES","WORKSPACE_IMAGES", y "Configuring Standard Application Attributes"

Sintaxis de image_prefix

Reference Type

Syntax

Bind variable

:IMAGE_PREFIX

Direct PL/SQL

HTMLDB_APPLICATION.G_IMAGE_PREFIX

PL/SQL

V('IMAGE_PREFIX')

Substitution string

&IMAGE_PREFIX.

Template Substitution

#IMAGE_PREFIX#

APPLICATION EXPRESS SHEMA OWNER Si se están generando llamados a aplicaciones desde dentro de código pl/sql, podría ser necesario referenciar al propietario del esquema de Oracle Application Express. Seguidamente se describe la correcta sintaxis para referencia directa Pl/Sql.

HTMLDB_APPLICATION.G_FLOW_SCHEMA_OWNER

También se podría usar #FLOW_OWNER# para referenciar este valor en las consultas SQL y PL/SQL (por ejemplo, en una región ó en un procesos)

PRINTER_FRIENDLY El valor de PRINTER_FRIENDLY determina si el motor de Ap.Ex se ejecuta en modo visualización. Este setting puede ser referenciado en los condicionales para eliminar elementos no deseados en una página impresa.

-21-

Application Express User's Guide

Sintaxis de printer_friendly

Building an Application

Reference Type

Syntax

Direct PL/SQL

HTMLDB_APPLICATION.G_PRINTER_FRIENDLY (VARCHAR2 DATATYPE)

PL/SQL

V('PRINTER_FRIENDLY')

Substitution

&PRINTER_FRIENDLY.

string

LOGOUT_URL Es un atributo a nivel de aplicación usado para identificar la URL de logout. Esta es la URL a la que navega para la página de logout u opcionalmente directamente desconecta al usuario. Para crear una entrada logout en la barra de navegación, se adiciona un punto a &LOGOUT_URL. Si se está codificando una página template, utilizar #logout_url#. (notar el punto final).

Sintaxis de logout_url

Reference Type

Syntax

Bind variable

:LOGOUT_URL

PL/SQL

V('LOGOUT_URL')

Substitution string

&LOGOUT_URL.

Template substitution

#LOGOUT_URL#

PROXY_SERVER Proxy_server es un atributo de la aplicación. El atributo puede ser usado por regiones cuyos fuentes se originan desde una url. Seguidamente la sintaxis correcta para una referencia pl/sql directa usada cuando están escribiendo pl/sql para acceder a un servidor web remoto desde adentro de la base de datos (por ejemplo, cuando usamos el paquete utl_http despachado con la base de datos).

HTMLDB_APPLICATION.G_PROXY_SERVER

PUBLIC_URL_PREFIX Es un atributo a nivel de aplicación que identifica la URL para salir de modo logged a una vista pública.

Sintaxis de public_url_prefix

Reference Type

Syntax

Bind variable

:PUBLIC_URL_PREFIX

PL/SQL

V('PUBLIC_URL_PREFIX')

Substitution string

&PUBLIC_URL_PREFIX.

Template substitution

#PUBLIC_URL_PREFIX#

REQUEST Cada botón de la aplicación setea el valor de REQUEST al nombre del botón ó al valor del atributo REQUEST asociado al botón. Esto permite procesar aceptaciones que

-22-

Application Express User's Guide

Building an Application

referencian el nombre del botón cuando un usuario lo clickea. In la sintaxis f?p se puede setear request utilizando el cuarto parámetro.

Referencias al valor de REQUEST

Request es típicamente referenciado durante el proceso de aceptación (es decir, el proceso que ocurre cuando se envía una página del cliente al servidor).

Sintaxis de Request

Reference Type

Syntax

Bind variable

:REQUEST

Direct PL/SQL

HTMLDB_APPLICATION.G_REQUEST

PL/SQL

V('REQUEST')

Substitution string

&REQUEST

&REQUEST. (exact syntax match)

Alcance y valor de REQUEST para páginas enviadas. Cuando se envía una página, se inicia un proceso de Aceptación. Este proceso de aceptación consiste de cálculos, validaciones, subprocesos, y bifurcaciones. El valor de REQUEST está disponible durante cada fase del proceso de aceptación. Una vez que la aplicación bifurca a una página diferente se setea el valor de request a NULL. El valor de REQUEST es el nombre del botón que el usuario clikqueo, ó el nombre del tab elegido por el usuario. Por ejemplo, supóngase que tiene un botón con el nombre de CHANGE, y una etiqueta Apply Change. Cuando el usuario clickquea el botón, el valor de REQUEST será CHANGE.

Referencias REQUEST utilizando condiciones. Es común referenciar REQUEST en los condicionales. Por ejemplo, si se desea resetear la paginación cuando el usuario hace clicks en Go a una página del report. Se puede resetear la paginación al crear un proceso de aceptación de pagina. El proceso de la página puede ser condicionado usando Request = Expression 1.

Para crear un “on-submit page process”:

1.

Mediante Condition, seleccionar el tipo de condición Request = Expression1.

2.

En Expression 1, ingresar GO.

Uso de REQUEST al mostrar procesos. Se puede usar REQUEST para mostrar procesos cuando se navega a una página usando la sintaxis f?p. Por ejemplo:

f?p=100:1:&SESSION.:GO

Recuerde que el cuarto argumento en la sintaxis f?p es REQUEST. Este ejemplo dirige hacia la aplicación 100, página 1 para la sesión actual, y setea el valor de REQUEST al valor GO. Cualquier proceso ó región puede referenciar el valor de REQUEST utilizando mostrar proceso (Show processing). El siguiente es un ejemplo similar pero utilizando PL/SQL:

IF V ('REQUEST') = 'GO' THEN htp.p('hello');

-23-

Application Express User's Guide

END IF;

Building an Application

Notar que htp.p('hello') es un call a un pl/sql del paquete Web Toolkit para salida impresa del string especificado. Ver también:

Oracle Database Application Developer's Guide - Fundamentals for information about developing Web applications with PL/SQL Oracle Database PL/SQL Packages and Types Reference for information about htp packages

SQLERRM Es un templete de sustitución solo disponible en la Region de mensajes de error de la aplicación.

#SQLERRM#

SYSDATE_YYYYMMDD Representa la fecha actual sobre el servidor de base de datos, con el formato yyyymmdd. Se puede utilizar en lugar de invocar llamados a la función SYSDATE().

Sintaxis de sysdate_yyyymmdd

Bind variable :SYSDATE_YYYYMMDD

PL/SQL

V('SYSDATE_YYYYMMDD')

Direct PL/SQL HTMLDB_APPLICATION.G_SYSDATE (DATE DATATYPE)

Reference Type

Syntax

Bind variable

:SYSDATE_YYYYMMDD

Direct PL/SQL

HTMLDB_APPLICATION.G_SYSDATE (DATE DATATYPE)

PL/SQL

V('SYSDATE_YYYYMMDD')

WORKSPACE_IMAGES Utilice este string de sustitución para referenciar imágenes importadas, Java Script, y hojas de conexión en cascada del estilo que son compartidas con muchas aplicaciones dentro de un workspace (o esquema de base de datos).

Sintaxis de worksapce_images

Reference Type

Syntax

Bind variable

:WORKSPACE_IMAGES

Direct PL/SQL

Not available

PL/SQL

V('WORKSPACE_IMAGES')

Substitution string

&WORKSPACE_IMAGES.

Template substitution

#WORKSPACE_IMAGES#

Ver: "APP_IMAGES" y "IMAGE_PREFIX"

-24-

Application Express User's Guide

Building an Application

Building an Application

Nota de la traducción: La traducción avanzó hasta Creating Buttons. Julio Valle

Aquí se describe como utilizar el generador de aplicaciones para construir una aplicación y sus componentes. Incluye instrucciones para crear una aplicación y agregar páginas como así también componentes (reports, gráficos ó form) controles de página (botones, items, listas de valores ) y componentes compartidos (menus, lists, ó tabs).

Topics:

Creating an Application

Adding Pages to an Application

Creating Reports

Creating Forms

Creating Calendars

Creating Charts

Creating Buttons

Creating Items

Creating Lists of Values

Using Shortcuts

Incorporating JavaScript into an Application

Creating Dependent Select Lists

Creating a Help Page

Ver también:

"Using Application Builder"

"Controlling Page Layout and User Interface"

"Adding Navigation"

Creating an Application

Una aplicación es una colección de páginas las cuales comparten un estado de sesión común y la autenticación. Se puede crear una aplicación utilizando el wizard. Se puede deletear una aplicación desde la home page del builder.

Topics:

About Creating an Application Using a Wizard

About the Create Application Wizard

About the Create Application from Spreadsheet Wizard

About Demonstration Applications

Deleting an Application

About Creating an Application Using a Wizard

Application Express User's Guide

Building an Application

Create Application from Spreadsheet. Permite crear una aplicación basada en una hoja de cálculo. Se puede subir ó pegar una hoja de cálculos de datos para crear una tabla y luego agregar una interfase con el usuario. En la aplicación resultante, los usuarios pueden crear consultas, eliminar insertar, ó actualizar registros ó analizar los datos. Ver también: "About the Create Application from Spreadsheet Wizard". Demonstration Application. Instala / Desinstala aplicaciones demo. Sirve para aprender a construir aplicaciones. Ver tambien "About Demonstration Applications".

Ver también: "Adding Pages to an Application" for information about adding reports and forms by creating a new page.

About the Create Application Wizard.

El wizard permite crear una aplicación funcional completa a partir de cualquier número de tablas. Se pueden crear páginas en blanco ó páginas basadas en queries SQL ó sobre tablas de la base de datos. Se puede crear consultas SQL escribiendo la select (manualmente) ó bien utilizando la interface gráfica del Query Builder. Las aplicaciones basadas sobre tablas pueden consistir de un simple report, un form y un report, ó un form tabular. Cuando se crean páginas sobre tablas, se tiene la opción de generar páginas de análisis. Las páginas de análisis extienden un report simple (ó un reporto sobre un form) para incluir múltiples drill-down reports y gráficos. Ver también: "Building Queries with Query Builder"

Topics:

Creating an Application Based on Tables or Queries

About Application Models and User Interface Defaults

Leveraging Application Models and User Interface Defaults

Creating an Application Based on Tables or Queries

Se puede crear una aplicación basada sobre un tabla, query, ó drill-down query seleccionando Create Application en el Create Application Wizard.

1.

Sobre la Home Page de la base de datos, click en Application Builder.

2.

Click en el botón Create.

3.

Seleccionar Create Application y click en Next.

4.

Ingrese los detalles básicos de la aplicación y click en Next.

a. Name. Ingrese un nombre que describa la aplicación.

b. Application. Ingrese un valor entero (único) para identificar la aplicación.

c. Create Application. Seleccione un método de creación:

o

From scratch Permite agregar páginas manualmente.

o Based on existing application design model Permite copiar definiciones de páginas desde modelos de aplicaciones anteriores.

Notar que se deberán definir todos los otros atributos de la aplicación, ó se puede elegir copiar los mismos atributos utilizando la opción copiar componentes compartidos desde otra aplicación. (Véase el punto 7 y "About Application Models and User Interface Defaults"

d. Schema La aplicación obtendrá su recursos a partir de todas las sql ejecutadas sobre un esquema de base de datos específico. Identificar el propietario del esquema de base de datos. Next agrega la página a su aplicación.

5.

Under Add Pages.

a. Seleccionar el tipo de pagina que se desea agregar. Incluye las opciones de:

-26-

Application Express User's Guide

Building an Application

o

Blank Crea una página sin agregar ninguna funcionalidad.

o

Report Crea una página que contiene el resultado de una consulta SQL formateado. Se puede elegir construir un report basado en una tabla que se selecciona ó basado en una sentencia SQL SELECT dada por el usuario ó por una función PL/SQL que retorna una sentencia SQL SELECT que se provee.

o

Form crea un form para actualizar un sola fila en una tabla de la base de datos.

o

Tabular Form Crea un form para ejecutar update, insert ó delete sobre múltiples filas de una tabla de la base de datos.

o Report and Form Construye dos páginas combinando form y report. Sobre la primer página, el usuario selecciona una fila para actualizar. Sobre la segunda página el usuario puede agregar un nuevo registro ó actualizar ó borrar un reg. Existente. Action Displaya el tipo de página seleccionada. Por cada selección, el wizard propone diferentes tipos de información. Las páginas report incluyen un check box Include Analysis Pages. Seleccione esta

opción y siga los prompt del wizard para extender un simple report (ó un report sobre un form) para incluir múltiples gráficos y reports drill-down.

b. Click Add Page. La página (ó páginas) aparecen al tope de la página. Para borrar una página, click en el icono Delete.

c. Repetir los puntos anteriores hasta que todas las páginas hallan sido agregadas.

d. Click Next.

6. Determinar si se va a incluir los tabs en la aplicación y click Next.

7. Determinar si se va a importar componentes compartidos con otra aplicación. Los

componentes compartidos son elementos comunes que pueden displayarse ó ser aplicados sobre una página dentro de una aplicación.

Para incluir componentes compartidos:

a. Copy Share Componentes desde otra aplicación, seleccione Yes

b. Copy from Application, seleccione la aplicación desde la cual quiere importar componentes compartidos.

c. Select Componentes to Import, seleccione los componentes a importar.

d. Next.

8. Seleccione las siguientes preferencias de autenticación y globalización. a. Default Authentication Scheme – Identifica un esquema de autenticación que se desea usar por default. b. Language – Selecciona el lenguaje primario para esta aplicación. Este atributo identifica el lenguaje en el cual la aplicación es desarrollada. Este lenguaje es el lenguaje base desde el cual todas las traducciones son hechas. c. Obtener la preferencia de lenguaje del usuario. Especifica como el motor determina el lenguaje de la aplicación. El lenguaje primario de la aplicación puede ser estático (es decir, derivada del lenguaje del browser) ó determinada de una preferencia de usuario ó item. El lenguaje seteado en la base de datos determina el formato de display de la fecha y las características de ordenamiento. Se puede alterar los atributos de lenguaje y la forma de seleccionar el lenguaje más tarde ó editar los atributos de globalización de la página. Para

ello véase "Configuring Globalization Attributes". d. Click Next.

9. Seleccione un theme (contexto) y click Next. Los Themes (contextos) son colecciones de templeates que pueden ser usados para definir el layout y el estilo de una aplicación completa. Véase "Managing Themes". 10. Confirmar las selecciones realizadas. Retornar a la página anterior del wizard, click en Previous. Aceptar las opciones realizadas y click en Finish.

-27-

Application Express User's Guide

Building an Application

About Application Models and User Interface Defaults. (Modelos de aplicaciones y valores por default de la interface del usuario).

El wizard para crear aplicaciones está diseñado asumiendo que el desarrollador lo ejecutará múltiples veces. Para facilitar este método interactivo para el desarrollo de aplicaciones, cada vez que se ejecuta el wizard guarda la definición de la página como un modelo de aplicación. Consideremos el siguiente ejemplo: Crear una nueva aplicación ejecutando el wizard. Después de ver la aplicación, caemos en la cuenta que no es todo lo que se quería. En lugar de modificarla, se puede ejecutar el wizard nuevamente y seleccionar un modelo de aplicación. Al seleccionar un modelo de aplicación existente cuando se re-ejecuta el wizard, se puede rápidamente mejorar la aplicación con mínimo tiempo y esfuerzo. Ver también:

Managing Application Models" Otra forma de incrementar la productividad cuando creamos una aplicación es especificando valores por default en la interface de usuario. Los valores por default en las interfaces son metadatos que permiten asignar valores por default a las propiedades de las tablas, columnas, ó listas dentro de un esquema específico. Ver también: Managing User Interface Defaults"

Leveraging Application Models and User Interface Defaults. (Mejorar modelos de aplicaciones e interfaces de usuarios)

Se puede incrementar la productividad en el desarrollo de aplicaciones mejorando los modelos de aplicaciones y los valores por default de las interfaces de usuarios. Considere los siguientes escenarios:

1) Crear una aplicación basada en tablas ó vistas ejecutando el wizard. 2) Ejecutar la aplicación generada. Determinar las deficiencias funcionales. 3) Evaluar si crear ó editar las interfases del usuario. Por ejemplo, se pueden usar los valores por default en la interface del usuario para controlar los campos del formulario ó para displayar las etiquetas de los reports. También se puede utilizar los valores por default (de la interface) para displayar columnas específicas o displayar determinadas columnas en orden alternativo. 4) Navegar a la home page de la aplicación y crear una nueva aplicación haciendo click en Create. 5) Seleccionar Create Application. 6) Cuando pregunta por los detalles de la aplicación, especificar lo siguiente:

a. Nombre-Ingrese el nombre que describe a la aplicación.

b. Application-Ingrese el id que identifica a la aplicación (ó acepte el valor por default que propone el wizard).

c. Create Application-seleccione Based on existing application design model.

1) Seleccione un modelo de aplicación. Note que las páginas que se crearon recién, ya aparecen para ser seleccionadas como modelos. 2) Agregue, edite ó remueva páginas. 3) Complete el wizard. 4) Repetir los pasos 2 a 9 hasta que la aplicación alcance los requerimientos funcionales.

About the Create Application from Spreadsheet Wizard

Application Express User's Guide

Building an Application

Se pueden crear aplicaciones a partir de datos en hojas de cálculos seleccionando Create Application from Spreadsheet en el wizard. Para crear una aplicación desde una hoja de cálculo:

1) Desde Home Page, click en Application Builder. 2) Click en el botón Create. 3) Seleccionar Create Application from Spreadsheet.

4) Especificar como serán importados los datos desde la hoja de cálculos. Seleccione alguno de los siguientes y click Next:

a. Upload file (comma-delimited ó tab-delimited). Especifique uno de los siguientes y click Next:

i. File Click en Browse para localizar el archivo a ser importado.

ii. Separator Especificar el carácter separador de columna. Utilizar \t para separadores tab.

iii. Optionally Enclosed By Ingrese el carácter delimitador. Se puede usar este carácter delimitador para indicar el comienzo/fin de un dato. Si se especifica un carácter delimitador, el wizard ignora los espacios en blancos que aparecen antes del carácter de inicio y los que aparecen después del carácter de fin, que delimitan el dato. Se puede también usar esta opción para datos que están delimitados por un carácter específico.

iv. File Character Set Seleccionar el conjunto de caracteres en el

que está codificado el archivo de texto.

b. Copy and Paste (hasta 30 kbytes). Copiar y pegar los datos de la hoja

de cálculo que se desea importar y hacer click en Next. 5) Revisar la vista previa para ver como será displayada la tabla y hacer click en Next. Especificar el nombre de la tabla y sus columnas, modificar los tipos de datos, ó detallar que columnas incluir. 6) Revisar si se displayan nombres en singular y escríbalos en plural. La interface por default de las columnas displaya los nombres por default de las etiquetas. 7) (Opcional) Mediante la interface por default, edite las etiquetas a displayar y click Next. 8) Para los totales por columnas, seleccione las columnas para las cuales los datos deben ser sumarizados en el reporte y gráficos y click en Next. 9) Este wizard crea varios totales por reports. Selecciones las columnas que se deben totalizar por report.

a. Aggregate by Column – Elija uno ó más columnas para las cuales se quiere sumarizar o promediar.

b. Aggregate Function to use – Seleccionar las funciones de resumen (Sum ó Average).

c. Click Next.

10) Seleccionar opciones a nivel de aplicación:

a. Application Name – Ingrese un nombre alfanumérico para esta aplicación.

b. Especificar el modo de creación:

i. Read and Write incluye operaciones insert y update en las páginas.

ii. Read Only no incluye insert y update.

c. Seleccione el tipo de gráfico.

d. Click Next.

11) Seleccione un theme (contexto) y click Next. (Themes son colecciones de templetes que pueden ser utilizados para definir el estilo y layout de una

aplicación completa. Véase: "Managing Themes".

-29-

Application Express User's Guide

Building an Application

12) Confirmar opciones. Si desea ver páginas previas del wizard puede realizar click en Previous. Para aceptar todo y finalizar, click Create.

About Demonstration Applications (Aplicaciones de demostración).

Oracle Application Express se instala con aplicaciones de demostración. Utilice estas aplicaciones para comprender las funcionalidades que se pueden incluir en las aplicaciones. Ver también: "Running a Demonstration Application"

Acceso a las aplicaciones demo

Para acceder a las aplicaciones demo:

1) Desde la Home Page, click en Aplication builder. 2) Click en el botón Create. 3) Seleccionar Demonstration Application. Aparece la página de aplicaciones demo, displayando enlaces a las siguientes aplicaciones:

a. Sample Application ofrece una demostración que resalta conceptos básicos de diseño.

b. Collection Showcase muestra los conceptos del carrito de compras.

c. Web Services sirve como ejemplo de cómo se puede utilizar servicios web.

4) Instalar una aplicación demo, bajar hasta la aplicación que se desea instalar, click Install. Aparecerá el estado Installed. 5) Editar la aplicación instalada haciendo click en Edit. 6) Ejecutarla con click Run 7) Para re-instalarla (a la aplic. Demo), click en Re-Install.

Deleting an Application (Eliminación de una aplicación).

Se puede eliminar una aplicación desde adentro del Application Builder, o mientras se están editando sus atributos. Si se deletea una aplicación, se borran con ella todos los componentes definidos (reports, gráficos, ó formularios), controles de páginas (botones, items, lista de valores), y también los componentes compartidos (breadcrumbs, listas, y tabs). No se eliminan los default para las interfases.

Temas:

Deleting an Application from Application Builder

Deleting an Application from Edit Application Attributes

Deleting an Application from Application Builder Para borrar una aplicación desde Application Builder:

1) Desde la Home Page, click en el icono Application Builder. 2) Seleccionar una aplicación. 3) Cuando se muestre el Ap. Builder, verificar el ID de aplicación y el nombre en la parte superior de la página. 4) Sobre la lista de tareas, click en Delete this Application. 5) Seguir las instrucciones que se dan en pantalla.

Deleting an Application from Edit Application Attributes. Deletear una aplicación desde la edición de los atributos de aplicación:

1) Desde la Home Page, App. Builder

-30-

Application Express User's Guide

Building an Application

2) Seleccionar la aplicación. 3) Click en editar atributos. 4) Click en Edit Standard Attributes. 5) Verificar el ID de la aplicación y su nombre. 6) Click en Delete al tope de la página. Véase : Configuring Standard Application Attributes"

-31-

Application Express User's Guide

Building an Application

Adding Pages to an Application.

Se puede agregar una nueva página ó componente a una página existente, ejecutando el Create Page Wizard. Para acceder al mismo:

o

Click en Create Page en la home-page de la aplicación.

o

Click en Create en la pagina de definición.

o

Seleccionar sobre la barra de desarrollo el Create Link.

Nota: Se puede agregar también un componente a una página existente (tal como un report, un gráfico, un formulario, un wizard, un calendario, ó un tree) utilizando el Wizard Create Page. El wizard responde solicitando el ID de una página existente.

Temas.

Creating a Page from Application Home Page

Creating a Page from the Page Definition

Creating a Page from the Developer Toolbar

Running a Page or Application

Grouping Pages

Locking and Unlocking a Page

Deleting a Page

Véase también: Creating Reports", "Creating Charts", "Creating Forms", "Creating Calendars", and "Creating Trees"

Creating a Page from Application Home Page

Para crear una nueva página desde el Application home page:

1) Desde el Database Home Page, click en Application Builder

2) Seleccionar una aplicación. Aparecerá la Application home Page de la misma. 3) Click Create Page 4) Seleccionar el tipo de página que se desea crear:

a. Página en Blanco.

b. Múltiples páginas en blanco.

c. Reporte.

d. Gráfico.

e. Formulario.

f. Wizard.

g. Calendario.

h. Tree.

i. Página de login.

5) Seguir las instrucciones dadas en pantalla.

Createing a Page from the Page Definition

Para crear una nueva página mientras se está viendo una Page definition:

1) Navegar a la correspondiente Page Definition.

a. Navegar a la Database Home Page.

b. Click en el ícono Application Builder.

c. Seleccionar una aplicación.

d. Seleccionar una página. Aparece la definición de la página.

2) Desde la barra de navegación (al tope de la página), click en el botón Create. 3) Seleccionar el tipo de página que se desea crear:

a. New page.

-32-

Application Express User's Guide

b. Region sobre esta página.

c. Control de página sobre si misma.

d. Control compartido. (Shared control)

Building an Application

Table: Create Page Options Describe las opciones disponibles correspondientes al tipo de página seleccionado.

Create Page Options

Available Selections

New Page

Available page types:

a.

Blank age

b.

Multiple blank pages

c.

Report

d.

Chart

e.

Form

f.

Wizard

g.

Calendar

h.

Tree

i.

Login Page

Region on this page

Regions function as containers for content. Available region types:

j.

HTML

k.

Report

l.

Form

m.

Chart

n.

Breadcrumb

o.

PL/SQL Dynamic Content

p.

Tree

q.

URL

r.

Calendar

s.

Multiple HTML

t.

Help Text

Page control on this page

Page controls:

u.

Item

v.

Button

w.

Branch

x.

Computation

y.

Process

z.

Validation

Shared control

Shared component options:

aa.

Navigation Bar icon

bb.

Parent tab

cc.

Standard tab

dd.

List of values

ee.

List

ff.

Breadcrumb

-33-

Application Express User's Guide

4) Continuar con las instrucciones de pantalla. Véase también: Editing a Page Definition

Building an Application

Creating a Page from the Developer Toolbar

Los usuarios que están logueados a la Database Home Page utilizando una cuenta de

usuario tienen acceso a la barra de desarrollo. La barra de desarrollo se displaya al final de cada página y ofrece una forma rápida de crear una nueva página. Para crear una nueva página desde la barra de desarrollo:

1) Sobre la barra de desarrollo, seleccionar Create. Aparecerá el wizard del nuevo componente. 2) Seleccione el tipo de componente que se desea crear y click Next. Las opciones disponibles son:

a. New Page

b. Región sobre esta Page.

c. Page Control sobre esta Page.

d. Shared control.

Table: Create Page Options Describe las opciones disponible correspondientes al tipo de página seleccionado.

3) Continuar con las instrucciones dadas sobre la pantalla. Véase también: "Using the Developer Toolbar"

Running a Page or Application.

El motor del Application Express dinámicamente ejecuta y procesa páginas basadas sobre los datos alojados en las tablas de las bases de datos. Para ver un versión ejecutada de la aplicación, se ejecuta ó submite la misma al motor del Application Express. Al crear nuevas páginas, se pueden ejecutar individualmente, ó ejecutar la aplicación completa. Se puede ejecutar una aplicación con click en el icono Run Application. Temas.

About the Run Application Icon

Running an Application from the Application Builder Home Page

Running an Application from the Application Home Page

Running a Page from the Pages List on the Application Home Page

Running a Page from the Page Definition

About the Run Application Icon

El icono de ejecución de una aplicación se asemeja a la luz del semáforo. Un gran icono colorido, Run Application, aparece sobre la home page de las aplicaciones.

Application, aparece sobre la home page de las aplicaciones. Muchas páginas dentro del Application Builder también

Muchas páginas dentro del Application Builder también ofrecen una versión más pequeña de este icono. Click en este pequeño icono se ejecuta la aplicación completa ó de páginas individuales dependiendo del contexto en que se invoca. Por ejemplo, si es desde la home

-34-

Application Express User's Guide

Building an Application

page ejecuta la aplicación completa, si es desde la Page Definition ejecuta solo la página en cuestión.

la Page Definition ejecuta solo la página en cuestión. Running an Application from the Application Builder

Running an Application from the Application Builder Home Page Para ejecutar una aplicación completa desde la home page del Builder:

1) Desde la home page de la base de datos, click en Application Builder. 2) Desde la lista de vistas (View), seleccionar Details y click en Go. 3) Localizar la aplicación en la lista de aplicaciones. 4) Click en el icono Run que está en la columna más a la derecha.

Running an Application from the Application Home Page Para ejecutar una aplicación completa desde la home page de la aplicación:

1) Sobre la Home Page de la base de datos, click en Application Builder. Aparece la home page del builder. 2) Seleccionar una aplicación. 3) Click en el icono Run.

Running a Page from the Pages List on the Application Home Page Para ejecutar una página desde la lista de Páginas:

1) Desde la Home Page, click en el icono Application Builder. 2) Seleccionar una aplicación. 3) Desde la lista View, seleccionar Details y click en Go. 4) Desde la lista Pages, localizar la página que se desea ejecutar y click en Run, de la columna que está más a la derecha.

Running a Page from the Page Definition Para ejecutar una página específica de la Page Definition:

1) Desde la Database Home Page, clic en Application Builder. 2) Seleccionar la aplicación. 3) Seleccionar la página. Aparece directamente la page definition. 4) Clic en Run Page en el extremo superior derecho de la página.

Grouping Pages

Utilice grupo de páginas y gestione las páginas dentro de una aplicación. Para utilizar grupo de páginas, se debe crear un grupo y luego asignar las páginas al grupo. Los grupos de página no tienen otra función especial que no sea organizar las páginas de una aplicación. Se puede organizar fácilmente las páginas, por grupos, dentro de la aplicación. Temas:

Viewing the Page Group Report

Creating a Page Group

Assigning Pages to a Page Group

Viewing Page Groups from the Application Home Page Para ver el grupo de páginas desde la home page de la aplicación:

1) Desde la Database Home Page, clic en Application Builder. 2) Seleccionar la aplicación. 3) Desde la lista de tareas del lado derecho de la página, clic en Manage Page Groups 4) Desde la lista de tareas, clic en Report Page Groups.

-35-

Application Express User's Guide

Building an Application

Viewing Page Groups from the Page Definition Para ver un grupo de páginas desde la Page Definition. 1) Desde la Database home page, clic en el icono Application Builder. 2) Seleccionar una aplicación. 3) Seleccionar una página. Aparece la definición de la página. 4) Desde la View list, seleccionar Groups.

Creating a Page Group Para crear un grupo de páginas:

1) Desde la Database Home Page, click en Application Builder. 2) Seleccionar una aplicación. 3) Desde la lista de tareas, sobre el lado derecho de la página, click en Manage Page Groups. 4) Desde la page group click en Create. 5) Ingresar el nombre, una descripción, y click en Create.

Assigning Pages to a Page Group Para asignar una página a un grupo:

1) Desde la Database Home Page, click en Application Builder. 2) Seleccionar una aplicación. 3) Desde la lista de tareas, sobre el lado derecho de la página, click en Manage Page Groups. 4) Sobre la lista de tareas, click en Report Unassigned Pages. Aparecerán las páginas no asignadas a grupos. 5) Desde Page Group, seleccionar el grupo al cual se quiere asignar las páginas. 6) Seleccionar las páginas que deben ser asignadas. 7) Click en Assigned Checked. Si se selecciona el id de página se enlaza a la página de atributos. Si se selecciona el nombre de la página enlaza a la definición de página.

Locking and Undlocking a Page

Se pueden prevenir conflictos durante el desarrollo de la aplicación impidiendo el acceso a páginas de la aplicación. Mediante el loocking de una página, se previene que otros desarrolladores puedan editarla. Temas.

Determining If a Page Is Locked

Locking a Page

Unlocking Pages

Accessing Alternative Locked Pages Views

Determining if a page está locked. Se indica que la página (actual) está lockeada mediante un icono. Si la página esta

deslockeada, el icono aparece abierto, sino aparece cerrado. El icono de estado del lockeo aparece en las siguientes páginas:

o

Application home page. Seleccione Details desde la lista Display. Aparece una lista de páginas. El icono de lock aparece debajo de la columna Lock.

o

Page Definition. El icono lock aparece en el extremo derecho del menú de la página.

Locking a Page Se puede lockear una página de la aplicación:

1) Desde la Database Home Page, click en Application Builder.

-36-

Application Express User's Guide

Building an Application

2) Seleccionar una aplicación. 3) Sobre la lista de tareas a la derecha de la página, click en Manage Page Locks. 4) Seleccione la página apropiada y click en Lock Checked. 5) Ingrese un comentario en el campo de comentarios. 6) Click en Lock Page.

Locking a Page from the Pages List Para lockear una página desde la Lista de Páginas:

1) Desde la Database Home Page, click sobre App.Builder. 2) Seleccionar una aplicación 3) Desde la lista View, seleccionar Details y click en Go. 4) En la lista de páginas, localizar la página deseada y click en el icono Lock. 5) Ingresar un comentario. 6) Click en Lock Pages.

Locking a Page from the Page Definition. Para lockear una página desde la página de definición de la aplicación:

1) Navegar a la página de definición de la aplicación. 2) Click en el icono Lock, en la esquina superior derecha, encima de Shared Components. 3) Seleccionar las páginas deseadas y click en Lock Checked. 4) Ingresar un comentario. 5) Click en Lock Pages.

Unlocking Pages Solo el desarrollador que lockeo una página puede deslockearla. Sin embargo, un desarrollador con privilegios administrativos puede deslockear páginas lockeadas por otros desarrolladores.

Los pasos para deslockear páginas es similar que para el lockeo descrito más arriba.

Accessing Alternative Locked Pages Views. Se puede acceder un cierto número de diferentes vistas de páginas lockeadas. Para ello:

1) Desde la Database Home Page, click en app.builder. 2) Seleccionar una aplicación. 3) Desde la lista de tareas, a la derecha de la pág., click en Manage Page Locks. 4) Desde la lista de tareas, click en uno de los siguientes:

a. Show Locked Pages: Lo cual displaya solo páginas lockeadas dentro de la actual aplicación.

b. Show all pages.: Displaya todas las páginas de la aplicación.

c. Show Unlocked Pages: Displaya solo las páginas desloqueadas de la actual aplicación.

d. Administer Locks: Permite a un administrador deslokear cualquier página lockeada por un desarrollador.

Deleting a Page

Se puede deletear una página desde la Page Definition ó mientras se están editando los atributos de la páginas.

Deleting a Page from the Page Definition. Para deletear una página desde la Page Definition hacerlo desde la barra de navegación al tope de dicha página, con un click en Delete.

-37-

Application Express User's Guide

Building an Application

Deleting a Page while editing page attributes. Para deletear una página mientras se editan los atributos de páginas, en la page definition, click en Edit Attributes, Click en edit Standard Attributes y click en Delete.

-38-

Application Express User's Guide

Building an Application

Creating Reports

En Oracle Application Express, un reporte es el resultado de una consulta Sql query formateada. Se pueden generar reportes mediante la selección y ejecución del constructor de consultas, ó mediante la definición de una región en el reporte basada en una consulta sql. Temas.

Creating a Report Using a Wizard

Editing Report Attributes

Controlling Report Pagination

Enabling Column Sorting

Adding a CSV Link to a Report

Exporting a Report as an XML File or a CSV File

Creating a Column Link

Defining an Updatable Column

Defining a Column as a List of Values

Controlling When Columns Display

Controlling Column Breaks

Creating a Report Using a Wizard

Application Builder incluye un cierto número de wizards para construir reportes. Para crear un reporte utilizando un wizard:

1) Desde la Database Home Page, click en App. Builder. 2) Seleccionar la aplicación. 3) Click en Create Page. 4) Seleccionar Report 5) Seleccionar uno de los siguientes tipos de report:

a. Wizard Report : No requiere conocimientos sobre SQL. Selecciona el

esquema, tabla, columna y resultados a mostrar.

b. SQL Report : Crea un reporte basado sobre una sentencia Sql Select ó una función Pl/sql que retorna una sentencia sql select.

6) Continuar con las instrucciones de pantalla.

Editing Report Attributes

Se pueden utilizar los atributos del report y de las columnas de las páginas para controlar precisamente la definición de la página del report. Por ejemplo se pueden usar estos atributos para alterar los encabezamientos de columna, la posición, si es oculta, ó bien para crear una columna que es una suma ó para seleccionar la secuencia de ordenamiento. Desde la Page Definition, se puede acceder a los atributos de la página report con un click en Report ó RPT, adyacente a la region report que tu quieres editar. Report indica al reporte que es un report regular y RPT indica que es generado por wizard. Se puede navegar también a los atributos del report (a la página de atributos) haciendo click en el nombre de la región y luego seleccionando el tab Report Attributes.

Para acceder a la página de atributos del report:

1) Desde la Database Home Page, click en Application Builder. 2) Seleccionar la aplicación. 3) Seleccionar la página. Aparece la página de definición. 4) Debajo de la Regions, hacer click en Report cerca del nombre de la región que se desea editar. Con lo cual aparece la pagina de Atributos del Report.

-39-

Application Express User's Guide

Building an Application

Application Express User's Guide Building an Application El tipo de encabezamiento identifica como fue generado el

El tipo de encabezamiento identifica como fue generado el encabezamiento del report. Utilice la sección de atributos de columna para controlar la apariencia y funcionalidad de cada columna. El link de cada columna indica si una columna tiene actualmente definido un enlace. El Edit de cada columna indica si es o no updateable una columna.

Table: Common Report Column Edits Describe las ediciones más comunes para las columnas de los reportes.

Descripción

Acción a desarrollar.

Modificar la secuencia de ordenación de una columna

Click sobre las flechas arriba / abajo.

Modificar alineación del encabezamiento

Under Column Alignment, seleccionar una nueva alineación de columna.

Modificar el encabezamiento de la columna

Under Heading, ingrese el nuevo texto que corresponde a la columna.

Control sobre las columnas a displayar.

Click en Show para indicar que una columna debe ser displayada.

Habilitar una única secuencia de ordenación.

Click en Sort y seleccionar un numero de secuencia desde Sort Sequence. Se debe elegir al menos una columna de ordenación (pueden ser varias).

Habilitar una columna de totales

Click en Sum para habilitar la suma de la columna.

Se puede además refinar los atributos específicos de una columna. 5) Para acceder a los atributos de la columna, click en el icono Edit adyacente al alias de la columna. Ver también la ayuda on line para más información sobre un atributo específico de la columna.

Controlling Report Pagination

Se puede controlar la paginación del reporte mediante:

o

Inclusión del string de sustitución de paginación en el template del report.

o

Hacer la selección, del atributo Layout y Paginación, desde los atributos del report.

-40-

Application Express User's Guide

Building an Application

Se puede controlar como mostrar la paginación seleccionando desde el atributo Layout y Paginación. Para acceder a esta sección:

1) Crear un reporte. 2) Debajo de la Regions, click sobre el enlace de atributo (Report ó RPT). Con lo cual aparecerá la página de atributos del report. 3) Bajar con scroll down hasta Layout y Paginación. Se usan los atributos de Layout y Paginación para seleccionar el estilo de paginación, determinar donde se displaya la paginación y especifica el número de filas que displayar sobre cada página. La tabla siguiente describe los atributos más comunes utilizados en Table: Layout and Pagination Attributes

Atributo

Descripción

Report

Especifica el template que se aplicará a este report. Los template (de reportes) proveen control sobre la salida de los resultados de una consulta sql. Se pueden seleccionar desde algunos template por default ó seleccionar un templete customizado.

Templeate

Pagination

Especifica el esquema de paginación para este reporte. Provee al usuario información sobre el número de filas y posición dentro del conjunto resultante. También define el estilo de los enlaces ó botones usados para navegar a la página siguiente y previa.

Scheme

Display

Define donde se displaya la paginación. Si se elige displayar la paginación sobre el reporte, se requiere que el template, del reporte, soporte el tipo de display.

Possition

Number of

Define el número máximo de filas a displayar por cada página.

Rows

Strip HTML

Especifica si se remueve, ó no, los tags HTML desde las columnas que tengan expresiones HTML y columnas con links. Si se seleccionan datos de la base de datos que contienen tags HTML, pueden causar conflictos con el HTML generado por los enlaces de columnas ó con las expresiones HTML. Cuando esta opción esta habilitada, solo se utiliza la porción de datos de la columna como valor ( no se utiliza el enlace ).

Including Pagination After the Rows in a Report

Para incluir paginación después de las filas en un reporte. 1) Crear un reporte. 2) Navegar a la página de atributos del reporte. 3) En Layout and Pagination, seleccionar lo siguiente:

a. Report Template – Selecciona un templete de reporte (opcional).

b. Pagination Scheme – Selecciona un esquema de paginación.

c. Display Position – Selecciona una posición.

d. Number of Rows – Selecciona cuantas filas mostrar en cada página.

e. Click en Apply Changes.

4) Editar el templete del reporte:

a. Navegar a la definición de página del reporte.

b. En templates, seleccionar el nombre del template.

c. Incluir el string de sustitución #PAGINATION# en el atributo After Rows.

d. Click en Apply Changes.

5) Ejecutar la página.

Including Pagination Before the Rows in a Report Para incluir paginación antes de las filas en un reporte:

-41-

Application Express User's Guide

Building an Application

1) Crear un reporte. 2) Navegar a la página de atributos del reporte.

3) En Layout and Pagination, seleccionar lo siguiente:

a. Report Template – Selecciona un templete de reporte (opcional).

b. Pagination Scheme – Selecciona un esquema de paginación.

c. Display Position – Selecciona una posición que contiene el word top.

d. Number of Rows – Selecciona cuantas filas mostrar en cada página.

e. Click en Apply Changes.

4) Editar el templete del reporte:

f. Navegar a la definición de página del reporte.

g. En templates, seleccionar el nombre del template.

h. Incluir el string de sustitución #TOP_PAGINATION# en el atributo Before Rows.

i. Click en Apply Changes. 5) Ejecutar la página.

Enabling Column Sorting (ordenar por columna)

Para habilitar la ordenación por columna:

1) Navegar a la página de atributos del report. "Editing Report Attributes". 2) En los atributos de columna, seleccionar el check box de Sort adyacente a cada columna por la cual se desea ordenar. 3) Desde Sort Sequence (secuencia de ordenación), seleccionar un número de secuencia. Sort Sequence es opcional. Sin embargo, si se ordena por una o más columnas, al menos una de las columnas necesita tener definido el Sort Sequence. 4) Hace scroll hacia abajo a Sorting. 5) Especificar si es orden ascendente ó descendente ó click en set defaults.

Adding a CSV Link to a Report ( Agregar enlace para exportar el reporte )

Se puede crear un enlace, dentro del reporte, que permita al usuario final, exportar el reporte generado a un archivo con formato delimitado por comas (.csv). Para agregar dicho tipo de enlace es necesario habilitar la opción de salida CSV (CSV output option). Cuando se usa la opción de salida CSV, el template del reporte no tiene trascendencia (ya que no sirve para formatear un archivo delimitado por comas). Se puede incluir un enlace CSV con cualquier template de report que tenga definido el string de sustitución CSV export. Véase también: "Automatic CSV Encoding"

Enabling the CSV Output Option ( Habilitar la opción de salida CSV ) Para habilitar la opción de salida CSV:

1) Navegar a los atributos de la página del reporte. 2) Bajar con scroll hasta Report Export. 3) En Enable CSV output, seleccionar Yes. 4) (Opcionalmente) En el separador de campos (Separator and Enclosed By fields), definir el separador y delimitador. Por default los delimitadores de string son los (“”) y los campos por comas ó punto y coma dependiendo de la configuración NLS. 5) En el campo etiqueta del link (Link Label) se debe ingresar un texto. Este texto se mostrará en el reporte y permitirá al usuario invocar un download. 6) (Opcionalmente) Para especificar un nombre por default para el archivo exportado, ingresar un nombre de archivo en campo Filename. Por default, el motor del Application Express crea un nombre para el archivo exportado tomando el nombre de la región y dándole extensión (.csv ó .xml ). 7) Click en Apply Changes.

-42-

Application Express User's Guide

Building an Application

Exporting a Report as an XML File or a CSV File

Se puede exportar un reporte como un archivo XML indicándolo en el template del report. Para exportar un reporte como un archivo:

1) Navegar a la página de atributos del reporte. "Editing Report Attributes". 2) Bajar hasta el atributo Layout and Pagination. 3) En la lista de Report Template, seleccionar export: XML ó export: CSV. Seleccionando export: xml, le indica al motor del application express que no construya la página del reporte y que vuelque el contenido a un archivo XML. 4) Click en Apply Changes.

Creating a Column Link ( Crear una columna de enlace )

Utilice el atributo Column Link para crear un enlace desde un reporte a otra página dentro de la aplicación ó bien a una URL. Para crear una columna de enlace a otra página:

1) Navegar a la página de atributos del report. "Editing Report Attributes". 2) En el atributo Report Column localizar la columna que tendrá el enlace. 3) Click en el icono Edit adyacente al nombre de la columna. Aparecerá la página de atributos de la columna. 4) Seleccionar Column Link 5) Para crear un enlace a otra página:

a. En Target, seleccionar Page in this Application.

b. (Opcionalmente) En los atributos del link, especificar atributos adicionales en el

link que serán incluidos en el tag <a href= >

estilo).

(por ejemplo, un link, clase ó

c. En Link Text, ingresar el texto ó imagen que se desea mostrar como link (se puede seleccionar alguna de las imágenes por default).

d. En Page, especificar el ID de la página destino. Para resetear la paginación de esta página, seleccionar Reset Pagination.

e. En Request, se especifica la solicitud que se utilizará.

f. En Clear Cache, se especifica las páginas (es decir los ID de páginas) sobre las cuales se limpia la cache. Se puede especificar varias páginas listando los ID separados por comas.

g. En Name y Value especificar el valor de un item específico.

6) Click en Apply Changes.

Para crear una columna con enlace a una URL:

1) Navegar a la página de atributos del report. "Editing Report Attributes".

2) Acceder al atributos de una columna con click en Edit (junto a la columna). Aparecerá la página de atributos de la columna seleccionada. 3) Bajar a Column Link. 4) En Column Link, ejecutar la siguiente selección:

a. En Target Type, seleccionar URL

b. En Link Text, ingresar el texto a mostrar como enlace y seleccionar un string de sustitución.

c. (Opcional). En Link Attributes, especificar los atributos adicionales del link que

serán incluidos en el tag <a href= >

(por ejemplo, un link, clase ó estilo).

d. En URL, ingrese la dirección URL a la cual se desea navegar.

5) Click en Apply Changes.

-43-

Application Express User's Guide

Building an Application

Defining an Updatable Column

Se puede hacer que una columna sea de actualización editando los atributos Tabular Form Element ó bien editando la página de los atributos de una columna del report. Tenga en

cuenta que el motor del Application Express solo puede ejecutar los update sobre la tabla si:

o

Se define un update de múltiples filas.

o

Se implementa un pl/sql que ejecuta la actualización de los datos.

o

Cuando usa la built-in del item que se muestra, se debe definir que el report utilice el tipo SQL Query (updatetable report).

Para definir columnas actualizables:

1) Navegar a la página de atributos del report. "Editing Report Attributes".

2) Acceder a la página de atributos de la columna con un click en el icono Edit, adyacente a la columna en cuestión. Se muestra la página de atributos de la columna seleccionada. 3) Bajar a Tabular Form Element. 4) En Tabular Form Element, hacer la siguiente selección.

a. Display As – Seleccionar un tipo de columna actualizable. Utilice esta opción

para que una columna sea actualizable. La actualización solo podrá ser ejecutada si se define un multirow update, ó si se implementa un proceso pl/sql que actualice los datos.

b. Date Picker Format Mask – Seleccionar una máscara si en la opción anterior (Display As) se eligió Date Picker.

c. Element Width – Especificar el ancho del item.

d. Number of Rows – Especificar la altura del item del formulario (solo es aplicable en áreas de texto).

e. Element Attributes – Especificar si es un item radio group o un check box.

f. Element Option Attributes – Define un estilo ó atributo (de elemento de form) standard

g. Primary Key Source Type – Identifica el tipo por default.

h. Primary Key Source – Identifica el fuente por default.

i. Si la columna es parte de la primary key definida en un proceso MRU (multi row update), solo aparece la Primary Key Source Type y la Primary Key Source.

ii. En otros casos aparece Default y Default Type. Utilice Default y Default Type para establecer una relación entre dos registros masters en un formulario master detail, ó seleccione los valores por default para las nuevas filas.

i. Reference Table Owner – Identifica al propietario de las tablas referenciadas. Use este atributo para construir la interface por default para el usuario del report.

j. Reference Table Name – Identifica la tabla ó vista que contiene la columna del reporte.

k. Reference Column Name – Identifica el nombre de la columna a la que se hace referencia .

5) Click en Apply Changes.

Defining a Column as a List of Values (Columna tipo lista de valores)

Application Express User's Guide

Building an Application

Las columnas de los reportes pueden ser mostradas como listas de valores. Por ejemplo, una columna puede ser mostrada como una lista de selección ó una lista popup de valores. O bien, una columna puede ser mostrada como un texto read-only basado en una lista de valores.

Esta última metodología es una estrategia efectiva cuando se muestra una lookup y es particularmente útil en reportes, no-actualizables, comunes. Esta metodología permite displayar los valores de una columna sin tener que escribir la sentencia sql join.

Para mostrar una columna de reporte como lista de valores:

1) Navegar a la página de atributos del reporte.

2) Acceder a la página de atributos de la columna con un clic en el Edit adyacente a la columna seleccionada. Aparece la página de los atributos de la columna. 3) Bajar hasta List of Values. 4) En Named LOV, hacer una selección desde el repositorio de lista de valores. 5) Para incluir un valor nulo en una lista de valores.

a. En Display Null, seleccionar yes.

b. En Null Text, especificar el valor a displayar. Una columna puede también tener un valor que no se muestra en la lista de valores.

6) Para definir un valor que no se muestra en la lista de valores:

a. En Display Extra Value, seleccionar Yes. El valor extra se usa si la columna actual no es parte de la LOV. En esta situación, el valor actual es mostrado. Sino se displayan valores extras, podría quedar con un valor erróneo y producir una actualización

b. En Null Value, especificar el valor a displayar.

c. Si no se ha seleccionado un Named LOV, ingrese la consulta sql necesaria

para displayar la lista en el campo de la LOV Query. 7) Si no se ha seleccionado un Named LOV, ingrese la consulta sql necesaria para displayar la lista en el campo de la LOV Query. 8) Clic en Apply Changes.

Véase también: Creating Lists of Values"

Controlling When Columns Display

Se pueden utilizar los atributos de columna Authorization y Condition para controlar cuando se muestra una columna. Authorization permite controlar el acceso a la columna del reporte basado en una condición predefinida. La condición se evalua a verdadero ó falso según la expresión ingresada en Expressions. Para especificar los atributos Authorization y Condition:

1) Navegar a la página de atributos del reporte. "Editing Report Attributes". 2) Acceder a la página de atributos de la columna con clic en el icono Edit adyacente a la columna seleccionada. 3) En Authorization, seleccionar desde la lista de Authorization Scheme. 4) En Conditions, seleccionar desde la lista de Condition Type, y dependiendo de la selección realizada, ingresar la expresión correspondiente en el campo Expression. Si la autorización es exitosa y la condición es verdadera se muestra la columna. Véase también:

"Providing Security Through Authorization"

"Understanding Conditional Rendering and Processing"

Available Conditions

-45-

Application Express User's Guide

Building an Application

Controlling Column Breaks ( Cortes de Control )

Se puede controlar la impresión en los cortes de control por columna utilizando el atributo Break Formatting. Por ejemplo, supóngase que el reporte muestra información del número de empleados por departamento. Si varios empleados son miembros de un departamento, se puede mejorar la presentación especificando un corte de control por departamento a fin de que aparezca impreso solo una vez el número de departamento.

Para crear este tipo de corte de control:

1) Navegar a la página de atributos del report. 2) Bajar a Break Formatting. 3) Seleccionar los cortes desde la lista Breaks.

-46-

Application Express User's Guide

Building an Application

Creating Forms

Se pueden incluir varios tipos de forms en las aplicaciones. Se pueden incluir forms que permitan al usuario actualizar una sola fila de una tabla ó varias filas de una tabla. Application Builder incluye un wizard que permite crear formularios automáticamente ó bien se pueden crear formularios manualmente.

Temas:

Creating a Form Using a Wizard

Creating a Tabular Form

Building a Master Detail Form

Creating a Form Manually

Validating User Input in Forms

Creating a Form Using a Wizard

La forma más fácil de crear un formulario es usando el wizard. Por ejemplo, el wizard crea un formulario con un item por columna de la tabla ó vista. También incluye la creación de los botones necesarios y los proceso requeridos para insertar, actualizar, y deletear filas desde la tabla utilizando la clave primaria de la misma. Cada región tiene definido un nombre y una posición, todos los otros atributos son items, botones, procesos y bifurcaciones.

Para crear un form utilizando el wizard:

1) Desde la Database Home Page, clic en el icono del Application Builder. 2) Seleccionar una aplicación. 3) Clic en Create Page. 4) Seleccionar Form. 5) En Forms, seleccionar un tipo de form de los descriptos en:

Table: Forms Page Types.

Form Page Type

 

Description

Form on a Procedure

 

Crea un form basado sobre los argumentos de un procedimiento almacenado. Utilizar este método cuando se tiene implementada la lógica ó la manipulación de datos (data manipulation language) en un procedimientos almacenados ó paquetes.

Form on a SQL Query

 

Crea un form basado sobre las columnas retornadas por una consulta Sql tal como un EQUIJOIN.

Form on a Table or View

Crea un form que permite al usuario actualizar una sola fila en una tabla de la base de datos.

Form on a Table with Report

 

Crea dos páginas. Una página muestra un report. Cada fila provee un enlace a la segunda página que permite al usuario actualizar cada registro. Nota: Este wizard soporta hasta 127 columnas.

Form on Web Service

 

Crea una página con items basado sobre la definición de un Web service. Este wizard crea un formulario de input del usuario, un proceso que llama al servicio Web y un botón que submite. Ver también: "Creating a Form

 

on a Web Service"

Form

and

Report

on

Crea una página con items basados sobre la definición de un servicio Web. Este wizard crea un formulario de input de usuario, un proceso que llama al servicio Web, un botón que submite, y displaya el resultado obtenido en un reporte. Ver también:"Creating an Input Form and

Report on a Web Service"

Web Service

 
 

Master Detalil Form

 

Crea un form que displaya una relación master-detail dentro de un solo formulario HTML. Con este form, los usuario s pueden consultar, insertar, actualizar, y deletear valores de dos tablas ó vistas relacionadas como

-47-

Application Express User's Guide

Building an Application

 

master-detail. Ver también: "Building a Master Detail Form"

Summary Page

Crea una versión read-only de un formulario. Se usa, generalmente, para proveer una página de confirmación, al final del wizard.

Tabular Form

Crea un formulario en el cual los usuarios pueden actualizar múltiples filas

en una tabla. Ver también:"Creating a Tabular Form"

6) Continuar con las instrucciones dadas en pantalla.

Creating a Tabular Form

Un formulario tabular permite a los usuarios actualizar varias filas de una tabla. El wizard crea un form para ejecutar operaciones de insert, update ó delete sobre varias filas de una tabla de la base de datos.

Para crear un form tabular:

1) Desde la Database Home Page, click en Application Builder. 2) Seleccionar una aplicación. 3) Click en Create Page 4) Seleccionar Form 5) Seleccionar Tabular Form . Aparecerá la página del wizard correspondiente. 6) En Identify Table/View Owner:

o

Especificar el esquema de la tabla o vista sobre la cual se basa el form.

o

Seleccionar las operaciones que se desea ejecutar sobre la tabla (por ejemplo:

Update, Insert y Delete). 7) En Identify Table/View Name, seleccionar una tabla. 8) En Identify Columns to Display:

o Especificar si utiliza la interfase de usuario por default. Seleccionar Yes ó No. Habilitar la interfase de usuario por default permite asignar las propiedades por default a una tabla, columna ó vista en un esquema específico.

o Seleccionar las columnas (actualizables y no actualizables) que incluye el form. Se puede modificar el orden de las columnas ó la consulta SQL después de crear la página del formulario. 9) En Identify Primary key, seleccionar la columna PK y una columna PK secundaria (si corresponde).

10)En Defaults for Primary and Foreign Keys, seleccionar el tipo de origen de la columna de la primary key. Las orígenes posibles para generar las primary key son:

o

Existing trigger – Seleccionar esta opción si hay un trigger definido en la tabla. Se puede también seleccionar esta opción si se tiene pensado en especificar la fuente de la columna primary key, mas tarde, después de crear el formulario.

o

Custom PL/SQL function – Seleccionar esta opción si se desea proveer una función pls/sql que retorne el valor de la primary key.

o

Existing sequence – Seleccionar esta opción si se desea seleccionar una secuencia desde la lista de secuencias disponibles en el esquema.

11)En Updatable Columns, seleccionar que columnas deberían ser de actualización. 12)En Identify Page and Region Attributes.

o

Especificar la información de pagina y de región.

o

Seleccionar un template para la región.

o

Seleccionar un template para el report.

13)En Identify Tab, especificar un tab de implementación para esta página. 14)En button Labels, ingresar el texto a mostrar en cada botón. 15)En Identify Branching, especificar las páginas a bifurcar después de hacer click en los botones Submit y Cancel.

-48-

Application Express User's Guide

Building an Application

16)Click en Finish. Nota: No modificar la lista de campos de la select después de que se ha generado el form tabular. Haciendo esto se puede causar un error de checksum cuando se alteran los datos en el formulario.

Ver también:"Managing User Interface Defaults"

Building a Master Detail Form

Un formulario master detail refleja una relación uno a muchos entre dos tablas del esquema de la base de datos. Típicamente, un form master detail muestra una fila de la tabla master y múltiples filas de la tabla detail dentro de un único form HTML. Con este form, los usuarios pueden insertar, actualizar y deletear registros desde dos tablas ó vistas.

Para crear un form master detail:

1. Desde la Database Home Page, click en Application Builder.

2. Seleccionar una aplicación.

3. Click en Create Page.

4. Seleccionar Form

5. Seleccionar Master Detail Form. Aparecerá el wizard correspondiente.

6. En Define Master Table:

a. Seleccionar el esquema de la tabla ó vista.

b. Seleccionar el nombre de la tabla ó vista.

c. Seleccionar las columnas a mostrar.

7. En Define Detail Table:

a. Especificar mostrar solo tablas relacionadas.

b. Seleccionar el esquema de la tabla ó vista.

c. Seleccionar el nombre de la tabla ó vista.

d. Seleccionar las columnas a mostrar.

8. En Define Primary Key, seleccionar la columna de la primary key de la tabla master y luego seleccionar la columna de la primary key de la tabla detail.

9. En Define Master and Detail, definir las relaciones entre las tablas master y detail.

10. Especificar el origen de las columnas primary key de la tabla master y de la tabla detail.

11. En Define Master Options, especificar si se incluye master row navigation. Si se incluye master row navigation, hay que definir el orden de las columnas. Sino se define navigation order column, el form de actualización master navega por la columna de la primary key.

12. En Choose Layout, especificar el layout de la página master detail. Se puede incluir el master detail como un form tabular sobre la misma página, ó desplegar el master detail como páginas separadas.

13. En Page Attributes, revisar y editar la información de la página master detail.

14. En Identify Tabs, especificar si se incluye opcionalmente un tab set.

15. Click en Create.

Creating a Form Manually

Se puede también crear un form manualmente ejecutando los siguientes pasos.

o

Crear una región HTML (sirve como contenedor de los items de página).

o

Crear los items a mostrar en la región.

o

Crear los proceso y bifurcaciones.

-49-

Application Express User's Guide

Building an Application

Para crear un form manualmente mediante la creación de una región HTML:

1. Navegar a la correspondiente Page Definition:

Navegar a la Database Home Page.

Click en Application Builder.

Seleccionar una aplicación.

Seleccionar una página. Aparecerá la definición de página.

2. Crear una región HTML.

En Regions, click en el icono Create.

Seleccionar el tipo de región HTML.

Seguir las instrucciones del wizard.

3. Agregar items a la página:

En Items, click en el icono Create. Seguir las instrucciones del wizard.

Processing a Form Una vez creado el form, el próximo paso es procesar los datos de datos insertando ó actualizando las tablas ó vistas subyacentes en la base de datos. Hay tres formas para procesar un form:

Creating an Automatic Row (DML) Processing Process

Creating a Process that Contains One or More Insert Statements

Using a PL/SQL API to Process Form Values

Creating an Automatic Row (DML) Processing Process Una forma común de implementar un form es creando manualmente un proceso Automatic Row Processing (DML). Este método ofrece tres ventajas. Primero, no requiere escribir código SQL. Segundo, Oracle Application Express ejecuta los procesos DML necesarios. Terceros, estos procesos. Tercero, estos procesos automáticamente ejecuta la detección de pérdidas de actualización (lost update detection). La detección de pérdidas de actualización asegura la integridad de datos de la aplicación donde los datos pueden ser accedidos concurrentemente.

Para implementar esta metodología :

o Add items, define el tipo de fuente del item a partir como una columna de base de datos, y especifica un nombre de columna case-sensitive.

o Seleccionar la opción Always overrides the cache value. (Reescribir siempre el valor cacheado). Para crear un proceso Automatic Row Processing (DML):

1. Navegar a la correspondiente Page Definition:

a. Navegar a la Database Home Page.

b. Click en el ícono Application Builder.

c. Seleccionar una aplicación.

d. Seleccionar una página. Aparece la definición de la página.

2. En Processes, click en el icono Create.

3. Seleccionar el proceso Data Manipulation.

4. Seleccionar la categoría de procesos Automatic Row Processing (DML).

5. Especificar los siguientes atributos del proceso:

a. En el campo Name, ingresar el nombre para identificar el proceso.

b. En el campo Sequence, especificar un número de secuencia.

c. En la lista Point, seleccionar el punto de inicio del proceso. En la mayoría de los casos corresponde seleccionar, select Onload – After Header.

d. En la lista Type, seleccionar Automatic Row Processing (DML).

6. Continuar las instrucciones dadas por el wizard en pantalla.

-50-

Application Express User's Guide

Building an Application

Creating a Process that contains One or More Insert Statements En este método de manejo del form, se crea uno ó más procesos para gestionar las acciones de insert, update, y delete. En vez de dejar que motor del Application Express lo maneje en forma transparente, el desarrollador asume el control completo.

Por ejemplo, supóngase que se tiene un form con tres items:

P1_ID – Un item oculto que guarda la primary key de la fila que se muestra actualmente, de una tabla.

P1_FIRST_NAME – Un campo item de texto para entrada de datos del usuario.

P1_LAST_NAME – Un campo item de texto para entrada de datos del usuario.

Supongamos también que hay tres botones etiquetados Insert, Update, y Delete. También asumimos que se cuenta con una tabla T que contiene las columnas id, first_name and last_name. La tabla tiene un trigger que automáticamente completa la columna ID cuando no se provee un valor para la misma.

Para procesar el insert de una nueva fila, se crea un proceso condicional de tipo PL/SQL que se ejecuta cuando el usuario hace click en el botón Insert. Por ejemplo:

BEGIN INSERT INTO T ( first_name, last_name ) VALUES (:P1_FIRST_NAME, :P1_LAST_NAME);

END;

Para procesar el update de una fila, se crea otro proceso condicional del tipo pl/sql. Por ejemplo:

BEGIN UPDATE T SET first_name = :P1_FIRST_NAME, last_name = :P1_LAST_NAME WHERE ID = :P1_ID;

END;

Para procesar el delete de una fila, se crea otro proceso condicional que se ejecuta con el click del botón correspondiente. Por Ejemplo:

BEGIN DELETE FROM T WHERE ID = :P1_ID;

END;

Using a PL/SQL API to Process Form Values Para cierto tipo de aplicaciones, es apropiado centralizar todos los accesos a las tablas en un solo (ó en unos pocos) paquetes PL/SQL. Si se crea un paquete para manejar las operaciones DML, se puede llamar a los procedimientos y funciones dentro de dicho paquete desde un proceso PL/SQL After Submit para procesar los insert, update y delete.

Populating Forms Oracle Application Express llena un form al cargarlo, ó cuando el motor del App.Express levanta la página. Un form se puede llenar de las siguientes formas:

1. Creando un proceso y definirlo como Automated Row Fetch

2. Llenar el form manualmente por referencia un item oculto de estado de sesión.

-51-

Application Express User's Guide

Para crear un proceso Automated Row Fech:

1. Navegar a la correspondiente Page Definition:

Building an Application

a. Navegar a la Database Home Page.

b. Click en Application Builder.

c. Seleccionar una aplicación.

d. Seleccionar una página. Aparecerá la definición de la página.

2. En Processes, click en Create.

3. Seleccionar el tipo de proceso Data Manipulation.