9
Página 1 5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected] Newsletter Junio 2014 5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 Email.[email protected] ADF: Totalizar Columnas en Una Tabla Por Ing. Jonathan Morales [email protected] Un requerimiento muy común en aplicaciones que despliegan tablas con datos numéricos es mostrar la sumatoria de los valores de una columna, para representar el “TOTAL”. En el caso de aplicaciones ADF que utilizan Business Components (BC) para representar el modelo de datos, los View Objects que contienen la estructura de la tabla que luego es mostrada en la aplicación como una tabla. En otras ocasiones, debido a que estos datos pueden ser dinámicos (agregar o eliminar registros a la tabla) es importante poder mostrar la suma de alguna columna. Para lograr lo anterior con ADF y debido a que los datos de la tabla provienen de un View Object, se hace uso de un atributo que llevará la suma de los valores de la columna con ayuda de una expresión Groovy, tal como se muestra a continuación. Procedimiento 2. Seleccionar el View Object (1) del cual se obtienen los datos, ir a la opción de atributos y agregar un atributo nuevo (2). Por ser un atributo de sumatoria, el tipo recomendable es BigDecimal. Contenido Página: 1 ADF: Totalizar Columnas en Una Tabla 5 Nuevas Características de Oracle Forms 11gR2 8 ADRCI: Limpieza de Directorios de Diagnóstico Editores Generales Francisco Barrundia Alejandro Lau Débora Morán Autores Contribuyentes Jonathan Morales Marlon Pérez Francisco Barrundia

ADF: Totalizar Columnas en Una Tabla - Boletín Datumnewsletter.datum.com.gt/wp-content/uploads/2014/06/Newsletter... · Oracle Forms 11gR2 8 ADRCI: Limpieza de ... Eventos en Pluggable

  • Upload
    vutruc

  • View
    217

  • Download
    3

Embed Size (px)

Citation preview

Página 1

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Newsletter Junio 2014

5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12

Teléfono: (502)2364-5300Fax: (502)2364-5311

[email protected] Pagina 1/10

ADF: Totalizar Columnas en Una Tabla

Por Ing. Jonathan Morales

[email protected]

Un requerimiento muy común en aplicaciones que despliegan tablas con datos numéricos es mostrar la sumatoria de los valores de una columna, para representar el “TOTAL”. En el caso de aplicaciones ADF que utilizan Business Components (BC) para representar el modelo de datos, los View Objects que contienen la estructura de la tabla que luego es mostrada en la aplicación como una tabla. En otras ocasiones, debido a que estos datos pueden ser dinámicos (agregar o eliminar registros a la tabla) es importante poder mostrar la suma de alguna columna.

Para lograr lo anterior con ADF y debido a que los datos de la tabla provienen de un View Object, se hace uso de un atributo que llevará la suma de los valores de la columna con ayuda de una expresión Groovy, tal como se muestra a continuación.

Procedimiento

2. Seleccionar el View Object (1) del cual se obtienen los datos, ir a la opción de

atributos y agregar un atributo nuevo (2). Por ser un atributo de sumatoria, el

tipo recomendable es BigDecimal.

Contenido

Página:

1 ADF: Totalizar Columnas

en Una Tabla

5 Nuevas Características de

Oracle Forms 11gR2

8 ADRCI: Limpieza de

Directorios de Diagnóstico

Editores Generales

Francisco Barrundia

Alejandro Lau

Débora Morán

Autores

Contribuyentes

Jonathan Morales

Marlon Pérez

Francisco Barrundia

Página 2

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

2. Siempre en el View Object, seleccionar la categoría de View Accessors (1), luego en el botón

"New" (2). En la ventana que se despliega, seleccionar el View Object que se está trabajando

y pasarlo a la derecha con el botón ">" (3).

3. Indicar Expression en el valor del atributo nuevo y luego agregar:

EmployeesView1.sum("Salary")

4. En la página donde está la tabla con los datos del View Object, seleccionar la columna que se

quiere totalizar (1), hacer click derecho y en el menú contextual elegir la opción Facets –

column (2) y luego la opción Footer (3).

Página 3

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

5. Una vez agregado el footer a la columna que se desea totalizar, se arrastra el atributo que se

creó (TotalSal para este caso) desde Data Controls hacia facet. Esto hará que se despliegue

una ventana donde se elige que se creará un Text y luego ADF Output Text.

Página 4

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

6. Debe crearse un binding para el atributo y poderse referenciar desde el footer. Para ello en la

pestaña de bindings, se crea un nuevo AttributeBinding, seleccionando como Data Source el

que corresponde al View Object y a continuación el atributo de la lista de valores.

7. Agregar la referencia del binding anterior a la propiedad Value del Output Text que se colocó

en el footer, donde se mostrará el valor totalizado.

8. Al ejecutar la aplicación, en la página mostrará la tabla y en la columna elegida aparecerá la

suma de los valores, tal como se muestra a continuación.

Página 5

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Nuevas Características de Oracle Forms 11gR2

Por Ing. Marlon Pérez

[email protected]

Oracle Forms es parte de Oracle Fusion Middleware y es una de las tecnologías de Oracle con mayor madurez en el mercado. Permite diseñar y construir aplicaciones empresariales de una manera rápida y eficiente, ofreciendo acceso a través de la Web. Entre las características ya conocidas se encuentran las siguientes:

Diseñado para soportar alta transaccionalidad

Desarrollo RAD (Drag-and-Drop, paleta de propiedades, asistentes)

Desarrollo PL/SQL

Integración con Java (PJC y Webservices)

Administración sencilla de aplicaciones (publicación, configuraciones, etc.)

Applet de java para desplegar la aplicación en el cliente Ahora bien, con la versión 11gR2 podemos hacer uso de nuevas características, las cuales incluyen: Eventos Externos Se refiere a la posibilidad de comunicarse con Oracle Forms desde un módulo externo de forma asincrónica, por ejemplo utilizando Advanced Queuing, JMS o BPEL. En la forma se programa el evento WHEN-EVENT-RAISED y este se suscribe a una cola de mensajes. Cuando el módulo externo deposita un mensaje en la cola, este evento se dispara y se puede ejecutar alguna acción en la forma, como actualizar un bloque.

Página 6

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

JavaScript

En Oracle Forms ahora se puede invocar código JavaScript que resida en la misma página del applet. La operación inversa también es posible. Para esto se utilizan las operaciones Web.Javascript_Eval_Expr o Web.Javascript_Eval_Function, que permiten invocar funciones JavaScript en la página HTML. Una forma en la que podemos utilizar esta característica es compartiendo información entre la página HTML y el applet. Por ejemplo, crear un formulario HTML y cuando el usuario presione un botón, la información es desplegada en la forma.

Soporte para Proxy User

Permite que los clientes se conecten a la base de datos desde el servidor de aplicaciones con un usuario proxy. Un usuario proxy es un usuario con un solo privilegio (create session), que se puede conectar utilizando los permisos de otro usuario. Este tipo de usuarios solo se pueden conectar desde la aplicación (no desde SQL*Plus u otra herramienta). Para utilizar esta característica es necesario configurar SSO/OID y tener Oracle Forms en modo protegido. Veamos un ejemplo de cómo se conecta un proxy user:

connect midtier[scott]/midtierPW@databaseTnsName En este caso el usuario scott se conecta con privilegios del usuario midtier.

Enterprise Manager y Grid Control

Ahora es posible saber qué operación está ejecutando un usuario conectado a la base de datos desde una forma. También es posible ver el consumo de los recursos (CPU, RAM, tiempo de conexión).

Página 7

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Eventos en Pluggable Java Components

Ahora es posible despachar eventos del servidor de Forms en el código PJC.

Mejoramiento del rastreo de Forms

Oracle Forms ahora agrega en los archivos de bitácora, los nombres de funciones y procedimientos PL/SQL, tipos y valores de parámetros utilizados desde la sesión.

JVM integrada con Oracle Reports

Anteriormente, cuando se invocaba a Oracle Reports desde Oracle Forms se instanciaba una nueva JVM. Ahora se utiliza la misma JVM de la sesión de Forms para correr reportes, lo que permite reducir el consumo de recursos (CPU, Memoria).

Pre-instanciar procesos de Forms

Cada vez que un usuario inicia una sesión de Oracle Forms, ocurre más o menos el siguiente proceso:

La solicitud llega al servicio de Oracle Forms en el servidor.

El servidor inicia un proceso dedicado para el usuario.

El servicio dedicado busca en el disco la forma que el usuario quiere visualizar.

La forma es leída del disco e instanciada en la memoria del proceso dedicado.

La forma se despacha al cliente y es visualizada en el explorador.

El proceso dedicado mantiene comunicación con el proceso usuario para atender todas las solicitudes.

Este proceso puede consumir mucho tiempo y hacer que el usuario considere lento el arranque de la forma. Un administrador puede definir una ventana de tiempo en la cual se instancien varios procesos de Oracle Forms de forma anticipada. Cuando el usuario se conecta, la respuesta es más rápida y el inicio de sesión se reduce considerablemente.

Página 8

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

ADRCI: Limpieza de directorios de diagnóstico

Por Lic. Francisco Barrundia

[email protected]

En versiones anteriores a la 11gR2, los archivos de trace que solíamos encontrar en los directorios

udump, cdump, dbdump debían depurarse manualmente. En Oracle 11gR2 se puede seguir

haciendo esta limpieza manual, aunque es mejor realizarla con la herramienta que nos proporciona

ADRCI.

Los archivos de rastreo, por defecto se encuentran ahora en $ORACLE_BASE/diag/.

Sigue existiendo un alert.log que registra los errores de base de datos.

Los archivos de alerta ahora tienen formato XML.

Ejemplo:

$ORACLE_BASE/diag/rdbms/orcl/orcl/alert/log.xml

Tenemos la herramienta adrci con la que podemos ver y gestionar estos archivos.

Ejemplo

adrci> show alert -tail

Uno de los problemas que siempre se nos plantea es el mantenimiento de los logs. Es por ello que

nos vamos a centrar en la opción PURGE de ADRCI.

Con el usuario oracle de nuestra máquina ejecutamos el comando adrci.

[ora11g@prueba ~]$ adrci

ADRCI: Release 11.2.0.1.0 - Production on Mon Apr 7 10:54:51 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

ADR base = "/oracle11g"

adrci>

Para ver las opciones que nos ofrece PURGE, escribimos en la línea de comandos adrci "help

purge".

adrci> help purge

Usage: PURGE [[-i <id1> | <id1> <id2>] |

[-age <mins> [-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]]]:

Purpose: Purge the diagnostic data in the current ADR home. If no

option is specified, the default purging policy will be used.

Options:

[-i id1 | id1 id2]: Users can input a single incident ID, or a

range of incidents to purge.

[-age <mins>]: Users can specify the purging policy either to all

the diagnostic data or the specified type. The data older than <mins>

ago will be purged

[-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]: Users can specify what type of

data to be purged.

Examples:

purge

Página 9

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311

[email protected]

Tip Técnico del Mes

Consulta Oracle SQL sobre la vista que muestra conexiones actuales a la base de datos. Para visualizarla es necesario tener privilegios de administrador. select osuser, username, machine, program

from v$session

order by osuser;

Por Lic. Francisco Barrundia [email protected]

purge -i 123 456

purge -age 60 -type incident

Antes de lanzar el comando PURGE, debemos especificar el home donde residen los archivos de

rastreo. Esto lo hacemos con un comando "set home". Cuando escribimos el comando adrci nos

muestra el ADR base.

[ora11g@sella ~]$ adrci

ADRCI: Release 11.2.0.1.0 - Production on Mon Apr 7 11:02:00 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

ADR base = "/oracle11g"

adrci> set home diag/rdbms/dba11g/dba11g/

adrci>

Como vemos, establecemos la ruta a partir de la base que ya está definida.

Una vez establecido el ADR home, podemos lanzar el comando PURGE.

Veamos algunos ejemplos.

Para limpiar todos los archivos de rastreo de más de 24 horas de antigüedad (1440 minutos).

adrci> purge -age 1440

Nota: incluye los core files: cdmp*.

Limpieza de core files mayores a 6 días.

adrci> purge -age 8640 -type CDUMP

Puede que para limpiar completamente sea necesario lanzar el siguiente comando.

adrci> purge -age 8640 -type UTSCDMP

Para limpiar las alertas (archivos xml) de más de una hora de antigüedad.

adrci> purge -age 60 -type ALERT