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}
Avertissement : Les tableaux en langage IPL et JavaScript sont à base zéro, ce qui signifie que le premier élément du tableau a une valeur d'index de 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]
Important : Vous pouvez créer un tableau de n'importe quelle taille en définissant manuellement ses éléments. Vous ne pouvez pas l'importer depuis un fichier. Vous ne pouvez pas imbriquer un tableau dans un tableau s'il ne s'agit d'un tableau multi-dimensionnel.

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!, 12345

Voici 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!.xyz

Cet 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] = etc

Voici la sortie du journal de l'analyseur de syntaxe :

ArrayA[0] = Hello World!
ArrayA[1] = 12345

Dans 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)})