Zmienne zdefiniowane przez użytkownika
Zmienne zdefiniowane przez użytkownika to zmienne, które są definiowane w momencie pisania strategii.
Nie można używać żadnego z zarezerwowanych słów JavaScript ani nazw predefiniowanych obiektów i klas JavaScript jako nazw zmiennych w strategii JavaScript.
W nazwach zmiennych można używać dowolnych kombinacji liter i liczb, o ile pierwszy znak jest literą:
Nie trzeba inicjować zmiennych służących do przechowywania pojedynczych
wartości, takich jak łańcuchy czy liczby całkowite. W przypadku zmiennych
kontekstowych wywoływana jest funkcja NewObject, która zwraca
nowy kontekst. W przypadku zmiennych kontenera zdarzeń wywoływana jest
funkcja NewEvent.
Nie trzeba inicjować zmiennych składowych w kontekstach i kontenerach zdarzeń.
Poniższy przykład przedstawia sposób tworzenia zmiennych zdefiniowanych przez użytkownika i odwoływania się do nich:
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);
W przykładzie w tej sekcji tworzony jest zbiór zmiennych i zostają
przypisane do nich wartości. Następnie za pomocą funkcji Log
użytej na dwa różne sposoby wartości zmiennych zostają zapisane w dzienniku
strategii.
Pierwszy sposób użycia funkcji Log to przekazanie każdej
wartości w oddzielnym wywołaniu funkcji. Drugą metodą jest jednorazowe
zapisanie zmiennych w kontekście strategii za pomocą funkcji
CurrentContext. Funkcja CurrentContext zwraca
łańcuch, który zawiera nazwy i wartości wszystkich zmiennych obecnie
zdefiniowanych w strategii.
VarOne = "Jeden";
VarTwo = 2;
VarThree = 3.0;
VarFour = VarOne + ", " + VarTwo + ", " + VarThree;
Log(VarOne);
Log(VarTwo);
Log(VarThree);
Log(VarFour);
Log(CurrentContext());
Po uruchomieniu strategii umieści ona w dzienniku strategii następujący komunikat:
Jeden
2
3.0
Jeden, 2, 3.0
Przygotowano z parametrami podanymi przez użytkownika "=(
TypDziałania=1 (Byte),
VarTwo=2 (Long),
NazwaStrategiiRaportów=TestVar (String),
EventContainer=(EventReaderName=DefaultEventReader) (EventContainer),
VarFour=Jeden, 2, 3.0 (String),
NazwaStrategii=TestVar (String),
ActionNodeName=TestVar (String),
VarOne=Jeden (String),
VarThree=3.0 (Double))
W tym przykładzie nazwą strategii jest TestVar.
Nie trzeba deklarować zmiennych przed przypisaniem im wartości, tak jak to jest wymagane w językach typu C/C++ i Java. Tablice i zmienne skalarne, takie jak liczby całkowite lub łańcuchy, są
tworzone automatycznie przy pierwszym przypisaniu do nich wartości. Konteksty i
kontenery zdarzeń należy utworzyć jawnie za pomocą funkcji
NewObject i NewEvent, jak opisano dalej w tym
podręczniku.
Puste zmienne
Zalecane jest sprawdzanie, czy zmienna ma wartość (nie należy zakładać, że zmienna ma zawsze poprawną wartość). Podczas
wykonywania strategii zmienna może nie być zdefiniowana albo mieć wartość null. Aby sprawdzić, czy zmienna w strategii IPL jest pusta, należy dodać sprawdzanie
wartości NULL. W języku JavaScript należy sprawdzać wartości null oraz undefined.
Poniżej podano przykład dobrego programowania:
//javascript
if (typeof zmienna === 'undefined' || zmienna === null) {
zmienna = "";
}
//IPL
if (zmienna == NULL) {
zmienna = "";
}