Saltar al contenido

Variables Locales

Introducción

Las variables locales en Harmony son el tipo de variable que tiene un alcance más limitado. Se declaran dentro de un secuencia de comandos y sólo se puede acceder a ellos dentro de ese secuencia de comandos. Por este motivo, debe utilizar una variable local sólo si la variable se necesita temporalmente en el secuencia de comandos actual.

Precaución

No utilice una variable local si desea que la variable persista para su uso en otras partes del proyecto. Para usar fuera del secuencia de comandos actual, use una variable global o variable del proyecto.

Crear una Variable Local

Debido a que una variable local no puede tener un valor antes de definirse, debe definirla antes de usarla.

En el sistema una variable local se reconoce por la ausencia del signo del dólar $ que normalmente precede al nombre de una variable global. Porque el $ está ausente, una variable local no se "ve" globalmente. Si bien una variable global se puede usar para pasar un valor entre diferentes secuencias de comandos, la variable local deja de ser visible para el sistema después de la ejecución del secuencia de comandos que la usa.

Para configurar y utilizar una variable local, simplemente omita el $. Una variable local no se puede configurar ni recuperar con Set y Get funciones.

Nombres de Variables Locales

Los nombres de las variables locales se pueden componer a partir de estos caracteres: letras (a-z, A-Z), números (0-9) y guiones bajos. Otros caracteres, como puntos o guiones, no están permitidos y pueden causar problemas.

Ejemplos

En este ejemplo, now es una variable local y sólo está disponible en este secuencia de comandos (es decir, antes de la terminación </trans> etiqueta). A diferencia de, $tomorrow es una variable global que está disponible hasta el final de la cadena de operación actual:

<trans>
now = Now();
WriteToOperationLog("The time is " + now);
$tomorrow = now + 60*60*24;
</trans>

Debido a que el alcance de las variables locales está dentro del secuencia de comandos, el nombre de la variable puede ser simple. Por ejemplo, las variables locales pueden denominarse now, return, myVariable, etc.

Este ejemplo recupera el valor de un nodo y, si ese valor es nulo, lo establece en la cadena "Not Set"y luego devuelve el valor:

<trans>
value = root$transaction.request$body$Calculate$input.Operand1$;
if(IsNull(value),
    value = "Not Set"
  );
value
</trans>

Este ejemplo recupera el valor de tres nodos, suma el mayor de los dos primeros valores al tercer valor y luego devuelve el tercer valor:

<trans>
value1 = root$transaction.request$body$Calculate$input.Operand1$;
value2 = root$transaction.request$body$Calculate$input.Operand2$;
value3 = root$transaction.request$body$Calculate$input.Operand3$;

if(value1 > value2,
    value3 += value1
 , //else
    value3 += value2
  );
value3
</trans>