IQL

IQL är IS Tools uttrycksspråk eller syntax för avancerade filter, diagram och logik. Från och med sommar 2020 finns nu också möjlighet att styra synlighet för formulärskompenenter med IQL-uttryck.

Hur fungerar det?

IQL är tänkt att fungera som ett frågespråk för IS Tools, där struktur och syntax till viss del lånats från SQL.
I filterfrågor används villkorsdelen, vilken kan omfatta fältens metadata (exempelvis uppdaterades, vem som uppdaterade) och relaterad information. IQL i filterfrågor kan således "mer" än det vanliga filtret.
I logiken kan man använda urval av fält och/eller funktioner tillsammans med villkorsdelen vars resultat sparas till ett eller flera fält.
I formulär kan man justera beteendet av komponenter baserat på information från andra komponenter.
I IQL-diagram används uttrycket för urval av informationsmängd.

I manualen

Då IQL kan användas i flera funktioner finns det dokumenterat i respektive funktionsavsnitt.

Syntax

Från sommar 2020 är inmatningsrutan rustad med syntaxhjälp, som föreslår ord vid inmatning och färgar nyckelord i uttrycket.
I de fall textsträngar används i filteruttryck behöver dessa omges med enkla citationstecken.
Entiteter i systemet, såsom fältnamn och listvärden, behöver omges av dubbla citationstecken om de innehåller blanksteg eller specialtecken såsom å, ä och ö.
Fältnamn är skiftlägeskänsliga.
Konfiguration sker på kontots språk. Vid flera språk måste översättningar finnas.
Relaterad information nås via relationsfält, där information från förälder nås med fältnamnet följt av en punkt (.). Villkor med information från barnposter använder uttrycksformen in. Se vidare under avsnittet exempel nedan.
Kommentarer kan användas i formen /* ... */.

Exempel

Exempel på olika användningar ges nedan.

Filter

Visa poster från tabell "förälder" som har barnposter i tabellen barn genom relationen "förälder".

/* filtrera bort poster utan barnposter */
RecordId in ("förälder" from barn)

Visa intressanta tidsrapporter för en projektledare från tabellen time, där kryssrutan approved indikerar godkänd.

/* filtrera bort poster från övriga team */
team in (
  team
  from resource
  where id = currentUser()
)
/* filtrera bort godkända tidsrapporter */
and approved is null

Logik

Antal relaterade poster, direkt eller indirekt.

/* aggregera */
count(RecordId)
from object
where entity is not null
/* hierarki inom samma tabell */
and (
  entity = @targetrecord
  or entity.parent = @targetrecord
  or entity.parent.parent = @targetrecord
)

Diagram

Pajdiagram visandes aktivitet per status.

status, count(RecordId)
from activity
where active is not null
/* jämför med begränsande post */
and wbs.parent.parent = @limitByValue
group by status

Beteende

Etikett som visas först när budget överskridits.

/* synliggör med bakgrundsfärg */
if cost > budget then
  set @backgroundColor = 'yellow'
else
  set @caption = ''
end