Efecte-kyselykielen kuvaus
Efecte Query Language (EQL) -kieltä käytetään datan kyselyyn Efectestä. Web API:a voidaan käyttää Efecten integroimiseen muihin järjestelmiin, ja tämän dokumentin tarkoituksena on tarjota esimerkkejä web API -palveluista.
Efecte-kyselykieli
Efecte Query Language (EQL) on SQL:n kaltainen strukturoitu kieli, jolla Efecteä voidaan kysellä Web API:n kautta. Sen avulla voidaan tehdä tehokkaita ja joustavia hakuja Efecten tietomallia vasten.
Jotta EQL:ää voidaan käyttää tehokkaasti, on tunnettava joitakin taustalla olevan tietomallin peruskäsitteitä. EQL:n kanssa yleisimmin käytetyt tietomallin elementit ovat "entity", "entitydata", "template" ja "folder".
Alla on yksinkertaisia esimerkkejä EQL:n käytön havainnollistamiseksi. Taulukot tarjoavat viitetietoa Efecten tietomallin tärkeimmistä luokista ja ominaisuuksista.
Haettavat luokat:
Luokka |
Alias |
|
entity |
folder |
|
template |
Luokan entity ominaisuudet (com.efecte.datamodel.Entity):
Ominaisuus |
Kuvaus |
|
entity |
|
Viittaus luokkaan template (com.efecte.datamodel.Template) |
|
|
|
Viittaus luokkaan folder (com.efecte.datamodel.Folder) |
|
|
|
Tietokortit, joilla on hidden-arvo näkyvyydelle, arvo 0 tai 1 |
|
Tietokortit, jotka on poistettu eli siirretty roskakoriin, arvo 0 tai 1 |
|
Ryhmä tyypin com.efecte.datamode.Metadata objekteja |
|
Ryhmä tyypin com.bitmount.equipment.BSSStringEntityData objekteja |
|
Kokoelma entiteetin kokonaislukudataa |
|
Kokoelma entiteetin liukulukudataa |
|
Kokoelma entiteetin päivämäärädataa |
|
Kokoelma entiteetin viittausdataa |
|
|
|
Kohdetietokortti |
|
Kokoelma entiteetin ulkoista viittausdataa |
|
|
|
|
|
Kokoelma entiteetin tekstidataa |
|
Kokoelma entiteetin staattista merkkijonodataa |
|
Kokoelma entiteetin staattista kokonaislukudataa |
|
Kokoelma entiteetin staattista liukulukudataa |
|
Kokoelma entiteetin staattista päivämäärädataa |
Luokan Template ominaisuudet
Luokan Template ominaisuudet (com.efecte.datamodel.Template):
Ominaisuus |
Kuvaus |
|
|
|
|
|
|
|
|
|
|
|
|
|
Ryhmä tyypin com.efecte.datamode.Metadata objekteja |
|
Ryhmä tyypin com.bitmount.equipment.BSSAttribute objekteja |
|
Ryhmä tyypin BSSTemplatePermission objekteja |
Luokan Folder ominaisuudet
Luokan Folder ominaisuudet (com.efecte.datamodel.Folder):
Ominaisuus |
Kuvaus |
|
Tietokannan id |
|
|
|
Moduulikoodi, kertoo mihin moduuliin kansio kuuluu |
|
|
|
|
|
Ylläpitäjän antama koodi |
|
|
|
Ryhmä tyypin com.efecte.equipment.Metadata objekteja |
|
Ryhmä tyypin com.bitmount.equipment.BSSTemplate objekteja |
|
Ryhmä tyypin com.bitmount.boas.AdminRoles objekteja |
|
Ryhmä tyypin BSSEntityGroupPermission objekteja |
Päivämääräkoodit ja aikalausekkeet
EQL-kyselyissä voi käyttää päivämääräkoodeja ja aikalausekkeita yhdessä päivämääräkoodien kanssa. Nämä kaksi voidaan yhdistää esimerkiksi muodossa now+6h tai start_month-1M.
Päivämääräkoodit:
Koodi |
Kuvaus |
|
Nykyinen päivämäärä ja kellonaika |
|
Kuluvan päivän alku |
|
Kuluvan viikon alku |
|
Kuluvan kuukauden alku |
|
Kuluvan vuosineljänneksen alku |
|
Kuluvan vuosipuoliskon alku |
|
Kuluvan vuoden alku |
|
Kuluvan päivän loppu |
|
Kuluvan viikon loppu |
|
Kuluvan kuukauden loppu |
|
Kuluvan vuosineljänneksen loppu |
|
Kuluvan vuosipuoliskon loppu |
|
Kuluvan vuoden loppu |
Aikalausekkeet:
Lauseke |
Kuvaus |
|
Vuosi |
|
Kuukausi |
|
Päivä |
|
Tunti |
|
Minuutti |
|
Sekunti |
|
Viikko |
EQL-esimerkkejä
Koko Efecte-järjestelmän kaikkien tietokorttien määrän hakeminen
Koko Efecte-järjestelmän kaikkien tietokorttien määrän hakeminen. Tämä on hyvä tapa testata, että web API toimii oikein.
SELECT count(id) FROM entity
Tietyn datan hakeminen tietokortista
Haetaan tietokortin nimi, mallin nimi ja kansion nimi entiteeteille, joilla on tietty host_name ja jotka ovat mallissa 'workstation'
SELECT name, template.name, folder.name FROM entity WHERE $host_name$= 'falco' AND template.code = ‘workstation’
Yksittäisen moduulin kaikkien tietokorttien hakeminen
Haetaan yksittäisen moduulin kaikki tietokortit:
SELECT entity FROM entity WHERE template.systemCode = 'beq'
tai käyttämällä alikyselyä
SELECT entity FROM entity WHERE templateId IN (SELECT id FROM template WHERE systemCode = 'beq')
tai käyttämällä exists-kyselyä:
SELECT entity FROM entity WHERE EXISTS (SELECT id FROM template WHERE id = entity.templateId AND template.systemCode = 'beq')
Kaikkien incident-tietokorttien hakeminen, jotka eivät ole poistettuja tai piilotettuja
Haetaan kaikki tietokortit, jotka eivät ole piilotettuja tai poistettuja:
SELECT entity FROM entity WHERE template.code='incident' AND entity.deleted=0 AND entity.hidden=0
Tietokorttien hakeminen ja annettujen attribuuttien valitseminen kansiossa
Valitaan mallin tietokorttien annetut attribuutit. Palauttaa attribuutit efecte_id, subject ja status:
SELECT $efecte_id$, $subject$, $status$ FROM entity WHERE entity.template.code = 'incident'
Tiettyjen päivämäärien välillä luotujen tietokorttien hakeminen
EQL:ssä voi käyttää päivämääräkoodeja. Alla on esimerkki, joka hakee kaikki incidentit, jotka on luotu kahden kuukauden takaisen ajankohdan ja nykyhetken (now) välillä:
SELECT entity FROM entity WHERE template.code='incident' AND $created$>'start_month-2M' AND $created$<'NOW'
Yksilöllisten tietokorttien hakeminen
Yksilöllisten tietokorttien löytäminen
SELECT DISTINCT entity.referenceData.target FROM entity WHERE template.code = 'invoice_row'
Tietokorttien hakeminen viittausarvon avulla
Etsitään työasema, jonka omistaa käyttäjä, jonka koko nimi on
SELECT entity FROM entity WHERE template.code='workstation' AND $user:full_name$='user test'
Table of Contents