Variables definidas por el usuario
Las variables definidas por el usuario son variables que se definen cuando se escribe una política.
Las palabras reservadas de JavaScript o los objetos de JavaScript y nombres de clase predefinidos no se deben utilizar como nombres de variable en una política de JavaScript.
Puede utilizar cualquier combinación de letras y números como nombres de variable, pero el primer carácter debe comenzar con una letra:
No es necesario que inicialice las variables utilizadas para almacenar valores individuales como, por ejemplo, series o enteros. Para las variables de contexto, se llama a la función NewObject, que devuelve un contexto nuevo. Para las variables de contenedor de sucesos, se llama a NewEvent.
No es necesario que inicialice las variables de miembro en contextos y en contenedores de sucesos.
El ejemplo siguiente muestra cómo se crea y se hace referencia a las variables definidas por el usuario:
MyInteger = 1;
MyFloat = 123.4;
MyBoolean = True;
MyString = "Hello, World!";
MyContext = NewObject();
MyContext.Member = "1";
MyEvent = NewEvent("OMNIbusEventReader");
MyEvent.Summary = "Event Summary";
Log(MyInteger + ", " + MyEvent.Summary);
En el ejemplo de esta sección creará un conjunto de variables y les asignará
valores. Luego utilizará la función Log de dos formas diferentes para
escribir el valor de las variables en el registro de políticas.
La primera forma de utilizar Log es escribir cada valor
como llamada separada a la función. La segunda forma es escribir todas las variables del contexto de política al
mismo tiempo, mediante la función CurrentContext. La función
CurrentContext devuelve una serie de caracteres que contiene
los nombres y valores de todas las variables definidas actualmente en la
política.
VarOne = "One";
VarTwo = 2;
VarThree = 3.0;
VarFour = VarOne + ", " + VarTwo + ", " + VarThree;
Log(VarOne);
Log(VarTwo);
Log(VarThree);
Log(VarFour);
Log(CurrentContext());
Cuando se ejecuta esta política, escribe el mensaje siguiente en el registro de políticas:
One
2
3.0
One, 2, 3.0
"Preparado con parámetros proporcionados por el usuario: "=(
ActionType=1 (Byte),
VarTwo=2 (Long),
ReportsPolicyName=TestVar (String),
EventContainer=(EventReaderName=DefaultEventReader) (EventContainer),
VarFour=One, 2, 3.0 (String),
PolicyName=TestVar (String),
ActionNodeName=TestVar (String),
VarOne=One (String),
VarThree=3.0 (Double))
En este ejemplo, TestVar es el nombre de la política.
No es necesario declarar variables antes de asignar sus valores tal como se hace en lenguajes como C/C++ y Java. Las matrices y variables escalares tales como enteros o series de caracteres se
crean automáticamente la primera vez que les asigna un valor. En cambio, los contextos y contenedores de sucesos se deben crear
explícitamente utilizando las funciones NewObject y
NewEvent, tal como se describe más adelante en esta guía.
Variables vacías
Se considera un buen procedimiento el comprobar que una variable tiene un valor en lugar de asumir que tiene establecido un valor válido. Hay varios momentos durante la ejecución de las políticas cuando una variable puede no estar definida o tener asignado un valor nulo. Para ver si una variable está vacía en las políticas de IPL, añada una comprobación NULL para las variables. En JavaScript, compruebe la condición null y undefined.
A continuación se muestran ejemplos de una buena programación preventiva:
//javascript
if (typeof myVar === 'undefined' || myVar === null) {
myVar = "";
}
//IPL
if (myVar == NULL) {
myVar = "";
}