Exists()

Exists() sert à tester si une valeur a déjà été chargée dans un champ.

Présentation

Tu reçois des événements applicatifs pour des équipements dont une partie seulement appartient au périmètre supervisé. Avec Exists(), tu peux filtrer le flux dès le chargement en t'appuyant sur les identifiants déjà présents dans un champ. Le point décisif est l'ordre des LOAD : le contenu du champ évolue pendant le script. Pour un filtrage strict sur un référentiel, vérifie que le chargement ne fait pas entrer de nouvelles valeurs indésirables.

Syntaxe

Exists(field_name [, expr])

Exemple pratique

Isoler les événements des équipements supervisés

Cas SOSBI · périmètre technique. Le flux d’événements couvre plus d’équipements que le parc réellement suivi.

Script de chargement

EquipementsSuivis:
LOAD * INLINE [
EquipementID, Zone
EQ-11, Atelier A
EQ-17, Atelier B
];

Evenements:
LOAD * INLINE [
EvenementID, EquipementID, Etat
EV-901, EQ-11, Alerte
EV-902, EQ-88, OK
EV-903, EQ-17, Alerte
]
WHERE Exists(EquipementID);

Données de départ

Équipements suivis
EquipementIDZone
EQ-11Atelier A
EQ-17Atelier B
Événements entrants
EvenementIDEquipementIDEtat
EV-901EQ-11Alerte
EV-902EQ-88OK
EV-903EQ-17Alerte

Résultat

EV-901 et EV-903 sont chargés ; EV-902 est exclu.

Le référentiel est chargé avant les événements. Attention : Exists() consulte les valeurs déjà chargées dans le champ.

Précisions techniques

  • Avec un seul argument, Exists() teste la valeur du champ courant. Le second argument facultatif permet de tester une autre expression.
  • Exists() s’appuie sur les valeurs déjà chargées au moment où la ligne est évaluée : l’ordre du script peut donc modifier le résultat.