Tableau
Le tableau est un type de données natif que vous pouvez utiliser pour stocker des ensembles de valeurs liées.
Un tableau dans Netcool/Impact représente un ensemble de données hétérogène, ce qui signifie qu'il peut stocker des éléments de toute combinaison de types de données, y compris d'autres tableaux et contextes. Les données d'un tableau sont toutefois stockées en tant qu'éléments sans nom et non pas comme variables de membre.
En langage IPL, pour affecter des valeurs aux tableaux, utilisez des accolades. Cette notation nécessite que vous placiez une liste séparée par des virgules entre accolades. Les valeurs peuvent être indiquées en tant que littéraux ou variables dont vous avez précédemment défini les valeurs dans la règle :
arrayname =
{element1, element2, elementn}0.En JavaScript, utilisez la notation avec crochets pour affecter une série de littéraux numériques, de type chaîne ou booléens séparés par une virgule :
arrayname = [element1, element2, elementn]Vous référencez les éléments de tableau en recourant à la notation avec crochets. Cette notation nécessite d'indiquer le nom du tableau suivi du numéro d'index de l'élément indiqué entre crochets. Utilisez la syntaxe suivante pour accéder aux éléments d'un tableau unidimensionnel ou multidimensionnel :
arrayname[element index]arrayname[first dimension element index][second dimension element index]Exemples
Voici un exemple de tableau unidimensionnel en IPL :
MyArray = {"Salut à tous !", 12345};
Log(MyArray[0] + ", " + MyArray[1]);Voici un exemple de tableau unidimensionnel en JavaScript :
MyArray = ["Hello, World!", 12345];
Log(MyArray[0] + ", " + MyArray[1]);Il consigne le texte suivant dans le journal de la règle :
Hello.World!, 12345Voici un exemple de tableau à deux dimensions en IPL:
MyArray = {{"Hello, World!", 12345}, {"xyz", 78, 7, "etc"}};
Log(MyArray[0][0] + "." + MyArray[1][0]);Voici un exemple de tableau à deux dimensions en JavaScript:
MyArray = [["Hello, World!", 12345], ["xyz", 78, 7, "etc"]];
Log(MyArray[0][0] + "." + MyArray[1][0]);Il consigne le texte suivant dans le journal de la règle :
Hello,World!.xyzCet exemple de règle en IPL utilise le même tableau à deux dimensions et consigne l'étiquette et la valeur d'un élément dans le journal de l'analyseur de syntaxe :
MyArray = {{"Hello, World!", 12345}, {"xyz", 78, 7, "etc"}};
log("MyArray is " + MyArray);
log("MyArray Length is " + length(MyArray));
ArrayA = MyArray[0];
log("ArrayA is " + ArrayA + " Length is " + length(ArrayA));
i = 0;
While(i < length(ArrayA)) {
log("ArrayA["+i+"] = " + ArrayA[i]);
i = i + 1;
}
ArrayB = MyArray[1];
log("ArrayB is " + ArrayB + " Length is " + length(ArrayB));
i = 0;
While(i < length(ArrayB)) {
log("ArrayB["+i+"] = " + ArrayB[i]);
i = i + 1;
}Cet exemple de règle en JavaScript utilise le même tableau à deux dimensions et consigne l'étiquette et la valeur d'un élément dans le journal de l'analyseur de syntaxe :
MyArray is [["Hello, World!", 12345], ["xyz", 78, 7, "etc"]]
MyArray Length is 2
ArrayA is ["Hello, World!", 12345] Length is 2
ArrayA[0] = Hello, World!
ArrayA[1] = 12345
ArrayB is ["xyz", 78, 7, "etc"] Length is 4
ArrayB[0] = xyz
ArrayB[1] = 78
ArrayB[2] = 7
ArrayB[3] = etcVoici la sortie du journal de l'analyseur de syntaxe :
ArrayA[0] = Hello World!
ArrayA[1] = 12345Dans la règle suivante, affectez un ensemble de valeurs aux tableaux, puis imprimez les valeurs dans le journal de règle.
Array1 = {"One", "Two", "Three", "Four",
"Five"};
Array2 = {1, 2, 3, 4, 5};
Array3 = {"One", 2, "Three", 4, "Five"};
String1 = "One";
String2 = "Two";
Array4 = {String1, String2};
Log(Array1[0]);
Log(Array2[2]);
Log(Array3[3]);
Log(Array4[1]);
Log(CurrentContext());Vous affectez ici un ensemble de valeurs à quatre tableaux différents. Dans les trois premiers tableaux, affectez plusieurs littéraux de chaîne et d'entier. Dans le quatrième tableau, affectez des variables en tant qu'éléments de tableau.
Lorsque vous exécutez la règle, le message suivant est imprimé dans le journal de règle :
One
3
4
Two
"Prepared with user supplied parameters: "=(
String2=Two (String),
ActionType=1 (Byte),
String1=One (String),
ReportsPolicyName=TestArrays1 (String),
EventContainer=(EventReaderName=DefaultEventReader) (EventContainer),
PolicyName=TestArrays1 (String),
ActionNodeName=TestArrays1 (String),
Array4={One (String), Two (String)},
Array3={One (String), 2 (Long), Three (String), 4 (Long), Five (String)},
Array2={1 (Long), 2 (Long), 3 (Long), 4 (Long), 5 (Long)},
Array1={One (String), Two (String), Three (String), Four (String), Five (String)})