Finalidad
El apartado DEFINE define nombres de variables en la parte de declaración de la macro y puede ser una sentencia o un bloque.
La definición de variable puede estar en una única línea, utilizando comillas dobles (""), o puede abarcar múltiples líneas, utilizando corchetes y un signo de porcentaje ({ %}). Después de que se defina la variable, puede hacer referencia a la misma en cualquier parte de la macro.
Sintaxis
>>-%DEFINE----+----------------------------+--------------------> | (1) | '-(--+-STATIC---------+---)--' | (1) | '-TRANSIENT------' >-----+-| entrada define |------------------------+------------>< '-{--+------------------------------+---%}--' | .------------------------. | | V | | '----+-entrada define----+--+--' '-sentencia include-' entrada define .------------------------------. V | |---+-nombre de variable--=--+-"-----+------------------------+--+---"---+-+-> | | +-serie------------------+ | | | | +-referencia de variable-+ | | | | '-llamada de función-----' | | | | .------------------------------. | | | | V | | | | +-{-----+------------------------+--+---%}--+ | | | +-serie------------------+ | | | | +-referencia de variable-+ | | | | +-llamada de función-----+ | | | | '-nueva_línea------------' | | | +-sentencia exec----------------------------+ | | +-sentencia table---------------------------+ | | +-sentencia envvar--------------------------+ | | +-| variable condicional |------------------+ | | '-| variable condicional abreviada |--------' | '-sentencia list-------------------------------------------------------' >---------------------------------------------------------------| variable condicional |---nombre de variable---?--------------------------------------> .------------------------------. V | >-----+-"-----+------------------------+--+---"---+-------------> | +-serie------------------+ | | +-referencia de variable-+ | | '-llamada de función-----' | | .------------------------------. | | V | | '-{-----+------------------------+--+---%}--' +-serie------------------+ +-referencia de variable-+ '-llamada de función-----' .------------------------------. V | >-------:--+-"-----+------------------------+--+---"---+--------| | +-serie------------------+ | | +-referencia de variable-+ | | '-llamada de función-----' | | .------------------------------. | | V | | '-{-----+------------------------+--+---%}--' +-serie------------------+ +-referencia de variable-+ '-llamada de función-----' variable condicional abreviada .------------------------------. V | |---?----+-"-----+------------------------+--+---"---+----------| | +-serie------------------+ | | +-referencia de variable-+ | | '-llamada de función-----' | | .------------------------------. | | V | | '-{-----+------------------------+--+---%}--' +-serie------------------+ +-referencia de variable-+ '-llamada de función-----'
Notas:
Valores
Contexto
La sentencia o bloque DEFINE debe estar en un bloque IF o fuera de todos los demás bloques en la parte de declaración de la macro Net.Data.
Restricciones
%DEFINE var = "The value is $(var)."
Ejemplos
Ejemplo 1: Definiciones de variable sencillas
%DEFINE var1 = "orders" %DEFINE var2 = "$(var1).html"
Durante el tiempo de ejecución, la referencia de variables $(var2) se evalúa como orders.html.
Ejemplo 2: Comillas dentro de una serie
%DEFINE hi = "say ""hello""" %DEFINE empty = ""
Cuando se visualiza, la variable hi tiene el valor say "hello". La variable empty contiene la serie vacía.
Ejemplo 3: Definición de múltiples variables
%DEFINE{ DATABASE = "testdb" home = "http://www.ibm.com/software" SHOWSQL = "YES" PI = "3.14150" %}
Ejemplo 4: Definición de líneas múltiples de una variable
%DEFINE text = {This variable definition spans two lines %}
Ejemplo 5: Este ejemplo de una variable condicional muestra cómo la variable var adopta el valor resultante dentro de los signos de comillas ("") en el caso de que el valor resultante no contenga ningún valor NULL.
%DEFINE var = ? "Hello! $(V)@MyFunc()" %}