Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


...

Además

...

de

...

las

...

fuentes

...

de

...

datos

...

de

...

texto,

...

SQL,

...

XML

...

y

...

web

...

services,

...

es

...

posible

...

definir

...

campos

...

virtuales.

...

Los

...

campos

...

virtuales

...

se

...

definen

...

en

...

el

...

Panel

...

de

...

propiedades

...

cuando

...

esta

...

elegido

...

el

...

nodo

...

Fuentes

...

en

...

el

...

Árbol

...

de

...

Diseño.

...

Como

...

su

...

nombre

...

lo

...

indica

...

los

...

campos

...

virtuales

...

pueden

...

ser

...

utilizados

...

en

...

los

...

modelos

...

como

...

cualquier

...

otro

...

campo,

...

aunque

...

no

...

se

...

corresponden

...

con

...

campos

...

físicos

...

de

...

ninguna

...

de

...

las

...

fuentes

...

de

...

datos.

Image Added

Ejemplos de utilización de campos virtuales son:

  • Obtener medidas que no se encuentran en las fuentes
  • Incluir cálculos complejos
  • Crear niveles para las jerarquías y etiquetas para los valores

Los campos virtuales se calculan para todos los registros provenientes de fuentes de datos durante la creación del datamart. Una vez que los cálculos están completos, el campo virtual está disponible y no hay ninguna distinción entre éste y un campo físico.

Estos campos se definen con expresiones que pueden incluir:

  • Campos de las fuentes de datos
  • Campos de las tablas locales
  • Operadores y funciones especificados

Es posible definir los campos virtuales con alguno de los siguientes tipos de datos:

  • Integer
  • Double
  • String
  • Date

(warning) Nota
Es importante tener en cuenta que no es posible usar un campo virtual en la expresión de otro campo virtual.

Los campos virtuales no están relacionados con una fuente de datos específica, pero pueden usarse con todas las fuentes de datos. Esto permite la definición de campos virtuales disponibles para más de una fuente.

Para determinar a cuáles fuentes de datos del modelo se agregarán campos virtuales, la lista completa de campos virtuales se verifica en todas las fuentes durante el proceso de construcción.

La expresión que define cada campo se analiza y si todos los campos a los que se hace referencia están disponibles en la fuente, el campo virtual se agrega a los registros obtenidos.

Si define un campo virtual con una expresión constante, este se agrega a todas las fuentes del modelo.

(warning) Note
Si define un campo virtual,Campo_2 = Campo_1*0.10, luego el Campo_2 se agrega a los registros de todas las fuentes que incluyen un campo Campo_1. Si alguna de las fuentes con Campo_1 ya contiene un campo físico llamado Campo_2, el campo virtual Campo_2 no lo sobrescribe ya que los campos físicos tienen mayor prioridad.

Definiendo Campos Virtuales

Use el comando Agregar en el panel de propiedades de Fuentes para definir un campo virtual.

Para definir un campo virtual:

  1. Seleccionar la rama Fuentes en el Árbol de Diseño. El panel de propiedades se muestra con la página Campos Virtuales.
  2. Presionar el botón Nuevo Campo. Un nuevo campo se inserta al final de la lista de campos virtuales.
  3. Se puede editar el nombre del campo para cambiarlo con doble clic sobre el mismo.
  4. Hacer doble clic en el campo Definición.
  5. Ingresar la expresión que define el campo. Si se desea se puede invocar el dialogo de ayuda para ingresar la expresión por medio del botón Image Added .
  6. Hacer clic en el campo Tipo. Aparece una lista de los tipos disponibles.
  7. Seleccionar un tipo de la lista.

Ejemplos de Uso de Campos Virtuales

Los siguientes son ejemplos de uso de campos virtuales. Representan sólo una muestra de las aplicaciones prácticas de esta funcionalidad.

Ejemplo I

Supongamos una fuente de datos contiene los siguientes campos físicos:

  • VentaBruta
  • Descuento

Es posible definir un campo virtual como

Code Block
VentaNeta = (VentaBruta - Descuento)
{code}

Luego,

...

el

...

campo

...

virtual

...

VentaNeta

...

puede

...

usarse

...

en

...

la

...

definición

...

de

...

una

...

nueva

...

Medida

...

en

...

el

...

modelo.

...

Ejemplo

...

II

...

Supongamos

...

que

...

una

...

fuente

...

de

...

datos

...

contiene

...

registros

...

con

...

la

...

siguiente

...

estructura:

...

(Fecha,

...

Producto,

...

TipoDeCliente,

...

VentaBruta)

...

donde

...

el

...

campo

...

TipoDeCliente

...

toma

...

los

...

siguientes

...

valores:

...

  • Cuentas

...

  • grandes

...

  • Cuentas

...

  • medianas

...

  • Cuentas

...

  • pequeñas

...

Es

...

posible

...

definir

...

un

...

campo

...

virtual

...

que

...

permita

...

al

...

usuario

...

definir

...

una

...

medida

...

llamada

...

Comisión

...

en

...

el

...

modelo:

...

}
Code Block
Comision = (TipoDeCliente == "Cuentas Grandes")
? (VentaBruta * 0.05)
: (VentaBruta * 0.10)
{code}

De

...

esta

...

forma

...

creamos

...

un

...

campo

...

que

...

asigna

...

una

...

comisión

...

de

...

5%

...

para

...

los

...

clientes

...

catalogados

...

como

...

"Cuentas

...

Grandes"

...

y

...

una

...

comisión

...

de

...

10%

...

para

...

el

...

resto

...

de

...

los

...

clientes.

...

Ejemplo

...

III

...

Los

...

dos

...

ejemplos

...

previos

...

están

...

orientados

...

hacia

...

los

...

cálculos

...

de

...

campos

...

virtuales

...

para

...

usar

...

en

...

la

...

definición

...

de

...

Medidas

...

en

...

el

...

modelo.

...

También

...

se

...

pueden

...

definir

...

campos

...

virtuales

...

que

...

se

...

usen

...

posteriormente

...

en

...

la

...

construcción

...

de

...

dimensiones.

...

La

...

dimensión

...

Fecha

...

incluida

...

en

...

el

...

O3

...

Designer

...

permite

...

la

...

generación

...

de

...

jerarquías

...

de

...

tipo

...

Año,

...

Trimestre,

...

Mes,

...

Semana

...

y

...

Día.

...

A

...

continuación

...

se

...

describe

...

la

...

capacidad

...

de

...

definir

...

jerarquías

...

para

...

las

...

fechas

...

que

...

manejan

...

otros

...

tipos

...

de

...

jerarquías

...

usando

...

campos

...

virtuales.

...

Supongamos

...

que

...

una

...

fuente

...

de

...

datos

...

contiene

...

registros

...

con

...

la

...

siguiente

...

estructura:

...

(Fecha,

...

Producto,

...

TipoDeCliente,

...

Cantidad)

...

donde

...

el

...

campo

...

TipoDeCliente

...

toma

...

los

...

siguientes

...

valores:

...

  • Cuentas

...

  • grandes

...

  • Cuentas

...

  • medianas

...

  • Cuentas

...

  • pequeñas

...

Es

...

posible

...

definir

...

los

...

siguientes

...

campos

...

virtuales

...

}
Code Block
Año = Año(Fecha)
Mes = NombreDelMes(Fecha)
{code}

Luego

...

se

...

puede

...

crear

...

una

...

dimensión

...

"Meses"

...

con

...

la

...

siguiente

...

jerarquía:

...

  • Mes
  • Año

Donde a cada uno de estos niveles se les definiría como clave los campos "Mes" y "Año" respectivamente.

Notar como el orden de los niveles es exactamente el opuesto al que se definiría para dimensiones de tipo Fecha.

De esta forma es posible comparar las cantidades vendidas por mes en los diferentes años. Esto no es posible con las dimensiones de tipo Fecha.

Ejemplo IV

También es posible usar los campos virtuales como un mecanismo para crear etiquetas de más de un campo básico para el usuario final del O3 Browser.

Supongamos que una fuente de datos contiene registros con la siguiente estructura:

(Fecha, CodProducto, EtiquetaProducto, Cliente, Cantidad)

Es posible definir una descripción para el producto que incluya su código y una etiqueta con un campo virtual como:

Code Block
ProductoDesc = Concatenar(CodProducto, " - ", EtiquetaProducto)
{code}

h4. Ejemplo V

Otro ejemplo típico de uso de campos virtuales es para generar etiquetas que no están almacenadas en ninguna fuente de datos.

Supongamos que existe una fuente que define el campo "Género" que puede tomar los valores "F" o "M" para el caso femenino y masculino respectivamente.

Si se generara un datamart directamente sobre este campo, los elementos de la dimensión "Género" serían F y M. Para lograr un cubo más amigable sería preferible mostrar las etiquetas "Femenino" y "Masculino" respectivamente.

Esto es posible creando el siguiente campo virtual
{code}

Ejemplo V

Otro ejemplo típico de uso de campos virtuales es para generar etiquetas que no están almacenadas en ninguna fuente de datos.

Supongamos que existe una fuente que define el campo "Género" que puede tomar los valores "F" o "M" para el caso femenino y masculino respectivamente.

Si se generara un datamart directamente sobre este campo, los elementos de la dimensión "Género" serían F y M. Para lograr un cubo más amigable sería preferible mostrar las etiquetas "Femenino" y "Masculino" respectivamente.

Esto es posible creando el siguiente campo virtual

Code Block
GeneroDesc = (Genero == "M") ? "Masculino" : "Femenino"
{code}

----
{scrollbar}
{children}

...

Child pages (Children Display)