Description du langage de requête Effecte
Description du langage de requête Effecte
Le langage de requête Efecte ( EQL ) permet d'interroger les données d'Efecte. API Web permet d'intégrer Efecte à d'autres systèmes ; ce document fournit des exemples de services API Web.
Langage de requête d'effet
Efecte Query Language ( EQL ) est un langage structuré de type SQL permettant d'interroger Efecte via l' API Web. Il permet d'effectuer des recherches puissantes et flexibles sur le modèle de données d'Efecte.
Pour utiliser efficacement EQL , il est nécessaire de connaître certains concepts de base du modèle de données sous-jacent. Les éléments du modèle de données les plus couramment utilisés avec EQL sont « entity », « entitydata », « template » et « folder ».
Vous trouverez ci-dessous des exemples simples illustrant l'utilisation d' EQL . Les tableaux fournissent des informations de référence sur les classes et propriétés les plus importantes du modèle de données Efecte.
Classes consultables :
Classe |
Alias |
|
entité |
|
dossier |
|
modèle |
Pro de l'entité de classe (com.efecte.datamodel.Entity) :
Pro |
Description |
|
entité |
|
Référence du modèle de classe (com.efecte.datamodel.Template) |
|
|
|
Référence du dossier de classe (com.efecte.datamodel.Folder) |
|
|
|
Cartes de données dont la valeur est masquée pour la visibilité, valeur 0 ou 1 |
|
Cartes de données supprimées (c'est-à-dire déplacées vers la corbeille), valeur 0 ou 1 |
|
Un groupe d'objets de type com.efecte.datamode.Metadata |
|
Un groupe d'objets de type com.bitmount.equipment.BSSStringEntityData |
|
Collection de données entières d'une entité |
|
Collecte des données de flottement d'une entité |
|
Collecte de données de date d'une entité |
|
Collecte de données de référence d'une entité |
|
|
|
Fiche de données cible |
|
Collecte de données de référence externes d'une entité |
|
|
|
|
|
Collecte de données textuelles d'une entité |
|
Collection de données de chaîne statiques d'une entité |
|
Collection de données entières statiques d'une entité |
|
Collecte de données statiques flottantes d'une entité |
|
Collecte de données de date statiques d'une entité |
Pro du modèle de classe
Pro de la classe Template (com.efecte.datamodel.Template) :
Pro |
Description |
|
|
|
|
|
|
|
|
|
|
|
|
|
Un groupe d'objets de type com.efecte.datamode.Metadata |
|
Un groupe d'objets de type com.bitmount.equipment.BSSAttribute |
|
Un groupe d'objets de type BSSTemplatePermission |
Pro du dossier de classe
Pro de la classe Folder (com.efecte.datamodel.Folder) :
Pro |
Description |
|
Identifiant de la base de données |
|
|
|
Le code du module décrit à quel module appartient le dossier. |
|
|
|
|
|
Un code fourni par l'administrateur |
|
|
|
Un groupe d'objets de type com.efecte.equipment.Metadata |
|
Un groupe d'objets de type com.bitmount.equipment.BSSTemplate |
|
Un groupe d'objets de type com.bitmount.boas.AdminRoles |
|
Un groupe d'objets de type BSSEntityGroupPermission |
Macros de date et expressions d'heure
Les requêtes EQL permettent l'utilisation de macros de date et d'expressions temporelles avec des macros de date. Ces deux éléments peuvent être combinés, comme dans « maintenant + 6 h » ou « mois_début - 1 min ».
Macros de date :
Macro |
Description |
|
Date et heure actuelles |
|
Début de la journée actuelle |
|
Début de la semaine en cours |
|
Début du mois en cours |
|
Début du trimestre en cours |
|
Début de la moitié actuelle |
|
Début de l'année en cours |
|
Fin de la journée actuelle |
|
Fin de la semaine en cours |
|
Fin du mois en cours |
|
Fin du trimestre en cours |
|
Fin du semestre en cours |
|
Fin de l'année en cours |
Expressions temporelles :
Expression |
Description |
|
Année |
|
Mois |
|
Jour |
|
Heure |
|
Minute |
|
Deuxième |
|
Semaine |
Exemples EQL
Obtenez le nombre total de cartes de données du système Efecte.
Obtenez le nombre total de cartes de données du système Efecte. C'est un bon moyen de vérifier que API web fonctionne correctement.
SELECT count(id) FROM entity
Recherche de données spécifiques à partir d'une fiche de données
Recherchez le nom de la carte de données, le nom du modèle et le nom du dossier pour les entités qui ont un nom d'hôte spécifique et qui se trouvent dans le modèle « poste de travail ».
SELECT name, template.name, folder.name FROM entity WHERE $host_name$= 'falco' AND template.code = 'workstation'
Rechercher toutes les cartes de données d'un seul module
Rechercher toutes les fiches de données d'un seul module :
SELECT entity FROM entity WHERE template.systemCode = 'beq'
ou en utilisant une sous-requête
SELECT entity FROM entity WHERE templateId IN (SELECT id FROM template WHERE systemCode = 'beq')
ou en utilisant une requête exists :
SELECT entity FROM entity WHERE EXISTS (SELECT id FROM template WHERE id = entity.templateId AND template.systemCode = 'beq')
Rechercher toutes les fiches de données d'incident qui ne sont pas supprimées ou masquées
Rechercher toutes les fiches de données qui ne sont ni masquées ni supprimées :
SELECT entity FROM entity WHERE template.code='incident' AND entity.deleted=0 AND entity.hidden=0
Rechercher les fiches de données et sélectionner les attributs souhaités dans le dossier
Sélectionnez les attributs spécifiés des fiches de données dans le modèle. Renvoie les attributs effect_id, subject et status :
SELECT $efecte_id$, $subject$, $status$ FROM entity WHERE entity.template.code = 'incident'
Rechercher les fiches de données créées entre les dates
Il est possible d'utiliser des macros de date dans EQL . Voici un exemple qui récupère tous les incidents créés entre il y a deux mois et la date et l'heure actuelles :
SELECT entity FROM entity WHERE template.code='incident' AND $created$>'start_month-2M' AND $created$<'NOW'
Recherche de cartes de données distinctes
Recherche de cartes de données distinctes
SELECT DISTINCT entity.referenceData.target FROM entity WHERE template.code = 'invoice_row'
Fiches de données de recherche utilisant la valeur de référence
Trouver le poste de travail appartenant à l'utilisateur dont le nom complet
SELECT entity FROM entity WHERE template.code='workstation' AND $user:full_name$='user test'