Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Unknown macro: {scrollbar}

HowTo sobre Fórmulas y Variables

Variables y Parámetros

En ocasiones es conveniente que una variable de un componente tome el valor directamente de un parámetro, por ejemplo, porque el se quiere presentar el mismo en el modelo multidimensional (cubo).

Efectivamente se puede poner una variable con el mismo nombre que un parametro o dependencia de componente. La estrategia de resolución que se utiliza cuando los nombres son iguales, se describe a continuación.

En primer lugar, en el contexto de evaluación de expresiones se cuenta con los siguientes nombres:

  1. Nombres de variables agregadas por la simulación:
    • sceneId: Es el escenario corriente.
    • time: Es la fecha en la cual se esta calculando.
    • year: Es un sinónimo de la expresión Año(time). Su alteración no cambia el tiempo de simulación (time).
    • month: Es un sinónimo de la expresión Mes(time). Su alteración no cambia el tiempo de simulación (time).
    • day: Es un sinónimo de la expresión Día(time). Su alteración no cambia el tiempo de simulación (time).
  2. Nombres de variables introducidas por el componente, de las cuáles podemos distinguir 2 tipos a los efectos de la presente explicación:
    • Elementos: se refiere a los nombres de los atributos de los elementos.
    • Nombres de variables del componente.
  3. Nombres de variables introducidas por dependencias de componentes.
  4. Nombres de parámetros locales y globales.

Considerando lo anterior, en la evaluación de una expresión cualquiera el orden de resolución de los nombres, es el siguiente:

  1. Se busca el nombre como variable definida en la expresión. Ej: x=10.
  2. Se considera cualquiera de las variables introducidas por el simulador que se comentaron anteriormente (sceneId, time, ....), los elementos y las variables introducidas por el componente (éstas deben tener nombres distintos).
  3. Se trata de resolver la variable como nombre de parámetro o variable introducida por dependencia de componente (éstas deben tener nombres distintos).
  4. Si no se encuentra valor para el nombre en estas condiciones se obtiene NULO.

Notas

  • El orden de declaración de las variables en el componente es relevante porque se calculan precisamente en ese orden.
  • Cualquiera de los nombres que contengan espacio debe ser utilizado con la función correspondiente (Parameter o Variable).
    • La función Parameter obtiene el valor del parámetro con el nombre indicado. Tomar en cuenta que el nombre es un string. La función Parameter además tiene la capacidad de sobreescribir el contexto con el que se busca el parámetro. Esta sobre-escritura es exclusivamente realizada en el momento de invocación.
    • La función Variable obtiene el valor de la variable con el nombre indicado. El nombre también es un string. Las variables introducidas por dependencia de componente deben manejarse como si fueran parámetros (usar función Parameter).

Resultados de superposiciones de nombre

  • En el caso que las variables introducidas por los elementos colisionen con las introducidas por las variables del componente, la evaluación tomará los elementos.
  • En el caso que los elementos o las variables sobreescriban las definidas por el simulador (por ejemplo declarar una variable month), la evaluación tomará la variable declarada.
  • En el caso que se declaren 2 parámetros con el mismo nombre, la evaluación tomará el primero definido. En el caso que se redefina un parámetro local que sobreescriba el global, la evaluación tomará la definición del local.
  • En el caso que se definan dos variables obtenidas por dependencia de componente con el mismo nombre, la evaluación tomará la primera.
  • En el caso que se declaren parámetros y variables de componentes con el mismo nombre, la evaluación tomará el parámetro.

Los datos obtenidos por dependencia de componentes son equivalentes a los obtenidos por parámetros, es decir, que al resolver una ambigüedad se lo debe considerar como un parámetro (ej: función Parameter).

Ejemplos

Ejemplo 1

Queremos una variable Cantidad llamada igual que un parámetro Cantidad.

Solución: Declarar la variable Cantidad y en la fórmula poner: Parameter("Cantidad")

Ejemplo 2

Queremos una variable Cantidad llamada igual que una variable obtenida de un componente y está también se llama Cantidad (recordar que se le puede dar cualquier nombre a la variable cuando se declara la dependencia de componente).

Solución: Declarar la variable Cantidad y en la formula poner: Parametro("Cantidad")

Ejemplo 3

Si queremos una variable Cantidad que tenga el valor de un parámetro Cantidad y además hay una variable obtenida de otro componente que también se llama Cantidad.

Solución: Ponerle otro nombre a la variable que se trae del componente. Recordar que se le puede dar cualquier nombre a la variable cuando se declara la dependencia de componente.

Unknown macro: {scrollbar}
  • No labels