@Variables
Declara variables dentro de un ámbito nombrado: global (visibles en todo el archivo) o el nombre de un Procedure/Function declarado en @Source (visibles sólo dentro de ese procedimiento/función, además de las global).
@Variables {
global {
Usuario char(10)
Fecha date
Saldo number(9,2)
}
Procedimiento {
contador number(3)
}
Saluda {
nombre char(10)
}
}
Una línea Nombre tipo(...) por variable — mismo formato que @Fields, pero con más tipos disponibles (ver Tipos de dato): char, varchar, number, date, field(Campo), list(tipo), matrix(filas, cols, tipo), struct(NombreTemplate).
Struct: definición de template inline
Dentro del ámbito global (sólo ahí) también se puede definir un template de struct con struct Nombre [ ... ], antes o después de instanciarlo con struct(Nombre) — ver Tipos de dato: Struct para la sintaxis completa y sus límites.
Modificador
Sólo Description("texto") está disponible en @Variables (a diferencia de @Fields, no admite Default/AllowNull):
@Variables {
global {
NroSolicitud field(ADHOJA50) Description("Número de Solicitud")
}
}
Límites de longitud/precisión (variable standalone, distinto de un campo de tabla)
| Tipo | Límite en @Fields | Límite en @Variables |
|---|---|---|
char | 1–32.766 | 1–16.773.104 |
varchar | no válido en @Fields | 1–16.773.100 |
number (precisión) | 1–30 | 1–63 |
Estos límites mayores en @Variables reflejan que una variable declarada ahí no está atada a un archivo físico DDS como sí lo está un campo de @Fields.