Versions Compared

Key

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

...

Para definir un párametro global se accede con el botón derecho sobre Parámetros Globales a la opción del menú Agregar/Parámetro, para los parámetros locales es idéntico pero el click se hace sobre Parámetros dentro de la definición de un componente. La interfase asociada en ambos casos es la siguiente:
 
Figura 1: Definición de un parámetro
 
Un parámetro está identificado por su nombre y como se puede ver en la Figura 1 además posee una descripción. Un parámetro también cuenta con la posibilidad de asociar un valor por defecto, una función de agregación, y una expresión de post-procesamiento.
El valor por defecto será devuelto por el parámetro cuando no sea posible encontrar un valor.

Función de Agregación

Existen situaciones en las cuales en lugar de contar directamente con el valor en la base de datos se cuenta con una desagregación del valor, es decir, para obtener el valor hay que sumar, promediar, etc. una serie de valores.

En el ejemplo de IPC supongamos que para cada día está registrado el valor del IPC y por tanto la sentencia select IPC_VALUE from IPC where IPC_YEAR = year and IPC_MONTH = month traerá muchos valores. Supongamos por otra parte que lo que deseamos es el promedio del mes correspondiente para utilizar en la fórmula. O sea, que estamos pensando en una sentencia SQL de la forma:

Code Block

select avg(IPC_VALUE) as IPC from IPC where IPC_YEAR = year and IPC_MONTH = month

En este caso es cuando se utiliza la función de agregación. Para el ejemplo planteado, las definiciones realizadas en las Figuras 2 y 3 son idénticas y la única diferencia radica en que en la Figura 1, en el cuadro función de agregación debemos colocar avg

Notar que si colocamos cualquier función de agregación, pero la consulta regresa un registro la operación no tiene efecto (avg, sum, max y min cumplen esta regla).

La función de agregación se ingresa como ya se presentó en la interfase principal de definición del parámetro (Figura 1). Si es necesario también se puede pedir una sugerencia de las funciones de agregación más comunes en una base de datos (Figura 4). Lo que aquí se presenta es sólo en calidad de sugerencia, si se deseara utilizar otra función soportada por la base de datos basta sólo tener presente la SQL que luego se formará con ella (select ..., FUNCION(...) from ...).

Image Removed

Figura 4: Ayuda para la función de agregación 
 

Expresión de Post Procesamiento 

Otra situación común que está contemplada por esta funcionalidad es el post-procesamiento de parámetros. Supongamos que la tabla IPC de la cual se obtienen los valores del parámetro tiene la siguiente información:

IPC_YEAR

IPC_MONTH

IPC_VALUE

 2005

Enero 

1

 2005

Febrero

2

 ...

... 

... 

La columna IPC_VALUE tiene la variación del impuesto registrada en el mes (1% en Enero, 2% en Febrero). En una fórmula como presentada en la introducción (Producción = Producción Anterior x IPC) estos valores no conducen a un resultado esperado. Sería necesario cambiar la fórmula por una expresión:

Code Block

Producción = Producción Anterior x (1 + (IPC / 100))

Esta nueva fórmula convierte el 1% a 1.01 que al ser multiplicado incrementa en un 1%. Se trata de un problema númerico, dado que en lugar de tener el 1.01 en la tabla se tiene el porcentaje.

El cambio en la fórmula si bien soluciona el problema agrega complejidad en su lectura.

La expresión de post-procesamiento ofrece la posibilidad post procesar el valor antes de entregarlo a la fórmula. Puede ser visto como realizar un cambio de variable enfocándolo desde un punto de vista matematico. En nuestro ejemplo imaginemos lo siguiente:

Code Block

IPC = 1 + (IPC / 100)
Code Block

Producción = Producción Anterior x IPC

Si inmediatamente luego de obtener el valor del IPC de la base de datos (1%), dicho valor es transformado para dejarlo de una forma que haga pasible usarlo (1 + (IPC / 100)=1.01) y recién ahí se evalúa la fórmula, entonces el resultado obtenido es correcto. El impacto del cambio necesario sólo implica a la definición del parámetro. Sólo es necesario indicar la expresión de post procesamiento para el parámetro y en definitiva la solución es mejor lograda que con un impacto directo en la fórmula.

La función de post procesamiento se define en la interfase principal de un parámetro. En el lugar determinado en la Figura 1 se puede escribir la fórmula o también se puede definir utilizando el editor de expresiones (Figura 5).

Image Removed

Figura 5: Función de post procesamiento. 

Para finalizar es necesario mencionar que la función de post procesamiento sólo se aplica cuando se obtiene un valor no nulo de la base de datos. Esta función tampoco se aplica al valor por defecto, dado que es razonable que ya se de el valor en forma correcta.

Alcances de un parámetro

Considere la fórmula de producción (Producción = Producción Anterior x IPC). El valor del parámetro IPC en general varía para cada mes del año. Para modelar estos casos, es necesario introducir un concepto a la definición de parámetro que se le llama alcance. Dado que los parámetros en general varian en función del contexto en el cual son utilizados (mes corriente, producto, etc.), es necesario, por un lado, definir en función de que varíaa un parámetro y, por otro lado, en el caso que existiera más de una posibilidad, con que criterio se consideran las distintas posibilidades.

...

Para completar la idea presentada en la introducción, un parámetro alcanza a tomar el valor por defecto (si este fué especificado) cuando ninguno de los alcances definidos para el parámetro retorna un valor que satisfaga. Todo parámetro debe por lo menos tener un alcance para estar bien definido.

Otras características

Un parámetro también cuenta con la posibilidad de asociar un valor por defecto, una función de agregación, y una expresión de post-procesamiento.

Valor por defecto

El valor por defecto será devuelto por el parámetro cuando no sea posible encontrar un valor.

Función de Agregación

Existen situaciones en las cuales en lugar de contar directamente con el valor en la base de datos se cuenta con una desagregación del valor, es decir, para obtener el valor hay que sumar, promediar, etc. una serie de valores.

En el ejemplo de IPC supongamos que para cada día está registrado el valor del IPC y por tanto la sentencia select IPC_VALUE from IPC where IPC_YEAR = year and IPC_MONTH = month traerá muchos valores. Supongamos por otra parte que lo que deseamos es el promedio del mes correspondiente para utilizar en la fórmula. O sea, que estamos pensando en una sentencia SQL de la forma:

Code Block

select avg(IPC_VALUE) as IPC from IPC where IPC_YEAR = year and IPC_MONTH = month

En este caso es cuando se utiliza la función de agregación. Para el ejemplo planteado, las definiciones realizadas en las Figuras 2 y 3 son idénticas y la única diferencia radica en que en la Figura 1, en el cuadro función de agregación debemos colocar avg

Notar que si colocamos cualquier función de agregación, pero la consulta regresa un registro la operación no tiene efecto (avg, sum, max y min cumplen esta regla).

La función de agregación se ingresa como ya se presentó en la interfase principal de definición del parámetro (Figura 1). Si es necesario también se puede pedir una sugerencia de las funciones de agregación más comunes en una base de datos (Figura 4). Lo que aquí se presenta es sólo en calidad de sugerencia, si se deseara utilizar otra función soportada por la base de datos basta sólo tener presente la SQL que luego se formará con ella (select ..., FUNCION(...) from ...).

Image Added

Figura 4: Ayuda para la función de agregación 
 

Expresión de Post Procesamiento 

Otra situación común que está contemplada por esta funcionalidad es el post-procesamiento de parámetros. Supongamos que la tabla IPC de la cual se obtienen los valores del parámetro tiene la siguiente información:

IPC_YEAR

IPC_MONTH

IPC_VALUE

 2005

Enero 

1

 2005

Febrero

2

 ...

... 

... 

La columna IPC_VALUE tiene la variación del impuesto registrada en el mes (1% en Enero, 2% en Febrero). En una fórmula como presentada en la introducción (Producción = Producción Anterior x IPC) estos valores no conducen a un resultado esperado. Sería necesario cambiar la fórmula por una expresión:

Code Block

Producción = Producción Anterior x (1 + (IPC / 100))

Esta nueva fórmula convierte el 1% a 1.01 que al ser multiplicado incrementa en un 1%. Se trata de un problema númerico, dado que en lugar de tener el 1.01 en la tabla se tiene el porcentaje.

El cambio en la fórmula si bien soluciona el problema agrega complejidad en su lectura.

La expresión de post-procesamiento ofrece la posibilidad post procesar el valor antes de entregarlo a la fórmula. Puede ser visto como realizar un cambio de variable enfocándolo desde un punto de vista matematico. En nuestro ejemplo imaginemos lo siguiente:

Code Block

IPC = 1 + (IPC / 100)
Code Block

Producción = Producción Anterior x IPC

Si inmediatamente luego de obtener el valor del IPC de la base de datos (1%), dicho valor es transformado para dejarlo de una forma que haga pasible usarlo (1 + (IPC / 100)=1.01) y recién ahí se evalúa la fórmula, entonces el resultado obtenido es correcto. El impacto del cambio necesario sólo implica a la definición del parámetro. Sólo es necesario indicar la expresión de post procesamiento para el parámetro y en definitiva la solución es mejor lograda que con un impacto directo en la fórmula.

La función de post procesamiento se define en la interfase principal de un parámetro. En el lugar determinado en la Figura 1 se puede escribir la fórmula o también se puede definir utilizando el editor de expresiones (Figura 5).

Image Added

Figura 5: Función de post procesamiento. 

Para finalizar es necesario mencionar que la función de post procesamiento sólo se aplica cuando se obtiene un valor no nulo de la base de datos. Esta función tampoco se aplica al valor por defecto, dado que es razonable que ya se de el valor en forma correcta.